diff options
author | Andreas Steffen <andreas.steffen@strongswan.org> | 2006-11-01 20:29:53 +0000 |
---|---|---|
committer | Andreas Steffen <andreas.steffen@strongswan.org> | 2006-11-01 20:29:53 +0000 |
commit | d053fe5888ae1621b9b5428ad6b479e6d16e9678 (patch) | |
tree | b3a17271ae067fcfe3642dc3cfcc9b07c8b078c7 /src/charon | |
parent | 730e2c0542c0e18ddba895e46ff9ee76d6c458d4 (diff) | |
download | strongswan-d053fe5888ae1621b9b5428ad6b479e6d16e9678.tar.bz2 strongswan-d053fe5888ae1621b9b5428ad6b479e6d16e9678.tar.xz |
fixed ipsec status|statusall <name>
Diffstat (limited to 'src/charon')
-rwxr-xr-x | src/charon/threads/stroke_interface.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/src/charon/threads/stroke_interface.c b/src/charon/threads/stroke_interface.c index 0e1200d10..64699de8a 100755 --- a/src/charon/threads/stroke_interface.c +++ b/src/charon/threads/stroke_interface.c @@ -642,7 +642,8 @@ static void stroke_statusall(private_stroke_t *this, stroke_msg_t *msg) connection_t *connection; policy_t *policy; ike_sa_t *ike_sa; - + char *name = NULL; + leak_detective_status(this->out); fprintf(this->out, "Performance:\n"); @@ -666,6 +667,7 @@ static void stroke_statusall(private_stroke_t *this, stroke_msg_t *msg) if (msg->status.name) { pop_string(msg, &(msg->status.name)); + name = msg->status.name; } iterator = charon->connections->create_iterator(charon->connections); @@ -675,8 +677,8 @@ static void stroke_statusall(private_stroke_t *this, stroke_msg_t *msg) } while (iterator->iterate(iterator, (void**)&connection)) { - if (connection->is_ikev2(connection) && (msg->status.name == NULL - || streq(msg->status.name, connection->get_name(connection)))) + if (connection->is_ikev2(connection) + && (name == NULL || streq(name, connection->get_name(connection)))) { fprintf(this->out, "%12s: %H...%H\n", connection->get_name(connection), @@ -693,8 +695,7 @@ static void stroke_statusall(private_stroke_t *this, stroke_msg_t *msg) } while (iterator->iterate(iterator, (void**)&policy)) { - if (msg->status.name == NULL - || streq(msg->status.name, policy->get_name(policy))) + if (name == NULL || streq(name, policy->get_name(policy))) { fprintf(this->out, "%12s: '%D'...'%D'\n", policy->get_name(policy), @@ -718,9 +719,9 @@ static void stroke_statusall(private_stroke_t *this, stroke_msg_t *msg) while (children->iterate(children, (void**)&child_sa)) { if (!ike_sa_printed - && (msg->status.name == NULL - || streq(msg->status.name, child_sa->get_name(child_sa)) - || streq(msg->status.name, ike_sa->get_name(ike_sa)))) + && (name == NULL || + strncmp(name, child_sa->get_name(child_sa), strlen(name)) == 0 || + strncmp(name, ike_sa->get_name(ike_sa), strlen(name)) == 0)) { fprintf(this->out, "%#K\n", ike_sa); ike_sa_printed = TRUE; @@ -742,10 +743,12 @@ static void stroke_status(private_stroke_t *this, stroke_msg_t *msg) { iterator_t *iterator; ike_sa_t *ike_sa; + char *name = NULL; if (msg->status.name) { pop_string(msg, &(msg->status.name)); + name = msg->status.name; } iterator = charon->ike_sa_manager->create_iterator(charon->ike_sa_manager); @@ -758,9 +761,9 @@ static void stroke_status(private_stroke_t *this, stroke_msg_t *msg) while (children->iterate(children, (void**)&child_sa)) { if (!ike_sa_printed - && (msg->status.name == NULL - || streq(msg->status.name, child_sa->get_name(child_sa)) - || streq(msg->status.name, ike_sa->get_name(ike_sa)))) + && (name == NULL || + strncmp(name, child_sa->get_name(child_sa), strlen(name)) == 0 || + strncmp(name, ike_sa->get_name(ike_sa), strlen(name)) == 0)) { fprintf(this->out, "%K\n", ike_sa); ike_sa_printed = TRUE; |