diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-11-17 23:08:16 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2007-11-17 23:08:16 +0000 |
commit | 3a19f38d15600df7ab12c8802079caf206e87846 (patch) | |
tree | 854a99ea662474a3fd7ccd57860b4fc5088b186f /src | |
parent | b3b379e0440a9bebed126326a367d6563cb2d562 (diff) | |
download | strongswan-3a19f38d15600df7ab12c8802079caf206e87846.tar.bz2 strongswan-3a19f38d15600df7ab12c8802079caf206e87846.tar.xz |
handle right=%any case in strongSwan manager
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/control/interfaces/xml_interface.c | 6 | ||||
-rw-r--r-- | src/manager/controller/config_controller.c | 4 | ||||
-rw-r--r-- | src/manager/templates/config/list.cs | 18 |
3 files changed, 19 insertions, 9 deletions
diff --git a/src/charon/control/interfaces/xml_interface.c b/src/charon/control/interfaces/xml_interface.c index 8ec295f80..aa2a554a0 100644 --- a/src/charon/control/interfaces/xml_interface.c +++ b/src/charon/control/interfaces/xml_interface.c @@ -91,6 +91,9 @@ static void write_id(xmlTextWriterPtr writer, char *element, identification_t *i char *type = ""; while (TRUE) { + case ID_ANY: + type = "any"; + break; case ID_IPV4_ADDR: type = "ipv4"; break; @@ -114,9 +117,6 @@ static void write_id(xmlTextWriterPtr writer, char *element, identification_t *i xmlTextWriterWriteFormatString(writer, "%D", id); break; } - case ID_ANY: - xmlTextWriterWriteAttribute(writer, "type", "any"); - break; default: /* TODO: base64 keyid */ xmlTextWriterWriteAttribute(writer, "type", "keyid"); diff --git a/src/manager/controller/config_controller.c b/src/manager/controller/config_controller.c index c5c96a070..e7941ada4 100644 --- a/src/manager/controller/config_controller.c +++ b/src/manager/controller/config_controller.c @@ -70,6 +70,10 @@ static void process_peerconfig(private_config_controller_t *this, { if (streq(name, "local") || streq(name, "remote")) { + if (streq(value, "0.0.0.0") || streq(value, "::")) + { + value = "%any"; + } r->setf(r, "peercfgs.%s.ikecfg.%s=%s", config, name, value); } } diff --git a/src/manager/templates/config/list.cs b/src/manager/templates/config/list.cs index f944bd6c5..0a3dbd4cb 100644 --- a/src/manager/templates/config/list.cs +++ b/src/manager/templates/config/list.cs @@ -6,9 +6,13 @@ <span><?cs var:peercfg.remote ?></span> </h1> <div class="controls"> - <a title="initiate SA" href="<?cs var:base ?>/control/initiateike/<?cs name:peercfg ?>"> - <img src="<?cs var:base ?>/static/initiate.png"/> - </a> + <?cs if:peercfg.remote != "%any" ?> + <a title="initiate SA" href="<?cs var:base ?>/control/initiateike/<?cs name:peercfg ?>"> + <img src="<?cs var:base ?>/static/initiate.png"/> + </a> + <?cs else ?> + + <?cs /if ?> </div> <div class="expander"> <hr/> @@ -17,9 +21,11 @@ <div class="expand"> <h1><?cs name:childcfg ?>:</h1> <div class="controls"> - <a title="initiate SA" href="<?cs var:base ?>/control/initiatechild/<?cs name:childcfg ?>"> - <img src="<?cs var:base ?>/static/initiate.png"/> - </a> + <?cs if:peercfg.remote != "%any" ?> + <a title="initiate SA" href="<?cs var:base ?>/control/initiatechild/<?cs name:childcfg ?>"> + <img src="<?cs var:base ?>/static/initiate.png"/> + </a> + <?cs /if ?> </div> <div class="expander"> <table> |