renamed xml plugin to smp to avoid confusion

added some dependency checks to configure
configure checks ClearSilver and fastcgi
cleanups in the build system here and there
This commit is contained in:
Martin Willi
2008-03-28 12:44:01 +00:00
parent 892fb43b12
commit 6b9290ff12
11 changed files with 467 additions and 431 deletions
+400
View File
@@ -0,0 +1,400 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- strongSwan Managment Protocol (SMP) V1.0 -->
<!--
Copyright (C) 2007 Martin Willi
Copyright (C) 2006 Andreas Eigenmann, Joël Stillhart
Hochschule fuer Technik Rapperswil
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
-->
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
ns="http://www.strongswan.org/smp/1.0">
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Message -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<start>
<element name="message">
<choice>
<group>
<attribute name="type">
<value>request</value>
</attribute>
<optional>
<element name="query">
<optional>
<ref name="QueryRequestIkesa"/>
</optional>
<optional>
<ref name="QueryRequestConfig"/>
</optional>
<!-- others -->
</element>
</optional>
<optional>
<element name="control">
<optional>
<ref name="ControlRequestIkeTerminate"/>
</optional>
<optional>
<ref name="ControlRequestChildTerminate"/>
</optional>
<optional>
<ref name="ControlRequestIkeInitiate"/>
</optional>
<optional>
<ref name="ControlRequestChildInitiate"/>
</optional>
<!-- others -->
</element>
</optional>
<!-- others -->
</group>
<group>
<attribute name="type">
<value>response</value>
</attribute>
<choice>
<element name="error">
<attribute name="code">
<data type="nonNegativeInteger"/>
</attribute>
<data type="string"/>
</element>
<group>
<optional>
<element name="query">
<optional>
<ref name="QueryResponseIkesa"/>
</optional>
<optional>
<ref name="QueryResponseConfig"/>
</optional>
<!-- others -->
</element>
</optional>
<optional>
<element name="control">
<optional>
<ref name="ControlResponse"/>
</optional>
<!-- others -->
</element>
</optional>
<!-- others -->
</group>
</choice>
</group>
</choice>
</element>
</start>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Query -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<define name="QueryRequestIkesa">
<element name="ikesalist">
<empty/>
</element>
</define>
<define name="QueryResponseIkesa">
<element name="ikesalist">
<zeroOrMore>
<element name="ikesa">
<element name="id">
<data type="positiveInteger"/>
</element>
<element name="status">
<choice>
<value type="string">created</value>
<value type="string">connecting</value>
<value type="string">established</value>
<value type="string">rekeying</value>
<value type="string">deleting</value>
</choice>
</element>
<element name="role">
<choice>
<value type="string">initiator</value>
<value type="string">responder</value>
</choice>
</element>
<element name="peerconfig">
<data type="string"/>
</element>
<element name="lifetime">
<data type="integer"/>
</element>
<element name="rekeytime">
<data type="integer"/>
</element>
<element name="local">
<ref name="ikeEnd"/>
</element>
<element name="remote">
<ref name="ikeEnd"/>
</element>
<element name="childsalist">
<zeroOrMore>
<element name="childsa">
<ref name="childsa"/>
</element>
</zeroOrMore>
</element>
</element>
</zeroOrMore>
</element>
</define>
<define name="ikeEnd">
<element name="spi">
<data type="hexBinary" />
</element>
<element name="identification">
<ref name="identification"/>
</element>
<element name="address">
<ref name="address"/>
</element>
<element name="port">
<data type="nonNegativeInteger">
<param name="maxInclusive">65535</param>
</data>
</element>
<optional>
<element name="nat">
<data type="boolean"/>
</element>
</optional>
</define>
<define name="childsa">
<element name="reqid">
<data type="nonNegativeInteger"/>
</element>
<element name="lifetime">
<data type="integer"/>
</element>
<element name="rekeytime">
<data type="integer"/>
</element>
<element name="local">
<ref name="childEnd"/>
</element>
<element name="remote">
<ref name="childEnd"/>
</element>
</define>
<define name="childEnd">
<element name="spi">
<element name="networks">
<ref name="networks">
</element>
</define>
<define name="QueryRequestConfig">
<element name="configlist">
<empty/>
</element>
</define>
<define name="QueryResponseConfig">
<element name="configlist">
<zeroOrMore>
<element name="peerconfig">
<element name="name">
<data type="string"/>
</element>
<element name="local">
<ref name="identification"/>
</element>
<element name="remote">
<ref name="identification"/>
</element>
<element name="ikeconfig">
<ref name="ikeconfig"/>
</element>
<element name="childconfiglist">
<zeroOrMore>
<element name="childconfig">
<ref name="childconfig"/>
</element>
</zeroOrMore>
</element>
</element>
</zeroOrMore>
</element>
</define>
<define name="ikeconfig">
<element name="local">
<ref name="address"/>
</element>
<element name="remote">
<ref name="address"/>
</element>
</define>
<define name="childconfig">
<element name="name">
<data type="string"/>
</element>
<element name="local">
<ref name="networks">
</element>
<element name="remote">
<ref name="networks">
</element>
</define>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Control -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<define name="ControlRequestIkeTerminate">
<element name="ikesaterminate">
<data type="positiveInteger"/>
</element>
</define>
<define name="ControlRequestChildTerminate">
<element name="childsaterminate">
<data type="positiveInteger"/>
</element>
</define>
<define name="ControlRequestIkeInitiate">
<element name="ikesainitiate">
<data type="string"/>
</element>
</define>
<define name="ControlRequestChildInitiate">
<element name="childsainitiate">
<data type="string"/>
</element>
</define>
<define name="QueryResponse">
<element name="status">
<data type="nonNegativeInteger"/>
</element>
<element name="log">
<zeroOrMore>
<element name="item">
<attribute name="level">
<data type="nonNegativeInteger">
</attribute>
<attribute name="thread">
<data type="nonNegativeInteger">
</attribute>
<attribute name="source">
<data type="string">
</attribute>
<data type="string"/>
<element>
</zeroOrMore>
</element>
</define>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- identification and address -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<define name="identification">
<choice>
<group>
<attribute name="type">
<value>any</value>
</attribute>
<empty/>
</group>
<group>
<attribute name="type">
<value>ipv4</value>
</attribute>
<ref name="ipv4"/>
</group>
<group>
<attribute name="type">
<value>ipv6</value>
</attribute>
<ref name="ipv6"/>
</group>
<group>
<attribute name="type">
<value>fqdn</value>
</attribute>
<ref name="fqdn"/>
</group>
<group>
<attribute name="type">
<value>email</value>
</attribute>
<ref name="email"/>
</group>
<group>
<attribute name="type">
<value>asn1gn</value>
</attribute>
<data type="string"/>
</group>
<group>
<attribute name="type">
<value>asn1dn</value>
</attribute>
<data type="string"/>
</group>
<group>
<attribute name="type">
<value>keyid</value>
</attribute>
<data type="base64Binary"/>
</group>
</choice>
</define>
<define name="address">
<choice>
<group>
<attribute name="type">
<value>ipv4</value>
</attribute>
<ref name="ipv4"/>
</group>
<group>
<attribute name="type">
<value>ipv6</value>
</attribute>
<ref name="ipv6"/>
</group>
</choice>
</define>
<define name="ipv4">
<data type="string">
<param name="pattern">(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])(/([0-9]|[1-2][0-9]|3[0-2]))?</param>
</data>
</define>
<define name="ipv6">
<data type="string">
<param name="pattern">([0-9a-fA-F]{1,4}:|:){1,7}([0-9a-fA-F]{1,4}|:)(/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?</param>
</data>
</define>
<define name="fqdn">
<data type="string">
<param name="pattern">[a-z0-9\-](\.[a-z0-9\-]+)*</param>
</data>
</define>
<define name="email">
<data type="string">
<param name="pattern">[a-zA-Z0-9_\-\.]+@(([a-z0-9\-](\.[a-z0-9\-]+)*)|(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]))</param>
</data>
</define>
<define name="networks">
<zeroOrMore>
<element name="network">
<optional>
<attribute name="protocol"/>
</optional>
<optional>
<attribute name="port"/>
</optional>
</element>
</zeroOrMore>
</define>
</grammar>