sgw: do not write uplink/downlink speed directly
[olsrd.git] / lib / sgwdynspeed / src / speedFile.c
index ef9a8df..0937da2 100644 (file)
@@ -76,7 +76,7 @@ static bool readUL(const char * valueName, const char * value, unsigned long * v
        errno = 0;
        valueNew = strtoul(value, &endPtr, 10);
 
-       if (!((endPtr != value) && (*value != '\0') && (*endPtr == '\0'))) {
+       if (!((endPtr != value) && (*value != '\0') && (*endPtr == '\0')) || (errno == ERANGE)) {
                /* invalid conversion */
                sgwDynSpeedError(false, "Value of parameter %s (%s) could not be converted to a number", valueName, value);
                return false;
@@ -264,10 +264,10 @@ void readSpeedFile(char * fileName) {
        fp = NULL;
 
        if (uplinkSet) {
-               olsr_cnf->smart_gw_uplink = uplink;
+         smartgw_set_uplink(olsr_cnf, uplink);
        }
        if (downlinkSet) {
-               olsr_cnf->smart_gw_downlink = downlink;
+         smartgw_set_downlink(olsr_cnf, downlink);
        }
        if (uplinkSet || downlinkSet) {
          refresh_smartgw_netmask();