changeset 208:61a0f1e13916 noffle

[svn] see Changelog Nov 14 2001, mirko liss
author mirkol
date Wed, 14 Nov 2001 20:22:22 +0000
parents 79f845db4897
children dca5a43bb7a0
files src/noffle.c
diffstat 1 files changed, 33 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/src/noffle.c	Wed Nov 14 11:14:09 2001 +0000
+++ b/src/noffle.c	Wed Nov 14 20:22:22 2001 +0000
@@ -10,7 +10,7 @@
   received for some seconds (to allow multiple clients connect at the same
   time).
 
-  $Id: noffle.c 311 2001-10-21 11:00:12Z bears $
+  $Id: noffle.c 327 2001-11-14 20:22:22Z mirkol $
 */
 
 #if HAVE_CONFIG_H
@@ -45,6 +45,7 @@
 #include "request.h"
 #include "lock.h"
 #include "portable.h"
+#include "wildmat.h"
 
 struct Noffle
 {
@@ -52,7 +53,8 @@
     Bool queryDsc;
     Bool queryTimes;
     Bool lockAtStartup;
-} noffle = { FALSE, FALSE, FALSE, TRUE };
+    char *serverPattern;
+} noffle = { FALSE, FALSE, FALSE, TRUE, NULL };
 
 static void
 doArt( const char *msgId )
@@ -160,24 +162,26 @@
     
     Cfg_beginServEnum();
     while ( Cfg_nextServ( serv ) )
-        if ( Fetch_init( serv ) )
-        {
-	    Bool connOK;
+        if ( ! noffle.serverPattern 
+                || Wld_match( serv, noffle.serverPattern ) )
+            if ( Fetch_init( serv ) )
+            {
+	        Bool connOK;
 	    
-            connOK = Fetch_postArts();
+                connOK = Fetch_postArts();
 
-            connOK = connOK && Fetch_getNewGrps();
+                connOK = connOK && Fetch_getNewGrps();
 
             /* Get overviews of new articles and store IDs of new articles
                that are to be fetched becase of FULL or THREAD mode in the
                request database. */
-            connOK = connOK && Fetch_updateGrps();         
+                connOK = connOK && Fetch_updateGrps();         
 
             /* get requested articles */
-            connOK = connOK && Fetch_getReq_();
+                connOK = connOK && Fetch_getReq_();
 
-            Fetch_close();
-        }
+                Fetch_close();
+            }
 
     Lock_releaseFetchLock();
 }
@@ -215,16 +219,18 @@
 
     Cfg_beginServEnum();
     while ( Cfg_nextServ( serv ) )
-        if ( Fetch_init( serv ) )
-        {
-	    int stat = STAT_OK;
+        if ( ! noffle.serverPattern 
+                || Wld_match( serv, noffle.serverPattern ) )
+            if ( Fetch_init( serv ) )
+            {
+	        int stat = STAT_OK;
 	    
-            if ( noffle.queryGrps )
-                stat = Client_getGrps();
-            if ( stat == STAT_OK && noffle.queryDsc )
-                Client_getDsc();
-            Fetch_close();
-        }
+                if ( noffle.queryGrps )
+                    stat = Client_getGrps();
+                if ( stat == STAT_OK && noffle.queryDsc )
+                    Client_getDsc();
+                Fetch_close();
+            }
 }
 
 /* Expire all overviews not in database */
@@ -542,7 +548,7 @@
       " -d | --database                  Show content of article database\n"
       " -D | --delete <grp>              Delete a group\n"
       " -e | --expire                    Expire articles\n"
-      " -f | --fetch                     Get newsfeed from server/post articles\n"
+      " -f | --fetch [server]            Get newsfeed from server/post articles\n"
       " -g | --groups                    Show all groups available at server\n"
       " -h | --help                      Show this text\n"
       " -l | --list                      List groups on fetch list\n"
@@ -551,8 +557,8 @@
       " -n | --online                    Switch to online mode\n"
       " -o | --offline                   Switch to offline mode\n"
       " -p | --post                      Post article on stdin\n"
-      " -q | --query groups              Get group list from server\n"
-      " -q | --query desc                Get group descriptions from server\n"
+      " -q | --query groups [server]     Get group list from server\n"
+      " -q | --query desc [server]       Get group descriptions from server\n"
       " -r | --server                    Run as server on stdin/stdout\n"
       " -R | --requested                 List articles marked for download\n"
       " -s | --subscribe-over <grp>      Add group to fetch list (overview)\n"
@@ -876,6 +882,7 @@
 	doExpire();
 	break;
     case 'f':
+        noffle.serverPattern = *argv;
         doFetch();
         break;
     case 'g':
@@ -931,6 +938,9 @@
                 fprintf( stderr, "Unknown argument -q %s\n", *argv );
                 result = EXIT_FAILURE;
             }
+            argv++;
+            argc--;
+            noffle.serverPattern = *argv;
             doQuery();
         }
         break;