diff options
author | Tobias Brunner <tobias@strongswan.org> | 2013-02-13 12:11:37 +0100 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2013-02-13 12:18:20 +0100 |
commit | 96a2d2077b51eee9d2174b1cc3dc2a5616637c86 (patch) | |
tree | 784ca8eec4d73d708647d26e75aa6c42a1fbd251 /src/libcharon/plugins | |
parent | 5374fe3a0975a907bf02e9c16f4bc1dbfeb2ad45 (diff) | |
download | strongswan-96a2d2077b51eee9d2174b1cc3dc2a5616637c86.tar.bz2 strongswan-96a2d2077b51eee9d2174b1cc3dc2a5616637c86.tar.xz |
Fix 'stroke loglevel any'
Before b46a5cd4 this worked if debug_t was unsigned. In that case -1,
as returned by enum_from_name(), would result in a large positive number.
So any unknown debug group (including 'any') had the same effect that
was only intended for 'any'.
Diffstat (limited to 'src/libcharon/plugins')
-rw-r--r-- | src/libcharon/plugins/stroke/stroke_socket.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/libcharon/plugins/stroke/stroke_socket.c b/src/libcharon/plugins/stroke/stroke_socket.c index 2771f0146..e31616cf8 100644 --- a/src/libcharon/plugins/stroke/stroke_socket.c +++ b/src/libcharon/plugins/stroke/stroke_socket.c @@ -516,11 +516,18 @@ static void stroke_loglevel(private_stroke_socket_t *this, DBG1(DBG_CFG, "received stroke: loglevel %d for %s", msg->loglevel.level, msg->loglevel.type); - group = enum_from_name(debug_names, msg->loglevel.type); - if ((int)group < 0) + if (strcaseeq(msg->loglevel.type, "any")) { - fprintf(out, "invalid type (%s)!\n", msg->loglevel.type); - return; + group = DBG_ANY; + } + else + { + group = enum_from_name(debug_names, msg->loglevel.type); + if ((int)group < 0) + { + fprintf(out, "invalid type (%s)!\n", msg->loglevel.type); + return; + } } charon->set_level(charon, group, msg->loglevel.level); } |