Better boolean handling and more
authorAndreas Tonnesen <andreto@olsr.org>
Wed, 3 Nov 2004 09:22:18 +0000 (09:22 +0000)
committerAndreas Tonnesen <andreto@olsr.org>
Wed, 3 Nov 2004 09:22:18 +0000 (09:22 +0000)
src/cfgparser/olsrd.conf.example
src/cfgparser/olsrd_conf.c
src/cfgparser/olsrd_conf.h
src/cfgparser/oparse.y
src/cfgparser/oscan.lex

index 82a9001..29c97e2 100644 (file)
@@ -47,15 +47,15 @@ AllowNoInt  yes
 
 # TOS(type of service) value for
 # the IP header of control traffic.
-# auto is 16
+# If not set it will default to 16
 
-TosValue       auto
+#TosValue      16
 
 # The fixed willingness to use(0-7)
-# or "auto" to set willingness dynammically
-# based on battery/power status
+# If not set willingness will be calculated
+# dynammically based on battery/power status
 
-Willingness            auto
+#Willingness           4
 
 # Allow processes like the GUI front-end
 # to connect to the daemon. 'yes' or 'no'
@@ -85,7 +85,7 @@ UseHysteresis yes
 
 
 # Polling rate in seconds(float). 
-# Auto uses default value 0.1 sec
+# Default value 0.1 sec
 
 Pollrate       0.1
 
index 549ae17..80545e1 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: olsrd_conf.c,v 1.10 2004/11/01 20:13:27 kattemat Exp $
+ * $Id: olsrd_conf.c,v 1.11 2004/11/03 09:22:18 kattemat Exp $
  *
  */
 
@@ -160,7 +160,7 @@ olsrd_parse_cnf(char *filename)
     {
       /* set various stuff */
       in->index = cnf->ifcnt++;
-      in->configured = 0;
+      in->configured = FALSE;
       in->interf = NULL;
       in = in->next;
     }
@@ -315,6 +315,7 @@ olsrd_write_cnf(struct olsrd_config *cnf, char *fname)
   struct hna6_entry        *h6 = cnf->hna6_entries;
   struct olsr_if           *in = cnf->interfaces;
   struct plugin_entry      *pe = cnf->plugins;
+  struct plugin_param      *pp;
   char ipv6_buf[100];             /* buffer for IPv6 inet_htop */
   struct in_addr in4;
 
@@ -377,9 +378,9 @@ olsrd_write_cnf(struct olsrd_config *cnf, char *fname)
   fprintf(fd, "TosValue\t%d\n\n", cnf->tos);
 
   /* Willingness */
-  fprintf(fd, "# The fixed willingness to use(0-7)\n# or \"auto\" to set willingness dynammically\n# based on battery/power status\n\n");
+  fprintf(fd, "# The fixed willingness to use(0-7)\n# If not set willingness will be calculated\n# dynammically based on battery/power status\n\n");
   if(cnf->willingness_auto)
-    fprintf(fd, "Willingness\tauto\n\n");
+    fprintf(fd, "#Willingness\t4\n\n");
   else
     fprintf(fd, "Willingness%d\n\n", cnf->willingness);
 
@@ -430,8 +431,14 @@ olsrd_write_cnf(struct olsrd_config *cnf, char *fname)
       while(pe)
        {
          fprintf(fd, "LoadPlugin \"%s\"\n{\n", pe->name);
-         pe = pe->next;
+          pp = pe->params;
+          while(pp)
+            {
+              fprintf(fd, "    PlParam \"%s\" \"%s\"\n", pp->key, pp->value);
+              pp = pp->next;
+            }
          fprintf(fd, "}\n");
+         pe = pe->next;
        }
     }
   fprintf(fd, "\n");
index 8880ebf..84a0328 100644 (file)
@@ -19,7 +19,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: olsrd_conf.h,v 1.7 2004/11/01 20:13:27 kattemat Exp $
+ * $Id: olsrd_conf.h,v 1.8 2004/11/03 09:22:18 kattemat Exp $
  *
  */
 
@@ -41,7 +41,7 @@ struct conf_token
 {
   olsr_u32_t integer;
   float      floating;
-  olsr_u8_t  boolean;
+  olsr_bool  boolean;
   char       *string;
 };
 
index 34c0404..31b5fce 100644 (file)
@@ -21,7 +21,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: oparse.y,v 1.9 2004/11/02 19:27:14 kattemat Exp $
+ * $Id: oparse.y,v 1.10 2004/11/03 09:22:18 kattemat Exp $
  *
  */
 
@@ -301,15 +301,8 @@ isethnaval: TOK_HNAVAL TOK_FLOAT
 idebug:       TOK_DEBUGLEVEL TOK_INTEGER
 {
 
-  if($2->boolean == 1)
-    {
-      if(PARSER_DEBUG) printf("Debug levl AUTO\n");
-    }
-  else
-    {
-      cnf->debug_level = $2->integer;
-      if(PARSER_DEBUG) printf("Debug level: %d\n", cnf->debug_level);
-    }
+  cnf->debug_level = $2->integer;
+  if(PARSER_DEBUG) printf("Debug level: %d\n", cnf->debug_level);
 
   free($2);
 }
@@ -437,20 +430,18 @@ ifblock: TOK_INTERFACE TOK_STRING
 bnoint: TOK_NOINT TOK_BOOLEAN
 {
   if(PARSER_DEBUG) printf("Noint set to %d\n", $2->boolean);
+
+  cnf->allow_no_interfaces = $2->boolean;
+
   free($2);
 }
 ;
 
 atos: TOK_TOS TOK_INTEGER
 {
-  if($2->boolean == 1)
-    {
-      if(PARSER_DEBUG) printf("Tos AUTO\n");
-    }
-  else
-    {
-      if(PARSER_DEBUG) printf("TOS: %d\n", $2->integer);
-    }
+  if(PARSER_DEBUG) printf("TOS: %d\n", $2->integer);
+  cnf->tos = $2->integer;
+
   free($2);
 
 }
@@ -458,16 +449,11 @@ atos: TOK_TOS TOK_INTEGER
 
 awillingness: TOK_WILLINGNESS TOK_INTEGER
 {
-  if($2->boolean == 1)
-    {
-      if(PARSER_DEBUG) printf("Willingness AUTO\n");
-    }
-  else
-    {
-      if(PARSER_DEBUG) printf("Willingness: %d\n", $2->integer);
-      cnf->willingness_auto = 0;
-      cnf->willingness = $2->integer;
-    }
+  cnf->willingness_auto = FALSE;
+
+  if(PARSER_DEBUG) printf("Willingness: %d\n", $2->integer);
+  cnf->willingness = $2->integer;
+
   free($2);
 
 }
@@ -475,7 +461,9 @@ awillingness: TOK_WILLINGNESS TOK_INTEGER
 
 bipccon: TOK_IPCCON TOK_BOOLEAN
 {
-  if($2->boolean == 1)
+  cnf->open_ipc = $2->boolean;
+
+  if(cnf->open_ipc)
     {
       if(PARSER_DEBUG) printf("IPC allowed\n");
     }
@@ -491,7 +479,8 @@ bipccon: TOK_IPCCON TOK_BOOLEAN
 
 busehyst: TOK_USEHYST TOK_BOOLEAN
 {
-  if($2->boolean == 1)
+  cnf->use_hysteresis = $2->boolean;
+  if(cnf->use_hysteresis)
     {
       if(PARSER_DEBUG) printf("Hysteresis enabled\n");
     }
@@ -543,15 +532,9 @@ fpollrate: TOK_POLLRATE TOK_FLOAT
 
 atcredundancy: TOK_TCREDUNDANCY TOK_INTEGER
 {
-  if($2->boolean == 1)
-    {
-      if(PARSER_DEBUG) printf("TC redundancy AUTO\n");
-    }
-  else
-    {
-      if(PARSER_DEBUG) printf("TC redundancy %d\n", $2->integer);
-      cnf->tc_redundancy = $2->integer;
-    }
+  if(PARSER_DEBUG) printf("TC redundancy %d\n", $2->integer);
+  cnf->tc_redundancy = $2->integer;
+
   free($2);
 
 }
@@ -559,15 +542,9 @@ atcredundancy: TOK_TCREDUNDANCY TOK_INTEGER
 
 amprcoverage: TOK_MPRCOVERAGE TOK_INTEGER
 {
-  if($2->boolean == 1)
-    {
-      if(PARSER_DEBUG) printf("MPR coverage AUTO\n");
-    }
-  else
-    {
-      if(PARSER_DEBUG) printf("MPR coverage %d\n", $2->integer);
-      cnf->mpr_coverage = $2->integer;
-    }
+  if(PARSER_DEBUG) printf("MPR coverage %d\n", $2->integer);
+  cnf->mpr_coverage = $2->integer;
+
   free($2);
 }
 ;
index d42699e..bcb03b5 100644 (file)
@@ -21,7 +21,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  * 
  * 
- * $Id: oscan.lex,v 1.6 2004/11/01 20:13:27 kattemat Exp $
+ * $Id: oscan.lex,v 1.7 2004/11/03 09:22:18 kattemat Exp $
  *
  */
 
@@ -193,19 +193,11 @@ IPV6ADDR {IP6PAT1}|{IP6PAT2}|{IP6PAT3}|{IP6PAT4}|{IP6PAT5}|{IP6PAT6}|{IP6PAT7}|{
 }
 
 
-"auto"|{DECDIGIT}+ {
+{DECDIGIT}+ {
 
   yylval = get_conf_token();
 
-  if (strncmp(yytext, "auto", 4) == 0)
-    {
-      yylval->boolean = 1;
-    }
-  else
-    {
-      yylval->boolean = 0;
-      yylval->integer = atoi(yytext);
-    }
+  yylval->integer = atoi(yytext);
 
   return TOK_INTEGER;
 
@@ -216,10 +208,10 @@ IPV6ADDR {IP6PAT1}|{IP6PAT2}|{IP6PAT3}|{IP6PAT4}|{IP6PAT5}|{IP6PAT6}|{IP6PAT7}|{
   yylval = get_conf_token();
 
   if (strncmp(yytext, "yes", 3) == 0)
-    yylval->boolean = 1;
+    yylval->boolean = TRUE;
 
   else
-    yylval->boolean = 0;
+    yylval->boolean = FALSE;
 
   return TOK_BOOLEAN;
 }
@@ -230,10 +222,10 @@ IPV6ADDR {IP6PAT1}|{IP6PAT2}|{IP6PAT3}|{IP6PAT4}|{IP6PAT5}|{IP6PAT6}|{IP6PAT7}|{
   yylval = get_conf_token();
 
   if (strncmp(yytext, "site-local", 10) == 0)
-    yylval->boolean = 1;
+    yylval->boolean = TRUE;
 
   else
-    yylval->boolean = 0;
+    yylval->boolean = FALSE;
 
   return TOK_IP6TYPE;
 }