aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAndreas Steffen <andreas.steffen@strongswan.org>2007-11-17 23:08:16 +0000
committerAndreas Steffen <andreas.steffen@strongswan.org>2007-11-17 23:08:16 +0000
commit3a19f38d15600df7ab12c8802079caf206e87846 (patch)
tree854a99ea662474a3fd7ccd57860b4fc5088b186f /src
parentb3b379e0440a9bebed126326a367d6563cb2d562 (diff)
downloadstrongswan-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.c6
-rw-r--r--src/manager/controller/config_controller.c4
-rw-r--r--src/manager/templates/config/list.cs18
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 ?>
+ &nbsp;
+ <?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>