Every $nntp_poll seconds, NNTP checks the file $newsrc
Unfortunately, it didn't release the file handle afterwards.
After a day's use, this would leak 1440 file handles leading most users
to the error "Too many open files".
Fixes: #204
char *line;
struct stat sb;
- /* if file doesn't exist, create it */
- nserv->newsrc_fp = safe_fopen (nserv->newsrc_file, "a");
- safe_fclose (&nserv->newsrc_fp);
+ if (nserv->newsrc_fp)
+ {
+ /* if we already have a handle, close it and reopen */
+ safe_fclose (&nserv->newsrc_fp);
+ }
+ else
+ {
+ /* if file doesn't exist, create it */
+ nserv->newsrc_fp = safe_fopen (nserv->newsrc_file, "a");
+ safe_fclose (&nserv->newsrc_fp);
+ }
/* open .newsrc */
nserv->newsrc_fp = safe_fopen (nserv->newsrc_file, "r");