apply 103-olsrd-moodfix.patch:
authorSven-Ola Tuecke <sven-ola@gmx.de>
Mon, 16 Jun 2008 07:20:51 +0000 (09:20 +0200)
committerSven-Ola Tuecke <sven-ola@gmx.de>
Mon, 16 Jun 2008 07:20:51 +0000 (09:20 +0200)
lib/dyn_gw/src/olsrd_dyn_gw.c
lib/nameservice/src/nameservice.c
src/cfgparser/oscan.lex

index 3c2e53f..9bd091d 100644 (file)
@@ -135,12 +135,8 @@ olsr_event_doing_hna(void *);
  */
 static int set_plugin_double(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
-    char *endptr;
-    const double d = strtod(value, &endptr);
-    if (*endptr != '\0' || endptr == value) {
-        OLSR_PRINTF(0, "Illegal double \"%s\"", value);
-        return 1;
-    }
+    double d = 0.0;
+    sscanf(value, "%lf", &d);
     if (data != NULL) {
         double *v = data;
         *v = d;
index cd5f872..6036bc0 100644 (file)
@@ -233,16 +233,14 @@ static int set_nameservice_host(const char *value, void *data, set_plugin_parame
 
 static int set_nameservice_float(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
-       const float thefloat = atof(value);
        if (data != NULL)
        {
-               float *v = data;
-               *v = thefloat;
-               OLSR_PRINTF(1, "%s float %f\n", "Got", thefloat);
+               sscanf(value, "%f", (float*)data);
+               OLSR_PRINTF(1, "%s float %f\n", "Got", *(float*)data);
        }
        else
        {
-               OLSR_PRINTF(0, "%s float %f\n", "Ignored", thefloat);
+               OLSR_PRINTF(0, "%s float %s\n", "Ignored", value);
        }
        return 0;
 }
index acb3f91..6fce866 100644 (file)
@@ -113,7 +113,8 @@ static struct conf_token *get_floating_token(const char * const s)
 {
     struct conf_token *rv = get_conf_token();
     if (rv != NULL) {
-        rv->floating = strtod(s, NULL);
+       rv->floating = 0.0;
+       sscanf(s, "%f", &rv->floating);
     }
     return rv;
 }