diff src/server.c @ 223:ffb1848a39db noffle

[svn] * src/util.c: Improve (correct) error detection when updating timestamp file. * src/content.h, src/content.c: Return Boolean success/fail from Cont_write. Also ensure cont.first isn't polluted in the event of a failed update. * src/client.c,src/control.c,src/fetch.c,src/noffle.c,src/post.c, src/pseudo.c: If Cont_write fails, don't do actions that need it to have worked. Typically, don't update first and last article numbers in group database. * src/server.c: If groupinfo.lastupdate is unreadable or corrupt, spot this and report it and give an explicit error when processing NNTP NEWGROUPS command.
author bears
date Sun, 09 Dec 2001 12:31:57 +0000
parents 24d4cd032da5
children f8a91e2b4060
line wrap: on
line diff
--- a/src/server.c	Sun Dec 09 11:32:31 2001 +0000
+++ b/src/server.c	Sun Dec 09 12:31:57 2001 +0000
@@ -1,7 +1,7 @@
 /*
   server.c
 
-  $Id: server.c 316 2001-10-31 11:44:53Z bears $
+  $Id: server.c 342 2001-12-09 12:31:57Z bears $
 */
 
 #if HAVE_CONFIG_H
@@ -938,10 +938,17 @@
     }
     snprintf( file, MAXCHAR, "%s/groupinfo.lastupdate", Cfg_spoolDir() );
     t = getTimeInSeconds( year, mon, day, hour, min, sec );
+
+    if ( ! Utl_getStamp( &lastUpdate, file ) )
+    {
+        /* Can't get stamp. Put out error message. */
+        putStat( STAT_PROGRAM_FAULT, "Server error reading %s", file );        
+        return TRUE;
+    }
+    
     putStat( STAT_NEW_GRP_FOLLOW, "New groups since %s", arg );
 
-    if ( ! Utl_getStamp( &lastUpdate, file )
-         || t == (time_t)-1 || t <= lastUpdate )
+    if ( t == (time_t)-1 || t <= lastUpdate )
     {
         if ( Grp_firstGrp( &g ) )
             do