added charondebug config parameter to set debug level at startup
authorMartin Willi <martin@strongswan.org>
Wed, 18 Oct 2006 11:46:57 +0000 (11:46 -0000)
committerMartin Willi <martin@strongswan.org>
Wed, 18 Oct 2006 11:46:57 +0000 (11:46 -0000)
src/starter/args.c
src/starter/confread.h
src/starter/invokecharon.c
src/starter/ipsec.conf.5
src/starter/keywords.h
src/starter/keywords.txt

index a473cf6..5cf96ab 100644 (file)
@@ -151,8 +151,9 @@ static const token_info_t token_info[] =
     { ARG_ENUM, offsetof(starter_config_t, setup.charonstart), LST_bool            },
     { ARG_ENUM, offsetof(starter_config_t, setup.plutostart), LST_bool             },
 
-    /* pluto keywords */
+    /* pluto/charon keywords */
     { ARG_LST,  offsetof(starter_config_t, setup.plutodebug), LST_plutodebug       },
+    { ARG_STR,  offsetof(starter_config_t, setup.charondebug),  NULL               },
     { ARG_STR,  offsetof(starter_config_t, setup.prepluto), NULL                   },
     { ARG_STR,  offsetof(starter_config_t, setup.postpluto), NULL                  },
     { ARG_ENUM, offsetof(starter_config_t, setup.uniqueids), LST_bool              },
index 465652c..918dea3 100644 (file)
@@ -152,8 +152,9 @@ struct starter_config {
                bool    charonstart;
                bool    plutostart;
 
-               /* pluto keywords */
+               /* pluto/charon keywords */
                char    **plutodebug;
+               char    *charondebug;
                char    *prepluto;
                char    *postpluto;
                bool    uniqueids;
index 1a03dff..02239da 100644 (file)
@@ -102,7 +102,10 @@ starter_start_charon (starter_config_t *cfg, bool debug)
     struct stat stb;
     int argc = 1;
     char *arg[] = {
-       CHARON_CMD, NULL, NULL, NULL
+       CHARON_CMD, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+       NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
     };
 
     if (!debug)
@@ -114,6 +117,36 @@ starter_start_charon (starter_config_t *cfg, bool debug)
        arg[argc++] = "--strictcrlpolicy";
     }
 
+    {   /* parse debug string */
+       char *pos, *level, *buf_pos, type[4], buffer[512];
+       pos = cfg->setup.charondebug;
+       buf_pos = buffer;
+       while (pos && sscanf(pos, "%4s %d,", type, &level) == 2)
+       {
+           snprintf(buf_pos, buffer + sizeof(buffer) - buf_pos, "--debug-%s", type);
+           arg[argc++] = buf_pos;
+           buf_pos += strlen(buf_pos) + 1;
+           if (buf_pos >= buffer + sizeof(buffer))
+           {
+               break;
+           }
+           snprintf(buf_pos, buffer + sizeof(buffer) - buf_pos, "%d", level);
+           arg[argc++] = buf_pos;
+           buf_pos += strlen(buf_pos) + 1;
+           if (buf_pos >= buffer + sizeof(buffer))
+           {
+               break;
+           }
+       
+           /* get next */
+           pos = strchr(pos, ',');
+           if (pos)
+           {
+               pos++;
+           }
+       }
+    }
+
     if (_charon_pid)
     {
        plog("starter_start_charon(): charon already started...");
index a0e9260..324b041 100644 (file)
@@ -1076,6 +1076,17 @@ separated by white space) are enabled;
 for details on available debugging types, see
 .IR ipsec_pluto (8).
 .TP
+.B charondebug
+how much Charon debugging output should be logged.
+A comma separated list containing type level/pairs may
+be specified, e.g:
+.B dmn 3, ike 1, net -1.
+Acceptable values for types are
+.B dmn, mgr, ike, chd, job, cfg, knl, net, enc, lib
+and the level is one of
+.B -1, 0, 1, 2, 3, 4
+(for silent, audit, control, controlmore, raw, private)
+.TP
 .B plutoopts
 additional options to pass to pluto upon startup. See
 .IR ipsec_pluto (8).
index d62a83d..f574c77 100644 (file)
@@ -25,8 +25,9 @@ typedef enum {
     KW_CHARONSTART,
     KW_PLUTOSTART,
 
-    /* pluto keywords */
+       /* pluto/charon keywords */
     KW_PLUTODEBUG,
+       KW_CHARONDEBUG,
     KW_PREPLUTO,
     KW_POSTPLUTO,
     KW_UNIQUEIDS,
index 789c8f3..6952d4e 100644 (file)
@@ -32,6 +32,7 @@ charonstart,       KW_CHARONSTART
 plutostart,        KW_PLUTOSTART
 klipsdebug,        KW_KLIPSDEBUG
 plutodebug,        KW_PLUTODEBUG
+charondebug,       KW_CHARONDEBUG
 prepluto,          KW_PREPLUTO
 postpluto,         KW_POSTPLUTO
 fragicmp,          KW_FRAGICMP