comparison src/fetch.c @ 155:22b81617d427 noffle

[svn] applied patch from Matija Nalis: better handling of inconsistent counters at remote server; do not read overview on each group command
author enz
date Tue, 05 Dec 2000 19:50:09 +0000
parents b2a4f839affd
children 09ca6eb5c7ff
comparison
equal deleted inserted replaced
154:b2a4f839affd 155:22b81617d427
1 /* 1 /*
2 fetch.c 2 fetch.c
3 3
4 $Id: fetch.c 235 2000-12-05 19:30:50Z enz $ 4 $Id: fetch.c 236 2000-12-05 19:50:09Z enz $
5 */ 5 */
6 6
7 #if HAVE_CONFIG_H 7 #if HAVE_CONFIG_H
8 #include <config.h> 8 #include <config.h>
9 #endif 9 #endif
79 79
80 /* Databases open on entry, closed on exit. */ 80 /* Databases open on entry, closed on exit. */
81 static void 81 static void
82 fetchNewArts( const char *name, FetchMode mode ) 82 fetchNewArts( const char *name, FetchMode mode )
83 { 83 {
84 int next, first, last; 84 int next, first, last, refetch;
85 85
86 if ( ! Client_changeToGrp( name ) ) 86 if ( ! Client_changeToGrp( name ) )
87 { 87 {
88 Log_err( "Could not change to group %s", name ); 88 Log_err( "Could not change to group %s", name );
89 if ( Lock_gotLock() ) 89 if ( Lock_gotLock() )
111 Lock_closeDatabases(); 111 Lock_closeDatabases();
112 return; 112 return;
113 } 113 }
114 if ( next > last + 1 ) 114 if ( next > last + 1 )
115 { 115 {
116 Log_err( "Article number inconsistent (%s rmt=%lu-%lu, next=%lu)", 116 refetch = last - Cfg_maxFetch() + 1;
117 name, first, last, next ); 117 if ( refetch < 0 ) refetch = 1;
118 Pseudo_cntInconsistent( name, first, last, next ); 118 Log_err( "Article number inconsistent (%s rmt=%lu-%lu, next=%lu). Refetching from %lu",
119 name, first, last, next, refetch );
120 Pseudo_cntInconsistent( name, first, last, next, refetch );
121 first = refetch;
119 } 122 }
120 else if ( next < first ) 123 else if ( next < first )
121 { 124 {
122 Log_inf( "Missing articles (%s first=%lu next=%lu)", 125 Log_inf( "Missing articles (%s first=%lu next=%lu)",
123 name, first, next ); 126 name, first, next );