1 #ifndef _SUCK_SUCK_H 2 #define _SUCK_SUCK_H 1 3 4 #include <stdio.h> /* for FILE */ 5 #include "suck_config.h" 6 7 /* Link list structure one for each article */ 8 typedef struct LinkList { 9 struct LinkList *next; 10 char msgnr[MAX_MSGID_LEN]; 11 int groupnr; 12 long nr; 13 long dbnr; 14 char mandatory; 15 char downloaded; 16 char delete; 17 char sentcmd; 18 } List, *PList; 19 20 /* link list for group names */ 21 typedef struct GroupList { 22 char group[MAX_GRP_LEN]; 23 int nr; 24 struct GroupList *next; 25 } Groups, *PGroups; 26 27 /* link list for list overview.fmt */ 28 typedef struct XOVERVIEW { 29 struct XOVERVIEW *next; 30 char *header; /* dynamically alloced */ 31 char *field; 32 int fieldlen; 33 int full; 34 } Overview, *POverview; 35 36 /* Master Structure */ 37 typedef struct { 38 PList head; 39 PList curr; 40 int nritems; 41 int nrgot; 42 int sockfd; 43 int MultiFile; 44 int status_file; 45 int do_killfile; 46 int do_chkhistory; 47 int do_modereader; 48 int always_batch; 49 int cleanup; 50 int batch; 51 int pause_time; 52 int pause_nrmsgs; 53 int sig_pause_time; 54 int sig_pause_nrmsgs; 55 int killfile_log; 56 int debug; 57 int rescan; 58 int quiet; 59 int kill_ignore_postfix; 60 int reconnect_nr; 61 int do_active; 62 int nrmode; 63 int auto_auth; 64 int no_dedupe; 65 int chk_msgid; 66 int prebatch; 67 int skip_on_restart; 68 int use_gui; 69 int do_xover; 70 int conn_dedupe; 71 int conn_active; 72 int header_only; 73 int active_lastread; 74 int use_xover; 75 int resetcounter; 76 int low_read; 77 int show_group; 78 unsigned short int portnr; 79 long rnews_size; 80 FILE *msgs; 81 FILE *innfeed; 82 int db; 83 const char *userid; 84 const char *passwd; 85 const char *host; 86 const char *batchfile; 87 const char *status_file_name; 88 const char *phrases; 89 const char *errlog; 90 const char *localhost; 91 const char *activefile; 92 const char *kill_log_name; 93 const char *post_filter; 94 const char *history_file; 95 PGroups groups; 96 int grpnr; 97 void *killp; 98 void *xoverp; 99 POverview xoverview; 100 int do_ssl; 101 void *ssl_struct; 102 int local_ssl; 103 void *local_ssl_struct; 104 int batch_post_nr; 105 int passwd_env; 106 } Master, *PMaster; 107 108 int get_a_chunk(PMaster, FILE *); 109 void free_one_node(PList); 110 int send_command(PMaster, const char *, char **, int); 111 int get_message_index(PMaster); 112 int do_one_group(PMaster, char *, char *, FILE *, long, int); 113 const char *build_command(PMaster, const char *, PList); 114 115 int allocnode(PMaster, char *, int, char *, long); 116 int do_connect(PMaster, int); 117 118 enum { RETVAL_ERROR = -1, RETVAL_OK = 0, RETVAL_NOARTICLES, RETVAL_UNEXPECTEDANS, RETVAL_VERNR, \ 119 RETVAL_NOAUTH, RETVAL_EMPTYKILL, RETVAL_NOXOVER }; 120 enum { BATCH_FALSE, BATCH_INNXMIT, BATCH_RNEWS, BATCH_LMOVE, BATCH_INNFEED, BATCH_LIHAVE }; /* poss values for batch variable */ 121 enum { MANDATORY_YES = 'M' , MANDATORY_OPTIONAL = 'O'}; /* do we have to download this article */ 122 /* note the MANDATORY_DELETE is used in the dedupe and checkhistory phases to flag em for deletion */ 123 enum {CONNECT_FIRST, CONNECT_AGAIN}; 124 125 #endif /* _SUCK_SUCK_H */ 126