FWD_START_TEST([dbus api - zone permanent signatures])
AT_KEYWORDS(dbus zone gh586)
dnl ####################
dnl Global APIs
dnl ####################
DBUS_INTROSPECT([config], [[//method[@name="listZones"]]], 0, [dnl
<method name="listZones">
<arg direction="out" type="ao"></arg>
</method>
])
DBUS_INTROSPECT([config], [[//method[@name="getZoneNames"]]], 0, [dnl
<method name="getZoneNames">
<arg direction="out" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config], [[//method[@name="getZoneByName"]]], 0, [dnl
<method name="getZoneByName">
<arg direction="in" name="zone" type="s"></arg>
<arg direction="out" type="o"></arg>
</method>
])
DBUS_INTROSPECT([config], [[//method[@name="addZone"]]], 0, [dnl
<method name="addZone">
<arg direction="in" name="zone" type="s"></arg>
<arg direction="in" name="settings" type="(sssbsasa(ss)asba(ssss)asasasasa(ss)b)"></arg>
<arg direction="out" type="o"></arg>
</method>
])
dnl zone relation to interface/sources
DBUS_INTROSPECT([config], [[//method[@name="getZoneOfInterface"]]], 0, [dnl
<method name="getZoneOfInterface">
<arg direction="in" name="iface" type="s"></arg>
<arg direction="out" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config], [[//method[@name="getZoneOfSource"]]], 0, [dnl
<method name="getZoneOfSource">
<arg direction="in" name="source" type="s"></arg>
<arg direction="out" type="s"></arg>
</method>
])
dnl ####################
dnl Zone object APIs
dnl ####################
dnl Get a reference to the public zone. We'll use it to introspect APIs.
DBUS_CHECK([config], [config.getZoneByName], ["public"], 0, [stdout])
DBUS_PUBLIC_ZONE_OBJ=[$(sed -e "s/.*config\/zone\/\([^']\+\)['].*/\1/" ./stdout)]
export DBUS_PUBLIC_ZONE_OBJ
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getSettings"]]], 0, [dnl
<method name="getSettings">
<arg direction="out" type="(sssbsasa(ss)asba(ssss)asasasasa(ss)b)"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="update"]]], 0, [dnl
<method name="update">
<arg direction="in" name="settings" type="(sssbsasa(ss)asba(ssss)asasasasa(ss)b)"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="loadDefaults"]]], 0, [dnl
<method name="loadDefaults">
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="remove"]]], 0, [dnl
<method name="remove">
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="rename"]]], 0, [dnl
<method name="rename">
<arg direction="in" name="name" type="s"></arg>
</method>
])
dnl Version
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getVersion"]]], 0, [dnl
<method name="getVersion">
<arg direction="out" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setVersion"]]], 0, [dnl
<method name="setVersion">
<arg direction="in" name="version" type="s"></arg>
</method>
])
dnl Short
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getShort"]]], 0, [dnl
<method name="getShort">
<arg direction="out" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setShort"]]], 0, [dnl
<method name="setShort">
<arg direction="in" name="short" type="s"></arg>
</method>
])
dnl Description
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getDescription"]]], 0, [dnl
<method name="getDescription">
<arg direction="out" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setDescription"]]], 0, [dnl
<method name="setDescription">
<arg direction="in" name="description" type="s"></arg>
</method>
])
dnl Target
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getTarget"]]], 0, [dnl
<method name="getTarget">
<arg direction="out" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setTarget"]]], 0, [dnl
<method name="setTarget">
<arg direction="in" name="target" type="s"></arg>
</method>
])
dnl Interfaces
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getInterfaces"]]], 0, [dnl
<method name="getInterfaces">
<arg direction="out" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setInterfaces"]]], 0, [dnl
<method name="setInterfaces">
<arg direction="in" name="interfaces" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addInterface"]]], 0, [dnl
<method name="addInterface">
<arg direction="in" name="interface" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeInterface"]]], 0, [dnl
<method name="removeInterface">
<arg direction="in" name="interface" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryInterface"]]], 0, [dnl
<method name="queryInterface">
<arg direction="in" name="interface" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
dnl Sources
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getSources"]]], 0, [dnl
<method name="getSources">
<arg direction="out" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setSources"]]], 0, [dnl
<method name="setSources">
<arg direction="in" name="sources" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addSource"]]], 0, [dnl
<method name="addSource">
<arg direction="in" name="source" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeSource"]]], 0, [dnl
<method name="removeSource">
<arg direction="in" name="source" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="querySource"]]], 0, [dnl
<method name="querySource">
<arg direction="in" name="source" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
dnl Services
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getServices"]]], 0, [dnl
<method name="getServices">
<arg direction="out" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setServices"]]], 0, [dnl
<method name="setServices">
<arg direction="in" name="services" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addService"]]], 0, [dnl
<method name="addService">
<arg direction="in" name="service" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeService"]]], 0, [dnl
<method name="removeService">
<arg direction="in" name="service" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryService"]]], 0, [dnl
<method name="queryService">
<arg direction="in" name="service" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
dnl Ports
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getPorts"]]], 0, [dnl
<method name="getPorts">
<arg direction="out" type="a(ss)"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setPorts"]]], 0, [dnl
<method name="setPorts">
<arg direction="in" name="ports" type="a(ss)"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addPort"]]], 0, [dnl
<method name="addPort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removePort"]]], 0, [dnl
<method name="removePort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryPort"]]], 0, [dnl
<method name="queryPort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
dnl Source Ports
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getSourcePorts"]]], 0, [dnl
<method name="getSourcePorts">
<arg direction="out" type="a(ss)"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setSourcePorts"]]], 0, [dnl
<method name="setSourcePorts">
<arg direction="in" name="ports" type="a(ss)"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addSourcePort"]]], 0, [dnl
<method name="addSourcePort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeSourcePort"]]], 0, [dnl
<method name="removeSourcePort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="querySourcePort"]]], 0, [dnl
<method name="querySourcePort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
dnl Protocol
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getProtocols"]]], 0, [dnl
<method name="getProtocols">
<arg direction="out" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setProtocols"]]], 0, [dnl
<method name="setProtocols">
<arg direction="in" name="protocols" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addProtocol"]]], 0, [dnl
<method name="addProtocol">
<arg direction="in" name="protocol" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeProtocol"]]], 0, [dnl
<method name="removeProtocol">
<arg direction="in" name="protocol" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryProtocol"]]], 0, [dnl
<method name="queryProtocol">
<arg direction="in" name="protocol" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
dnl Forward Ports
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getForwardPorts"]]], 0, [dnl
<method name="getForwardPorts">
<arg direction="out" type="a(ssss)"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setForwardPorts"]]], 0, [dnl
<method name="setForwardPorts">
<arg direction="in" name="ports" type="a(ssss)"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addForwardPort"]]], 0, [dnl
<method name="addForwardPort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
<arg direction="in" name="toport" type="s"></arg>
<arg direction="in" name="toaddr" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeForwardPort"]]], 0, [dnl
<method name="removeForwardPort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
<arg direction="in" name="toport" type="s"></arg>
<arg direction="in" name="toaddr" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryForwardPort"]]], 0, [dnl
<method name="queryForwardPort">
<arg direction="in" name="port" type="s"></arg>
<arg direction="in" name="protocol" type="s"></arg>
<arg direction="in" name="toport" type="s"></arg>
<arg direction="in" name="toaddr" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
dnl Masquerade
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getMasquerade"]]], 0, [dnl
<method name="getMasquerade">
<arg direction="out" type="b"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setMasquerade"]]], 0, [dnl
<method name="setMasquerade">
<arg direction="in" name="masquerade" type="b"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addMasquerade"]]], 0, [dnl
<method name="addMasquerade">
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeMasquerade"]]], 0, [dnl
<method name="removeMasquerade">
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryMasquerade"]]], 0, [dnl
<method name="queryMasquerade">
<arg direction="out" type="b"></arg>
</method>
])
dnl ICMP Block
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getIcmpBlocks"]]], 0, [dnl
<method name="getIcmpBlocks">
<arg direction="out" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setIcmpBlocks"]]], 0, [dnl
<method name="setIcmpBlocks">
<arg direction="in" name="icmptypes" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addIcmpBlock"]]], 0, [dnl
<method name="addIcmpBlock">
<arg direction="in" name="icmptype" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeIcmpBlock"]]], 0, [dnl
<method name="removeIcmpBlock">
<arg direction="in" name="icmptype" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryIcmpBlock"]]], 0, [dnl
<method name="queryIcmpBlock">
<arg direction="in" name="icmptype" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
dnl ICMP Block Inversion
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getIcmpBlockInversion"]]], 0, [dnl
<method name="getIcmpBlockInversion">
<arg direction="out" type="b"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setIcmpBlockInversion"]]], 0, [dnl
<method name="setIcmpBlockInversion">
<arg direction="in" name="flag" type="b"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addIcmpBlockInversion"]]], 0, [dnl
<method name="addIcmpBlockInversion">
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeIcmpBlockInversion"]]], 0, [dnl
<method name="removeIcmpBlockInversion">
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryIcmpBlockInversion"]]], 0, [dnl
<method name="queryIcmpBlockInversion">
<arg direction="out" type="b"></arg>
</method>
])
dnl Rich Rules
dnl
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="getRichRules"]]], 0, [dnl
<method name="getRichRules">
<arg direction="out" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="setRichRules"]]], 0, [dnl
<method name="setRichRules">
<arg direction="in" name="rules" type="as"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="addRichRule"]]], 0, [dnl
<method name="addRichRule">
<arg direction="in" name="rule" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="removeRichRule"]]], 0, [dnl
<method name="removeRichRule">
<arg direction="in" name="rule" type="s"></arg>
</method>
])
DBUS_INTROSPECT([config/zone/${DBUS_PUBLIC_ZONE_OBJ}], [[//method[@name="queryRichRule"]]], 0, [dnl
<method name="queryRichRule">
<arg direction="in" name="rule" type="s"></arg>
<arg direction="out" type="b"></arg>
</method>
])
FWD_END_TEST