Mercurial > noffle
annotate src/configfile.c @ 404:775af896124a noffle
[svn] fixed debconf problem
author | godisch |
---|---|
date | Thu, 05 Jun 2003 18:27:28 +0100 |
parents | 6cb66f5a0479 |
children | bcd7f11b1504 |
rev | line source |
---|---|
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
1 /* |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
2 configfile.c |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
3 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
4 The following macros must be set, when compiling this file: |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
5 CONFIGFILE |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
6 SPOOLDIR |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
7 VERSION |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
8 |
391
6cb66f5a0479
[svn] * docs/noffle.1,src/configure.h,src/configfile.c,src/noffle.c: Add optional
bears
parents:
357
diff
changeset
|
9 $Id: configfile.c 533 2003-05-23 09:33:10Z bears $ |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
10 */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
11 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
12 #if HAVE_CONFIG_H |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
13 #include <config.h> |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
14 #endif |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
15 |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
16 #include <ctype.h> |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
17 #include <limits.h> |
273
18d6c61ed4e7
[svn] * src/configfile.c: #include <regex.h> requires sys/types.h be included first.
bears
parents:
249
diff
changeset
|
18 #include <sys/types.h> |
128 | 19 #include <regex.h> |
197
24d4cd032da5
[svn] * AUTHORS,INSTALL,NEWS,README,TODO,docs/NOTES,src/client.c,src/protocol.c,
bears
parents:
195
diff
changeset
|
20 #include "configfile.h" |
128 | 21 #include "filter.h" |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
22 #include "itemlist.h" |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
23 #include "log.h" |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
24 #include "util.h" |
54
125d79c9e586
[svn] * src/client.c, src/configfile.c, src/content.c, src/control.c,
uh1763
parents:
43
diff
changeset
|
25 #include "portable.h" |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
26 #include "wildmat.h" |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
27 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
28 typedef struct |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
29 { |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
30 int numGroup; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
31 int maxGroup; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
32 char **groups; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
33 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
34 GroupEntry; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
35 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
36 struct GroupEnum |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
37 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
38 GroupEntry *groupEntry; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
39 int groupIdx; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
40 }; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
41 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
42 typedef struct |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
43 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
44 char *name; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
45 char *user; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
46 char *pass; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
47 GroupEntry getgroups; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
48 GroupEntry omitgroups; |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
49 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
50 ServEntry; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
51 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
52 typedef struct |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
53 { |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
54 char *pattern; |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
55 int days; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
56 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
57 ExpireEntry; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
58 |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
59 typedef struct |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
60 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
61 char *pattern; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
62 char *mode; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
63 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
64 AutoSubscribeModeEntry; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
65 |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
66 struct |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
67 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
68 /* Compile time options */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
69 const char *spoolDir; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
70 const char *version; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
71 /* Options from the config file */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
72 int maxFetch; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
73 int autoUnsubscribeDays; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
74 int threadFollowTime; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
75 int connectTimeout; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
76 Bool autoSubscribe; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
77 Bool autoUnsubscribe; |
82 | 78 Bool infoAlways; |
357
b0ee77fa24d4
[svn] * src/post.c,src/configfile.c,src/configfile.h,docs/noffle.conf.5,
bears
parents:
290
diff
changeset
|
79 Bool appendReplyTo; |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
80 Bool replaceMsgId; |
195
76460d98b2fb
[svn] * noffle.conf.example,docs/noffle.conf.5,src/configfile.h,src/configfile.c,
bears
parents:
194
diff
changeset
|
81 Str hostnameMsgId; |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
82 Bool postLocal; |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
83 Bool clientAuth; |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
84 Str defaultAutoSubscribeMode; |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
85 Str mailTo; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
86 int defaultExpire; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
87 int numServ; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
88 int maxServ; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
89 ServEntry *serv; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
90 int servIdx; /* for server enumeration */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
91 int numExpire; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
92 int maxExpire; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
93 ExpireEntry *expire; |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
94 int numAutoSubscribeMode; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
95 int maxAutoSubscribeMode; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
96 AutoSubscribeModeEntry *autoSubscribeMode; |
111 | 97 Str pathHeader; |
150
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
98 Str fromDomain; |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
99 Str organization; |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
100 Str noffleUser; |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
101 Str noffleGroup; |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
102 } config = |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
103 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
104 SPOOLDIR, /* spoolDir */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
105 VERSION, /* version */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
106 300, /* maxFetch */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
107 30, /* autoUnsubscribeDays */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
108 7, /* threadFollowTime */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
109 30, /* connectTimeout */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
110 FALSE, /* autoSubscribe */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
111 FALSE, /* autoUnsubscribe */ |
82 | 112 TRUE, /* infoAlways */ |
357
b0ee77fa24d4
[svn] * src/post.c,src/configfile.c,src/configfile.h,docs/noffle.conf.5,
bears
parents:
290
diff
changeset
|
113 TRUE, /* appendReplyTo */ |
222
bf290632d29e
[svn] * src/post.c: Always replace message ID in posted message if existing
bears
parents:
212
diff
changeset
|
114 FALSE, /* replaceMsgId */ |
195
76460d98b2fb
[svn] * noffle.conf.example,docs/noffle.conf.5,src/configfile.h,src/configfile.c,
bears
parents:
194
diff
changeset
|
115 "", /* hostnameMsgId */ |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
116 FALSE, /* postLocal */ |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
117 FALSE, /* clientAuth */ |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
118 "over", /* defaultAutoSubscribeMode */ |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
119 "", /* mailTo */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
120 14, /* defaultExpire */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
121 0, /* numServ */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
122 0, /* maxServ */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
123 NULL, /* serv */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
124 0, /* servIdx */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
125 0, /* numExpire */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
126 0, /* maxExpire */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
127 NULL, /* expire */ |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
128 0, /* numAutoSubscribeMode */ |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
129 0, /* maxAutoSubscribeMode */ |
111 | 130 NULL, /* autoSubscribeMode */ |
150
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
131 "", /* pathHeader */ |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
132 "", /* fromDomain */ |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
133 "", /* organization */ |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
134 "news", /* user Noffle runs as */ |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
135 "news" /* group Noffle runs as */ |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
136 }; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
137 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
138 const char * Cfg_spoolDir( void ) { return config.spoolDir; } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
139 const char * Cfg_version( void ) { return config.version; } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
140 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
141 int Cfg_maxFetch( void ) { return config.maxFetch; } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
142 int Cfg_autoUnsubscribeDays( void ) { return config.autoUnsubscribeDays; } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
143 int Cfg_threadFollowTime( void ) { return config.threadFollowTime; } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
144 int Cfg_connectTimeout( void ) { return config.connectTimeout; } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
145 Bool Cfg_autoUnsubscribe( void ) { return config.autoUnsubscribe; } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
146 Bool Cfg_autoSubscribe( void ) { return config.autoSubscribe; } |
82 | 147 Bool Cfg_infoAlways( void ) { return config.infoAlways; } |
357
b0ee77fa24d4
[svn] * src/post.c,src/configfile.c,src/configfile.h,docs/noffle.conf.5,
bears
parents:
290
diff
changeset
|
148 Bool Cfg_appendReplyTo ( void ) { return config.appendReplyTo; } |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
149 Bool Cfg_replaceMsgId( void ) { return config.replaceMsgId; } |
195
76460d98b2fb
[svn] * noffle.conf.example,docs/noffle.conf.5,src/configfile.h,src/configfile.c,
bears
parents:
194
diff
changeset
|
150 const char * Cfg_hostnameMsgId( void ) { return config.hostnameMsgId; } |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
151 Bool Cfg_postLocal( void ) { return config.postLocal; } |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
152 Bool Cfg_needClientAuth( void ) { return config.clientAuth; } |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
153 const char * Cfg_defaultAutoSubscribeMode( void ) { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
154 return config.defaultAutoSubscribeMode; } |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
155 const char * Cfg_mailTo( void ) { return config.mailTo; } |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
156 int Cfg_defaultExpire( void ) { return config.defaultExpire; } |
111 | 157 const char * Cfg_pathHeader( void ) { return config.pathHeader; } |
150
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
158 const char * Cfg_fromDomain( void ) { return config.fromDomain; } |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
159 const char * Cfg_organization( void ) { return config.organization; } |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
160 const char * Cfg_noffleUser( void ) { return config.noffleUser; } |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
161 const char * Cfg_noffleGroup( void ) { return config.noffleGroup; } |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
162 |
391
6cb66f5a0479
[svn] * docs/noffle.1,src/configure.h,src/configfile.c,src/noffle.c: Add optional
bears
parents:
357
diff
changeset
|
163 void Cfg_setClientAuth( Bool needsAuth ) |
6cb66f5a0479
[svn] * docs/noffle.1,src/configure.h,src/configfile.c,src/noffle.c: Add optional
bears
parents:
357
diff
changeset
|
164 { |
6cb66f5a0479
[svn] * docs/noffle.1,src/configure.h,src/configfile.c,src/noffle.c: Add optional
bears
parents:
357
diff
changeset
|
165 config.clientAuth = needsAuth; |
6cb66f5a0479
[svn] * docs/noffle.1,src/configure.h,src/configfile.c,src/noffle.c: Add optional
bears
parents:
357
diff
changeset
|
166 } |
6cb66f5a0479
[svn] * docs/noffle.1,src/configure.h,src/configfile.c,src/noffle.c: Add optional
bears
parents:
357
diff
changeset
|
167 |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
168 void |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
169 Cfg_beginServEnum( void ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
170 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
171 config.servIdx = 0; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
172 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
173 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
174 Bool |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
175 Cfg_nextServ( Str name ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
176 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
177 if ( config.servIdx >= config.numServ ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
178 return FALSE; |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
179 Utl_cpyStr( name, config.serv[ config.servIdx ].name ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
180 ++config.servIdx; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
181 return TRUE; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
182 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
183 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
184 static Bool |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
185 searchServ( const char *name, int *idx ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
186 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
187 int i; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
188 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
189 for ( i = 0; i < config.numServ; ++i ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
190 if ( strcmp( name, config.serv[ i ].name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
191 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
192 *idx = i; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
193 return TRUE; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
194 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
195 return FALSE; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
196 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
197 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
198 Bool |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
199 Cfg_servListContains( const char *name ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
200 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
201 int idx; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
202 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
203 return searchServ( name, &idx ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
204 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
205 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
206 Bool |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
207 Cfg_servIsPreferential( const char *name1, const char *name2 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
208 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
209 Bool exists1, exists2; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
210 int idx1, idx2; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
211 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
212 exists1 = searchServ( name1, &idx1 ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
213 exists2 = searchServ( name2, &idx2 ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
214 if ( exists1 && exists2 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
215 return ( idx1 < idx2 ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
216 if ( exists1 && ! exists2 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
217 return TRUE; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
218 /* ( ! exists1 && exists2 ) || ( ! exists1 && ! exists2 ) */ |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
219 return FALSE; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
220 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
221 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
222 void |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
223 Cfg_authInfo( const char *name, Str user, Str pass ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
224 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
225 int idx; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
226 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
227 if ( searchServ( name, &idx ) ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
228 { |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
229 Utl_cpyStr( user, config.serv[ idx ].user ); |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
230 Utl_cpyStr( pass, config.serv[ idx ].pass ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
231 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
232 else |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
233 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
234 user[ 0 ] = '\0'; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
235 pass[ 0 ] = '\0'; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
236 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
237 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
238 |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
239 int |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
240 Cfg_expire( const char *grp ) |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
241 { |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
242 int i, res; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
243 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
244 for ( i = 0; i < config.numExpire; i++ ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
245 if ( Wld_match( grp, config.expire[ i ].pattern ) ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
246 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
247 res = config.expire[ i ].days; |
185
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
248 Log_dbg( LOG_DBG_CONFIG, |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
249 "Custom expire period %d for group %s", |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
250 res, grp ); |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
251 return res; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
252 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
253 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
254 return Cfg_defaultExpire(); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
255 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
256 |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
257 const char * |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
258 Cfg_autoSubscribeMode( const char *grp ) |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
259 { |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
260 int i; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
261 const char *res; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
262 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
263 for ( i = 0; i < config.numAutoSubscribeMode; i++ ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
264 if ( Wld_match( grp, config.autoSubscribeMode[ i ].pattern ) ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
265 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
266 res = config.autoSubscribeMode[ i ].mode; |
185
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
267 Log_dbg( LOG_DBG_CONFIG, |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
268 "Custom auto subscribe mode %s for group %s", |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
269 res, grp ); |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
270 return res; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
271 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
272 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
273 return Cfg_defaultAutoSubscribeMode(); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
274 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
275 |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
276 GroupEnum * |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
277 new_GetGrEn( const char *name ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
278 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
279 GroupEnum *res; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
280 int servIdx; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
281 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
282 res = (GroupEnum *) malloc( sizeof( GroupEnum ) ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
283 if ( res == NULL ) |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
284 Log_fatal( "Malloc of GroupEnum failed." ); |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
285 if ( ! searchServ( name, &servIdx ) ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
286 res->groupEntry = NULL; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
287 else |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
288 res->groupEntry = &config.serv[ servIdx ].getgroups; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
289 GrEn_first( res ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
290 return res; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
291 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
292 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
293 GroupEnum * |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
294 new_OmitGrEn( const char *name ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
295 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
296 GroupEnum *res; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
297 int servIdx; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
298 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
299 res = (GroupEnum *) malloc( sizeof( GroupEnum ) ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
300 if ( res == NULL ) |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
301 Log_fatal( "Malloc of GroupEnum failed." ); |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
302 if ( ! searchServ( name, &servIdx ) ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
303 res->groupEntry = NULL; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
304 else |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
305 res->groupEntry = &config.serv[ servIdx ].omitgroups; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
306 GrEn_first( res ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
307 return res; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
308 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
309 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
310 void |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
311 del_GrEn( GroupEnum *ge ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
312 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
313 free(ge); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
314 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
315 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
316 void |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
317 GrEn_first( GroupEnum *ge ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
318 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
319 ge->groupIdx = 0; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
320 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
321 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
322 const char * |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
323 GrEn_next( GroupEnum *ge ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
324 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
325 if ( ge->groupEntry == NULL || |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
326 ge->groupIdx >= ge->groupEntry->numGroup ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
327 return NULL; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
328 return ge->groupEntry->groups[ ge->groupIdx++ ]; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
329 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
330 |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
331 static void |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
332 logSyntaxErr( const char *line ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
333 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
334 Log_err( "Syntax error in config file: %s", line ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
335 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
336 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
337 static void |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
338 getBool( Bool *variable, const char *line ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
339 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
340 Str value, name, lowerLn; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
341 |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
342 Utl_cpyStr( lowerLn, line ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
343 Utl_toLower( lowerLn ); |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
344 if ( sscanf( lowerLn, MAXCHAR_FMT " " MAXCHAR_FMT, name, value ) != 2 ) |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
345 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
346 logSyntaxErr( line ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
347 return; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
348 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
349 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
350 if ( strcmp( value, "yes" ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
351 *variable = TRUE; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
352 else if ( strcmp( value, "no" ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
353 *variable = FALSE; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
354 else |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
355 Log_err( "Error in config file %s must be yes or no", name ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
356 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
357 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
358 static void |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
359 getInt( int *variable, int min, int max, const char *line ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
360 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
361 int value; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
362 Str name; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
363 |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
364 if ( sscanf( line, MAXCHAR_FMT " %d", name, &value ) != 2 ) |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
365 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
366 logSyntaxErr( line ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
367 return; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
368 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
369 if ( value < min || value > max ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
370 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
371 Log_err( "Range error in config file %s [%d,%d]", name, min, max ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
372 return; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
373 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
374 *variable = value; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
375 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
376 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
377 static void |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
378 getStr( char *variable, const char *line ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
379 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
380 Str dummy; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
381 |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
382 if ( sscanf( line, MAXCHAR_FMT " " MAXCHAR_FMT, dummy, variable ) != 2 ) |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
383 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
384 logSyntaxErr( line ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
385 return; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
386 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
387 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
388 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
389 static void |
150
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
390 getText( Str variable, const char *line ) |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
391 { |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
392 const char *l; |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
393 |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
394 /* Skip command */ |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
395 l = Utl_restOfLn( line, 1 ); |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
396 Utl_cpyStr( variable, l ); |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
397 } |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
398 |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
399 static void |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
400 getServ( const char *line ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
401 { |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
402 Str dummy, name, user, pass; |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
403 int r, len; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
404 ServEntry entry; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
405 |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
406 memset( &entry, 0, sizeof( entry ) ); |
190
47569cf4ad4a
[svn] fix bug with missing initialization of user name and passwd
enz
parents:
185
diff
changeset
|
407 user[ 0 ] = pass[ 0 ] = '\0'; |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
408 r = sscanf( line, |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
409 MAXCHAR_FMT " " MAXCHAR_FMT " " MAXCHAR_FMT " " MAXCHAR_FMT, |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
410 dummy, name, user, pass ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
411 if ( r < 2 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
412 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
413 logSyntaxErr( line ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
414 return; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
415 } |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
416 len = strlen( name ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
417 /* To make server name more definit, it is made lowercase and |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
418 port is removed, if it is the default port */ |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
419 if ( len > 4 && strcmp( name + len - 4, ":119" ) == 0 ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
420 name[ len - 4 ] = '\0'; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
421 Utl_toLower( name ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
422 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
423 Utl_allocAndCpy( &entry.name, name ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
424 Utl_allocAndCpy( &entry.user, user ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
425 Utl_allocAndCpy( &entry.pass, pass ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
426 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
427 if ( config.maxServ < config.numServ + 1 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
428 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
429 if ( ! ( config.serv = realloc( config.serv, |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
430 ( config.maxServ + 5 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
431 * sizeof( ServEntry ) ) ) ) |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
432 Log_fatal( "Could not realloc server list" ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
433 config.maxServ += 5; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
434 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
435 config.serv[ config.numServ++ ] = entry; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
436 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
437 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
438 static void |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
439 getExpire( const char *line ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
440 { |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
441 Str dummy, pattern; |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
442 ExpireEntry entry; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
443 int days; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
444 |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
445 if ( sscanf( line, MAXCHAR_FMT " " MAXCHAR_FMT " %d", |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
446 dummy, pattern, &days ) != 3 ) |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
447 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
448 logSyntaxErr( line ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
449 return; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
450 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
451 else |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
452 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
453 if ( days < 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
454 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
455 Log_err( "Expire days error in '%s': must be integer > 0", |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
456 line, days ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
457 return; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
458 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
459 |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
460 Utl_toLower( pattern ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
461 Utl_allocAndCpy( &entry.pattern, pattern ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
462 entry.days = days; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
463 |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
464 if ( config.maxExpire < config.numExpire + 1 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
465 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
466 if ( ! ( config.expire = realloc( config.expire, |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
467 ( config.maxExpire + 5 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
468 * sizeof( ExpireEntry ) ) ) ) |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
469 Log_fatal( "Could not realloc expire list" ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
470 config.maxExpire += 5; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
471 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
472 config.expire[ config.numExpire++ ] = entry; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
473 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
474 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
475 |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
476 static void |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
477 getGroups( char *line, Bool isGet ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
478 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
479 const char *name; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
480 ItemList *patterns; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
481 const char *pattern; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
482 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
483 if ( config.numServ == 0 ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
484 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
485 Log_err( "No current server in %s", line ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
486 return; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
487 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
488 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
489 name = line; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
490 /* Skip over name and terminate it */ |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
491 while ( line[ 0 ] != '\0' && ! isspace( line[ 0 ] ) ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
492 line++; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
493 if ( line[ 0 ] == '\0' ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
494 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
495 logSyntaxErr( name ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
496 return; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
497 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
498 line[ 0 ] = '\0'; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
499 line++; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
500 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
501 patterns = new_Itl( line, " ," ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
502 for( pattern = Itl_first( patterns ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
503 pattern != NULL; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
504 pattern = Itl_next( patterns ) ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
505 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
506 GroupEntry *g; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
507 |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
508 if ( isGet ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
509 g = &config.serv[ config.numServ - 1 ].getgroups; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
510 else |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
511 g = &config.serv[ config.numServ - 1 ].omitgroups; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
512 if ( g->maxGroup < g->numGroup + 1 ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
513 { |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
514 if ( ! ( g->groups = realloc( g->groups, |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
515 ( g->maxGroup + 5 ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
516 * sizeof( char * ) ) ) ) |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
517 Log_fatal( "Could not realloc group list" ); |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
518 g->maxGroup += 5; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
519 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
520 Utl_allocAndCpy( &g->groups[ g->numGroup++ ], pattern ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
521 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
522 del_Itl( patterns) ; |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
523 } |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
524 |
185
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
525 static void |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
526 getDebugMask( char *line ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
527 { |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
528 const char *name; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
529 ItemList *maskNames; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
530 const char *maskName; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
531 unsigned mask; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
532 |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
533 name = line; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
534 /* Skip over name and terminate it */ |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
535 while ( line[ 0 ] != '\0' && ! isspace( line[ 0 ] ) ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
536 line++; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
537 if ( line[ 0 ] == '\0' ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
538 { |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
539 logSyntaxErr( name ); |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
540 return; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
541 } |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
542 line[ 0 ] = '\0'; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
543 line++; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
544 |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
545 mask = LOG_DBG_NONE; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
546 maskNames = new_Itl( line, " ," ); |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
547 for( maskName = Itl_first( maskNames ); |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
548 maskName != NULL; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
549 maskName = Itl_next( maskNames ) ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
550 { |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
551 if ( strcmp( maskName, "all" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
552 mask = LOG_DBG_ALL; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
553 else if ( strcmp( maskName, "none" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
554 mask = LOG_DBG_NONE; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
555 else if ( strcmp( maskName, "config" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
556 mask |= LOG_DBG_CONFIG; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
557 else if ( strcmp( maskName, "control" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
558 mask |= LOG_DBG_CONTROL; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
559 else if ( strcmp( maskName, "expire" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
560 mask |= LOG_DBG_EXPIRE; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
561 else if ( strcmp( maskName, "fetch" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
562 mask |= LOG_DBG_FETCH; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
563 else if ( strcmp( maskName, "filter" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
564 mask |= LOG_DBG_FILTER; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
565 else if ( strcmp( maskName, "newsbase" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
566 mask |= LOG_DBG_NEWSBASE; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
567 else if ( strcmp( maskName, "noffle" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
568 mask |= LOG_DBG_NOFFLE; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
569 else if ( strcmp( maskName, "post" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
570 mask |= LOG_DBG_POST; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
571 else if ( strcmp( maskName, "protocol" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
572 mask |= LOG_DBG_PROTOCOL; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
573 else if ( strcmp( maskName, "requests" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
574 mask |= LOG_DBG_REQUESTS; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
575 else if ( strcmp( maskName, "server" ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
576 mask |= LOG_DBG_SERVER; |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
577 else if ( strcmp( maskName, "auth" ) == 0 ) |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
578 mask |= LOG_DBG_AUTH; |
185
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
579 else |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
580 logSyntaxErr( line ); |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
581 } |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
582 del_Itl( maskNames) ; |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
583 Log_setDbgMask( mask ); |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
584 } |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
585 |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
586 static Bool |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
587 isValidAutoSubscribeMode( const char *mode ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
588 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
589 return strcmp( mode, "full" ) == 0 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
590 || strcmp( mode, "thread" ) == 0 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
591 || strcmp( mode, "over" ) == 0 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
592 || strcmp( mode, "off" ) == 0; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
593 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
594 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
595 static void |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
596 getAutoSubscribeMode( const char *line ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
597 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
598 Str dummy, pattern, mode; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
599 AutoSubscribeModeEntry entry; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
600 int items; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
601 |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
602 items = sscanf( line, MAXCHAR_FMT " " MAXCHAR_FMT " " MAXCHAR_FMT, |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
603 dummy, pattern, mode ); |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
604 if ( items == 2 ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
605 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
606 /* Backwards compat. default-auto-subscribe-mode */ |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
607 Utl_cpyStr( mode, pattern ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
608 Utl_toLower( mode ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
609 if ( ! isValidAutoSubscribeMode( mode ) ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
610 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
611 logSyntaxErr( line ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
612 return; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
613 } |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
614 Utl_cpyStr( config.defaultAutoSubscribeMode, mode ); |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
615 return; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
616 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
617 else if ( items != 3 ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
618 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
619 logSyntaxErr( line ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
620 return; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
621 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
622 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
623 Utl_toLower( mode ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
624 if ( ! isValidAutoSubscribeMode( mode ) ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
625 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
626 logSyntaxErr( line ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
627 return; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
628 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
629 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
630 Utl_toLower( pattern ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
631 Utl_allocAndCpy( &entry.pattern, pattern ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
632 Utl_allocAndCpy( &entry.mode, mode ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
633 |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
634 if ( config.maxAutoSubscribeMode < config.numAutoSubscribeMode + 1 ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
635 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
636 if ( ! ( config.autoSubscribeMode = |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
637 realloc( config.autoSubscribeMode, |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
638 ( config.maxAutoSubscribeMode + 5 ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
639 * sizeof( AutoSubscribeModeEntry ) ) ) ) |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
640 Log_fatal( "Could not realloc auto subscribe mode list" ); |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
641 config.maxAutoSubscribeMode += 5; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
642 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
643 config.autoSubscribeMode[ config.numAutoSubscribeMode++ ] = entry; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
644 } |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
645 |
128 | 646 static const char * |
647 getToken( const char *line, Str value ) | |
648 { | |
649 Bool isQuoted; | |
650 char quoteChar; | |
651 Bool seenEscape; | |
652 char *maxVal; | |
653 | |
654 while ( *line != '\0' && isspace( *line ) ) | |
655 line++; | |
656 if ( *line == '\0' ) | |
657 return NULL; | |
658 | |
659 maxVal = &value[ MAXCHAR ]; | |
660 isQuoted = ( *line == '\'' || *line == '"' ); | |
661 if ( isQuoted ) | |
662 { | |
663 quoteChar = *line; | |
664 line++; | |
665 | |
666 seenEscape = FALSE; | |
667 while ( *line != '\0' | |
668 && ( *line != quoteChar || seenEscape ) | |
669 && value < maxVal ) | |
670 { | |
671 if ( seenEscape ) | |
672 { | |
673 *value++ = *line; | |
674 seenEscape = FALSE; | |
675 } | |
676 else | |
677 { | |
678 if ( *line == '\\' ) | |
679 seenEscape = TRUE; | |
680 else | |
681 *value++ = *line; | |
682 } | |
683 line++; | |
684 } | |
685 | |
686 if ( *line == quoteChar ) | |
687 line++; | |
688 } | |
689 else | |
690 { | |
691 while ( *line != '\0' && ! isspace( *line ) && value < maxVal ) | |
692 *value++ = *line++; | |
693 } | |
694 *value = '\0'; | |
695 return line; | |
696 } | |
697 | |
249 | 698 /* very simple date parser. |
699 * examples: | |
700 * now+ | |
701 */ | |
702 static Bool | |
703 get_simpledate( time_t *timeoffsetp, FilterRuleDateEnumType *vartimep, const char *val) | |
704 { | |
705 float timef; | |
706 | |
707 if ( ! strncasecmp( val, "invalid", 7 ) ) | |
708 { | |
709 *vartimep = INVALID; | |
710 return TRUE; | |
711 } | |
712 else if ( ! strncasecmp( val, "now", 3 ) ) | |
713 { | |
714 val += 3; | |
715 *vartimep = NOW; | |
716 } | |
717 else if ( ! strncasecmp( val, "lastupdate", 10 ) ) | |
718 { | |
719 val += 10; | |
720 *vartimep = LASTUPDATE; | |
721 } | |
722 else | |
723 { | |
724 *vartimep = FIXED; | |
725 *timeoffsetp = Utl_parseNewsDate( val ); | |
726 if ( *timeoffsetp == (time_t) -1 ) | |
727 return FALSE; | |
728 else | |
729 return TRUE; | |
730 } | |
731 /* NOW, LASTUPDATE +/- number of days. */ | |
732 timef = atof( val ) * 86400.0 ; /* 24 * 60 * 60 == 86400 */ | |
733 | |
734 /* let's assume more than 10 years of timeoffset are a mistake. */ | |
735 if ( timef > 31536000.0 || timef < -31536000.0 ) | |
736 return FALSE; | |
737 *timeoffsetp = (time_t) timef; | |
738 /* Todo: check if any garbage follows. */ | |
739 return TRUE; | |
740 } | |
741 | |
128 | 742 static void |
743 getFilter( const char *line ) | |
744 { | |
745 Str ruleBuf, value; | |
746 const char *l; | |
747 char *p, *ruleName; | |
748 Filter *f; | |
749 FilterRule rule; | |
750 Bool seenAction; | |
751 | |
752 f = new_Filter(); | |
753 | |
754 /* Skip "filter" */ | |
755 l = Utl_restOfLn( line, 1 ); | |
756 seenAction = FALSE; | |
757 | |
758 for(;;) | |
759 { | |
760 while ( *l != '\0' && isspace( *l ) ) | |
761 l++; | |
762 | |
763 if ( *l == '\0' ) | |
764 break; | |
765 | |
766 /* Get the rule title */ | |
767 p = ruleBuf; | |
768 while ( *l != '\0' && *l != '=' && *l != '<' && *l != '>' ) | |
769 *p++ = *l++; | |
770 *p = '\0'; | |
771 ruleName = Utl_stripWhiteSpace( ruleBuf ); | |
772 Utl_toLower( ruleName ); | |
773 | |
774 if ( *ruleName == '\0' ) | |
775 goto synErr; | |
776 | |
777 /* Do we know this rule? */ | |
778 if ( strcmp( ruleName, "group" ) == 0 ) | |
779 rule.type = RULE_NEWSGROUP; | |
780 else if ( strcmp( ruleName, "subject" ) == 0 ) | |
781 rule.type = RULE_SUBJECT; | |
249 | 782 else if ( strcmp( ruleName, "reference" ) == 0 ) |
783 rule.type = RULE_REFERENCE; | |
128 | 784 else if ( strcmp( ruleName, "from" ) == 0 ) |
785 rule.type = RULE_FROM; | |
786 else if ( strcmp( ruleName, "msgid" ) == 0 ) | |
787 rule.type = RULE_MSGID; | |
788 else if ( strcmp( ruleName, "bytes" ) == 0 ) | |
249 | 789 rule.type = RULE_BYTES_EQ; |
128 | 790 else if ( strcmp( ruleName, "lines" ) == 0 ) |
249 | 791 rule.type = RULE_LINES_EQ; |
128 | 792 else if ( strcmp( ruleName, "refs" ) == 0 ) |
249 | 793 rule.type = RULE_NOREFS_EQ; |
128 | 794 else if ( strcmp( ruleName, "xposts" ) == 0 ) |
249 | 795 rule.type = RULE_XPOSTS_EQ; |
212 | 796 else if ( strcmp( ruleName, "post-status" ) == 0 ) |
797 rule.type = RULE_POST_STATUS; | |
249 | 798 else if ( strcmp( ruleName, "date" ) == 0 ) |
799 rule.type = RULE_DATE_EQ; | |
800 /* date<lastupdate-12 equals older=lastupdate-12 | |
801 * date>now+1.5 equals newer=now+1.5 | |
802 * date=now equals older=now+1 AND newer=now-1 | |
803 * Stupid people like Mirko keep making mistakes | |
804 * if they're forced using date< or date>. | |
805 */ | |
806 else if ( strcmp( ruleName, "older" ) == 0 ) | |
807 rule.type = RULE_DATE_LT; | |
808 else if ( strcmp( ruleName, "newer" ) == 0 ) | |
809 rule.type = RULE_DATE_GT; | |
810 | |
128 | 811 else if ( strcmp( ruleName, "action" ) != 0 ) |
812 goto synErr; | |
813 | |
249 | 814 if ( rule.type == RULE_BYTES_EQ || |
815 rule.type == RULE_LINES_EQ || | |
816 rule.type == RULE_NOREFS_EQ || | |
817 rule.type == RULE_XPOSTS_EQ || | |
818 rule.type == RULE_DATE_EQ ) | |
128 | 819 { |
249 | 820 if ( *l == '<' ) |
821 rule.type--; | |
128 | 822 else if ( *l == '>' ) |
249 | 823 rule.type++; |
824 else if ( *l != '=' ) | |
128 | 825 goto synErr; |
826 } | |
827 else if ( *l != '=' ) | |
828 goto synErr; | |
829 | |
830 /* Skip past '=' (or '>' or '<') */ | |
831 l++; | |
832 | |
833 /* OK, we now have a valid rule. What value? */ | |
834 l = getToken( l, value ); | |
835 if ( l == NULL ) | |
836 goto synErr; | |
837 | |
838 if ( strcmp( ruleName, "action" ) == 0 ) | |
839 { | |
840 if ( seenAction ) | |
841 goto synErr; | |
842 | |
843 Utl_toLower( value ); | |
844 if ( strcmp( value, "full" ) == 0 ) | |
845 f->action = FILTER_FULL; | |
846 else if ( strcmp( value, "over" ) == 0 ) | |
847 f->action = FILTER_XOVER; | |
848 else if ( strcmp( value, "thread" ) == 0 ) | |
849 f->action = FILTER_THREAD; | |
850 else if ( strcmp( value, "discard" ) == 0 ) | |
851 f->action = FILTER_DISCARD; | |
194
a4e9a20e50e5
[svn] * docs/noffle.conf.5,src/configfile.c,src/filter.h,src/filter.c:
bears
parents:
190
diff
changeset
|
852 else if ( strcmp( value, "default" ) == 0 ) |
a4e9a20e50e5
[svn] * docs/noffle.conf.5,src/configfile.c,src/filter.h,src/filter.c:
bears
parents:
190
diff
changeset
|
853 f->action = FILTER_DEFAULT; |
128 | 854 seenAction = TRUE; |
855 } | |
856 else if ( rule.type == RULE_NEWSGROUP ) | |
857 Utl_allocAndCpy( &rule.data.grp, value ); | |
858 else if ( rule.type >= RULE_SUBJECT && rule.type <= RULE_MSGID ) | |
859 { | |
860 if ( regcomp( &rule.data.regex, value, REG_EXTENDED ) != 0 ) | |
861 goto synErr; | |
862 } | |
212 | 863 else if (rule.type == RULE_POST_STATUS ) |
249 | 864 { |
212 | 865 if ( ( strcmp( value, "yes" ) == 0 ) || \ |
866 ( strcmp( value, "no" ) == 0 ) || \ | |
867 ( strncmp( value, "mod", 3 ) == 0 ) ) | |
868 /* no need to type out "moderated" */ | |
869 rule.data.postAllow = value[0]; /* 'y','n' or 'm' */ | |
870 else | |
871 goto synErr; | |
249 | 872 } |
873 else if ( rule.type == RULE_DATE_LT || | |
874 rule.type == RULE_DATE_EQ || | |
875 rule.type == RULE_DATE_GT ) | |
876 { | |
877 if ( !get_simpledate( &rule.data.reftime.timeoffset, &rule.data.reftime.vartime, value ) ) | |
878 goto synErr; | |
879 if ( rule.type != RULE_DATE_EQ && | |
880 rule.data.reftime.vartime == INVALID ) | |
881 goto synErr; | |
882 } | |
128 | 883 else |
884 { | |
885 char * endVal; | |
134 | 886 int suffix; |
128 | 887 |
888 rule.data.amount = strtoul( value, &endVal, 0 ); | |
134 | 889 suffix = tolower( *endVal ); |
890 if ( suffix == 'k' || suffix == 'm' ) | |
891 { | |
892 rule.data.amount *= 1024; | |
893 if ( suffix == 'm' ) | |
894 rule.data.amount *= 1024; | |
895 endVal++; | |
896 } | |
128 | 897 if ( *endVal != '\0' && ! isspace( *endVal ) ) |
898 goto synErr; | |
899 } | |
900 | |
901 if ( strcmp( ruleName, "action" ) != 0 ) | |
902 { | |
185
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
903 Log_dbg( LOG_DBG_CONFIG, |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
904 "Adding rule type %d value %s", |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
905 rule.type, value ); |
128 | 906 Flt_addRule( f, rule ); |
907 } | |
908 } | |
909 | |
185
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
910 Log_dbg( LOG_DBG_CONFIG, "Adding filter, action %d", f->action ); |
128 | 911 Flt_addFilter( f ); |
912 return; | |
913 | |
914 synErr: | |
915 logSyntaxErr( line ); | |
916 return; | |
917 } | |
918 | |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
919 void |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
920 Cfg_read( void ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
921 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
922 char *p; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
923 FILE *f; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
924 Str file, line, lowerLine, name, s; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
925 |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
926 Utl_cpyStr( file, CONFIGFILE ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
927 if ( ! ( f = fopen( file, "r" ) ) ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
928 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
929 Log_err( "Cannot read %s", file ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
930 return; |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
931 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
932 while ( fgets( line, MAXCHAR, f ) ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
933 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
934 p = Utl_stripWhiteSpace( line ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
935 Utl_stripComment( p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
936 Utl_cpyStr( lowerLine, p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
937 Utl_toLower( lowerLine ); |
128 | 938 p = lowerLine; |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
939 if ( *p == '\0' ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
940 continue; |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
941 if ( sscanf( p, MAXCHAR_FMT, name ) != 1 ) |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
942 Log_err( "Syntax error in %s: %s", file, line ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
943 else if ( strcmp( "max-fetch", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
944 getInt( &config.maxFetch, 0, INT_MAX, p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
945 else if ( strcmp( "auto-unsubscribe-days", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
946 getInt( &config.autoUnsubscribe, -1, INT_MAX, p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
947 else if ( strcmp( "thread-follow-time", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
948 getInt( &config.threadFollowTime, 0, INT_MAX, p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
949 else if ( strcmp( "connect-timeout", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
950 getInt( &config.connectTimeout, 0, INT_MAX, p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
951 else if ( strcmp( "default-expire", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
952 getInt( &config.defaultExpire, 0, INT_MAX, p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
953 else if ( strcmp( "auto-subscribe", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
954 getBool( &config.autoSubscribe, p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
955 else if ( strcmp( "auto-unsubscribe", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
956 getBool( &config.autoUnsubscribe, p ); |
82 | 957 else if ( strcmp( "info-always-unread", name ) == 0 ) |
958 getBool( &config.infoAlways, p ); | |
357
b0ee77fa24d4
[svn] * src/post.c,src/configfile.c,src/configfile.h,docs/noffle.conf.5,
bears
parents:
290
diff
changeset
|
959 else if ( strcmp( "append-reply-to", name ) == 0 ) |
b0ee77fa24d4
[svn] * src/post.c,src/configfile.c,src/configfile.h,docs/noffle.conf.5,
bears
parents:
290
diff
changeset
|
960 getBool( &config.appendReplyTo, p); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
961 else if ( strcmp( "replace-messageid", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
962 getBool( &config.replaceMsgId, p ); |
195
76460d98b2fb
[svn] * noffle.conf.example,docs/noffle.conf.5,src/configfile.h,src/configfile.c,
bears
parents:
194
diff
changeset
|
963 else if ( strcmp( "hostname", name ) == 0 ) |
76460d98b2fb
[svn] * noffle.conf.example,docs/noffle.conf.5,src/configfile.h,src/configfile.c,
bears
parents:
194
diff
changeset
|
964 /* use line, do not change to lowercase */ |
76460d98b2fb
[svn] * noffle.conf.example,docs/noffle.conf.5,src/configfile.h,src/configfile.c,
bears
parents:
194
diff
changeset
|
965 getStr( config.hostnameMsgId, line ); |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
966 else if ( strcmp( "post-locally", name ) == 0 ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
967 getBool( &config.postLocal, p ); |
290
f35a7d45efd5
[svn] * docs/noffle.1,docs/noffle.conf.5: Correct footer date, add new RFCs,
bears
parents:
287
diff
changeset
|
968 #if USE_AUTH |
f35a7d45efd5
[svn] * docs/noffle.1,docs/noffle.conf.5: Correct footer date, add new RFCs,
bears
parents:
287
diff
changeset
|
969 /* |
f35a7d45efd5
[svn] * docs/noffle.1,docs/noffle.conf.5: Correct footer date, add new RFCs,
bears
parents:
287
diff
changeset
|
970 * Don't recognise this unless we have some sort of auth |
f35a7d45efd5
[svn] * docs/noffle.1,docs/noffle.conf.5: Correct footer date, add new RFCs,
bears
parents:
287
diff
changeset
|
971 * built in. A small sanity check on the config. |
f35a7d45efd5
[svn] * docs/noffle.1,docs/noffle.conf.5: Correct footer date, add new RFCs,
bears
parents:
287
diff
changeset
|
972 */ |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
973 else if ( strcmp( "authenticate-client", name ) == 0 ) |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
974 getBool( &config.clientAuth, p ); |
290
f35a7d45efd5
[svn] * docs/noffle.1,docs/noffle.conf.5: Correct footer date, add new RFCs,
bears
parents:
287
diff
changeset
|
975 #endif |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
976 else if ( strcmp( "default-auto-subscribe-mode", name ) == 0 ) |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
977 { |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
978 getStr( s, p ); |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
979 if ( ! isValidAutoSubscribeMode( s ) ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
980 { |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
981 logSyntaxErr( line ); |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
982 return; |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
983 } |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
984 else |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
985 Utl_cpyStr( config.defaultAutoSubscribeMode, s ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
986 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
987 else if ( strcmp( "mail-to", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
988 getStr( config.mailTo, p ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
989 else if ( strcmp( "expire", name ) == 0 ) |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
990 getExpire( p ); |
104
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
991 else if ( strcmp( "auto-subscribe-mode", name ) == 0 ) |
402300614185
[svn] Remove expire enum, add Cfg_expire(grp). Rename Cfg_autoSubscribeMode()
bears
parents:
88
diff
changeset
|
992 getAutoSubscribeMode( p ); |
185
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
993 else if ( strcmp( "log-debug", name ) == 0 ) |
fed1334d766b
[svn] * src/client.c: Change variable only used on constant to 'const'.
bears
parents:
150
diff
changeset
|
994 getDebugMask( p ); |
88
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
995 else if ( strcmp( "getgroups", name ) == 0 ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
996 getGroups( p, TRUE ); |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
997 else if ( strcmp( "omitgroups", name ) == 0 ) |
1fcdced0246e
[svn] Move posting code to post.c, add command line posting
bears
parents:
82
diff
changeset
|
998 getGroups( p, FALSE ); |
150
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
999 else if ( strcmp( "path-header", name ) == 0 ) |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
1000 getStr( config.pathHeader, p ); |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
1001 else if ( strcmp( "from-domain", name ) == 0 ) |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
1002 getStr( config.fromDomain, p ); |
128 | 1003 /* The following need line because they may have uppercase data */ |
150
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
1004 else if ( strcmp( "organization", name ) == 0 ) |
1c7303c71f66
[svn] * src/protocol.c: Fix bug in Prt_getLn if we should read a line
bears
parents:
134
diff
changeset
|
1005 getText( config.organization, line ); |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
1006 else if ( strcmp( "noffle-user", name ) == 0 ) |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
1007 getText( config.noffleUser, line ); |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
1008 else if ( strcmp( "noffle-group", name ) == 0 ) |
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
1009 getText( config.noffleUser, line ); |
128 | 1010 else if ( strcmp( "server", name ) == 0 ) |
1011 getServ( line ); | |
1012 else if ( strcmp( "filter", name ) == 0 ) | |
1013 getFilter( line ); | |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
1014 else |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
1015 Log_err( "Unknown config option: %s", name ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
1016 } |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
1017 fclose( f ); |
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
1018 if ( ! config.numServ ) |
287
01755687c565
[svn] * src/configfile.c: Change snprintf() to Utl_cpyStr();
bears
parents:
273
diff
changeset
|
1019 Log_fatal( "Config file contains no server" ); |
43
2842f50feb55
[svn] * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
uh1763
parents:
diff
changeset
|
1020 } |