aboutsummaryrefslogtreecommitdiffstats
path: root/src/stroke
diff options
context:
space:
mode:
authorMartin Willi <martin@revosec.ch>2011-05-04 11:21:33 +0200
committerMartin Willi <martin@revosec.ch>2011-05-16 15:24:14 +0200
commita694b481eed8ffbbbfde899dfdee54a394ec49d8 (patch)
tree16ffc1fcc9714e56a7e6adb1682d149845f27495 /src/stroke
parenta2302d2322bea1e65079abede55e590035212d03 (diff)
downloadstrongswan-a694b481eed8ffbbbfde899dfdee54a394ec49d8.tar.bz2
strongswan-a694b481eed8ffbbbfde899dfdee54a394ec49d8.tar.xz
Added a statusallnb stroke command to show status non-blocking
Diffstat (limited to 'src/stroke')
-rw-r--r--src/stroke/stroke.c14
-rw-r--r--src/stroke/stroke_keywords.h1
-rw-r--r--src/stroke/stroke_keywords.txt1
-rw-r--r--src/stroke/stroke_msg.h2
4 files changed, 17 insertions, 1 deletions
diff --git a/src/stroke/stroke.c b/src/stroke/stroke.c
index 6dbaf6464..7410f5cab 100644
--- a/src/stroke/stroke.c
+++ b/src/stroke/stroke.c
@@ -231,7 +231,18 @@ static int show_status(stroke_keyword_t kw, char *connection)
{
stroke_msg_t msg;
- msg.type = (kw == STROKE_STATUS)? STR_STATUS:STR_STATUS_ALL;
+ switch (kw)
+ {
+ case STROKE_STATUSALL:
+ msg.type = STR_STATUS_ALL;
+ break;
+ case STROKE_STATUSALL_NOBLK:
+ msg.type = STR_STATUS_ALL_NOBLK;
+ break;
+ default:
+ msg.type = STR_STATUS;
+ break;
+ }
msg.length = offsetof(stroke_msg_t, buffer);
msg.status.name = push_string(&msg, connection);
return send_stroke_msg(&msg);
@@ -498,6 +509,7 @@ int main(int argc, char *argv[])
break;
case STROKE_STATUS:
case STROKE_STATUSALL:
+ case STROKE_STATUSALL_NOBLK:
res = show_status(token->kw, argc > 2 ? argv[2] : NULL);
break;
case STROKE_LIST_PUBKEYS:
diff --git a/src/stroke/stroke_keywords.h b/src/stroke/stroke_keywords.h
index dd00dc24c..3e55ef8f2 100644
--- a/src/stroke/stroke_keywords.h
+++ b/src/stroke/stroke_keywords.h
@@ -29,6 +29,7 @@ typedef enum {
STROKE_LOGLEVEL,
STROKE_STATUS,
STROKE_STATUSALL,
+ STROKE_STATUSALL_NOBLK,
STROKE_LIST_PUBKEYS,
STROKE_LIST_CERTS,
STROKE_LIST_CACERTS,
diff --git a/src/stroke/stroke_keywords.txt b/src/stroke/stroke_keywords.txt
index f87b15769..78212c2b8 100644
--- a/src/stroke/stroke_keywords.txt
+++ b/src/stroke/stroke_keywords.txt
@@ -36,6 +36,7 @@ rekey, STROKE_REKEY
loglevel, STROKE_LOGLEVEL
status, STROKE_STATUS
statusall, STROKE_STATUSALL
+statusallnb, STROKE_STATUSALL_NOBLK
listpubkeys, STROKE_LIST_PUBKEYS
listcerts, STROKE_LIST_CERTS
listcacerts, STROKE_LIST_CACERTS
diff --git a/src/stroke/stroke_msg.h b/src/stroke/stroke_msg.h
index 2fbacecf7..3c1221aee 100644
--- a/src/stroke/stroke_msg.h
+++ b/src/stroke/stroke_msg.h
@@ -194,6 +194,8 @@ struct stroke_msg_t {
STR_STATUS,
/* show verbose connection status */
STR_STATUS_ALL,
+ /* show verbose connection status, non-blocking variant */
+ STR_STATUS_ALL_NOBLK,
/* add a ca information record */
STR_ADD_CA,
/* delete ca information record */