315 int cmd_archive(char *buf) |
315 int cmd_archive(char *buf) |
316 { |
316 { |
317 char *opt, *param, *name = NULL, *filename = NULL, *logname = NULL, mbits[11], tstr[24]; |
317 char *opt, *param, *name = NULL, *filename = NULL, *logname = NULL, mbits[11], tstr[24]; |
318 DIR *dd; |
318 DIR *dd; |
319 FILE *fp; |
319 FILE *fp; |
320 struct dirent entry, *result; |
320 struct dirent *result; |
321 ls_list *lsx = NULL, *tmp; |
321 ls_list *lsx = NULL, *tmp; |
322 struct stat sbuf; |
322 struct stat sbuf; |
323 struct tm *tbuf; |
323 struct tm *tbuf; |
324 time_t ftime; |
324 time_t ftime; |
325 int found; |
325 int found; |
354 } |
354 } |
355 name = xstrcat(name, (char *)"/.thermferm/log/"); |
355 name = xstrcat(name, (char *)"/.thermferm/log/"); |
356 |
356 |
357 if ((dd = opendir(name))) { |
357 if ((dd = opendir(name))) { |
358 for (;;) { |
358 for (;;) { |
359 if ((readdir_r(dd, &entry, &result)) != 0) { |
359 if (! (result = readdir(dd))) { |
360 syslog(LOG_NOTICE, "readdir_r: error=%d", errno); |
360 syslog(LOG_NOTICE, "readdir: error=%d", errno); |
361 break; |
361 break; |
362 } |
362 } |
363 if (result == NULL) /* End of directory */ |
|
364 break; |
|
365 if (result->d_name[0] != '.') { |
363 if (result->d_name[0] != '.') { |
366 filename = xstrcpy(name); |
364 filename = xstrcpy(name); |
367 filename = xstrcat(filename, result->d_name); |
365 filename = xstrcat(filename, result->d_name); |
368 /* |
366 /* |
369 * Remove files from the list when they are in use |
367 * Remove files from the list when they are in use |