Skip to content

Commit c23952c

Browse files
authored
Merge pull request #453 from liuming50/fix-rtc-restore-issues
plugins:rtc.c: drop some invalid condition checks Signed-off-by: Joachim Wiberg <[email protected]>
2 parents 927acdb + 13a8f56 commit c23952c

File tree

1 file changed

+21
-13
lines changed

1 file changed

+21
-13
lines changed

plugins/rtc.c

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -170,35 +170,44 @@ static void file_save(void *arg)
170170
static void file_restore(void *arg)
171171
{
172172
struct tm tm = { 0 };
173-
int rc = 1;
173+
int rc = 0;
174174
FILE *fp;
175+
char msg[120];
175176

176177
if (!rtc_file) {
177-
logit(LOG_NOTICE, "System has no RTC (missing driver?), skipping restore.");
178+
snprintf(msg, sizeof(msg), "Resetting system clock to kernel default, %s.", rtc_timestamp);
179+
print_desc(NULL, msg);
180+
rc = time_set(NULL);
181+
print(rc, NULL);
178182
return;
179183
}
180184

181-
print_desc(NULL, "Restoring system clock from backup");
182-
183185
fp = fopen(rtc_file, "r");
184186
if (fp) {
185187
char buf[32];
186188

187189
if (fgets(buf, sizeof(buf), fp)) {
188190
chomp(buf);
189191
strptime(buf, RTC_FMT, &tm);
190-
rc = time_set(&tm);
192+
if (!strptime(buf, RTC_FMT, &tm))
193+
rc = 1;
191194
}
192195
fclose(fp);
193-
} else
194-
logit(LOG_WARNING, "Missing %s", rtc_file);
196+
}
197+
rc = 1;
195198

196199
if (rc) {
197-
time_set(NULL);
198-
rc = 2;
200+
print_desc(NULL, "Failed to restore system clock from restore file");
201+
print(2, NULL);
202+
snprintf(msg, sizeof(msg), "Resetting system clock to kernel default, %s.", rtc_timestamp);
203+
print_desc(NULL, msg);
204+
rc = time_set(NULL);
205+
print(rc, NULL);
206+
} else {
207+
print_desc(NULL, "Restoring system clock from restore file");
208+
rc = time_set(&tm);
209+
print(rc, NULL);
199210
}
200-
201-
print(rc, NULL);
202211
}
203212

204213
static int rtc_open(void)
@@ -292,8 +301,7 @@ static void rtc_restore(void *arg)
292301
print(2, NULL);
293302

294303
/* Try restoring from last save game */
295-
if (rtc_file)
296-
file_restore(arg);
304+
file_restore(arg);
297305
} else
298306
print(0, NULL);
299307

0 commit comments

Comments
 (0)