Ticket #2330: sensord-survive-transient-errors.patch
| File sensord-survive-transient-errors.patch, 1.9 KB (added by khali, 3 years ago) |
|---|
-
prog/sensord/sensord.c
85 85 86 86 sensorLog (LOG_INFO, "sensord started"); 87 87 88 while (!done && (ret == 0)) { 89 if (ret == 0) 90 ret = reloadLib (); 91 if ((ret == 0) && scanTime) { /* should I scan on the read cycle? */ 92 ret = scanChips (); 93 if (scanValue <= 0) 94 scanValue += scanTime; 88 while (!done) { 89 ret = reloadLib (); 90 if (ret) 91 sensorLog (LOG_NOTICE, "config reload error (%d)", ret); 92 if (scanTime && (scanValue <= 0)) { 93 if ((ret = scanChips ())) 94 sensorLog (LOG_NOTICE, "sensor scan error (%d)", ret); 95 scanValue += scanTime; 95 96 } 96 if ((ret == 0) && logTime && (logValue <= 0)) { 97 ret = readChips (); 97 if (logTime && (logValue <= 0)) { 98 if ((ret = readChips ())) 99 sensorLog (LOG_NOTICE, "sensor read error (%d)", ret); 98 100 logValue += logTime; 99 101 } 100 if ((ret == 0) && rrdTime && rrdFile && (rrdValue <= 0)) { 101 ret = rrdUpdate (); 102 if (rrdTime && rrdFile && (rrdValue <= 0)) { 103 if ((ret = rrdUpdate ())) 104 sensorLog (LOG_NOTICE, "rrd update error (%d)", ret); 102 105 /* 103 106 * The amount of time to wait is computed using the same method as 104 107 * in RRD instead of simply adding the interval. 105 108 */ 106 109 rrdValue = rrdTime - time(NULL) % rrdTime; 107 110 } 108 if (!done && (ret == 0)) {111 if (!done) { 109 112 int a = logTime ? logValue : INT_MAX; 110 113 int b = scanTime ? scanValue : INT_MAX; 111 114 int c = (rrdTime && rrdFile) ? rrdValue : INT_MAX; … … 117 120 } 118 121 } 119 122 120 if (ret) 121 sensorLog (LOG_INFO, "sensord failed (%d)", ret); 122 else 123 sensorLog (LOG_INFO, "sensord stopped"); 123 sensorLog (LOG_INFO, "sensord stopped"); 124 124 125 125 return ret; 126 126 }
