version 0.3.29
[fms.git] / src / optionssetup.cpp
1 #include "../include/optionssetup.h"\r
2 #include "../include/db/sqlite3db.h"\r
3 #include "../include/global.h"\r
4 \r
5 #include <Poco/Message.h>\r
6 \r
7 #include <string>\r
8 #include <sstream>\r
9 \r
10 void SetupDefaultOptions(SQLite3DB::DB *db)\r
11 {\r
12         // OptionValue should always be inserted as a string, even if the option really isn't a string - just to keep the field data type consistent\r
13 \r
14         db->Execute("BEGIN;");\r
15 \r
16         std::ostringstream tempstr;     // must set tempstr to "" between db inserts\r
17         SQLite3DB::Statement st=db->Prepare("INSERT INTO tblOption(Option,OptionValue) VALUES(?,?);");\r
18         SQLite3DB::Statement upd=db->Prepare("UPDATE tblOption SET Section=?, SortOrder=?, ValidValues=?, OptionDescription=?, DisplayType=?, DisplayParam1=?, DisplayParam2=?, Mode=? WHERE Option=?;");\r
19         int order=0;\r
20 \r
21         // LogLevel\r
22         tempstr.str("");\r
23         tempstr << Poco::Message::PRIO_DEBUG;\r
24         st.Bind(0,"LogLevel");\r
25         st.Bind(1,tempstr.str());\r
26         st.Step();\r
27         st.Reset();\r
28         upd.Bind(0,"Program");\r
29         upd.Bind(1,order++);\r
30         upd.Bind(2,"1|1 - Fatal Errors|2|2 - Critical Errors|3|3 - Errors|4|4 - Warnings|5|5 - Notices|6|6 - Informational Messages|7|7 - Debug Messages|8|8 - Trace Messages");\r
31         upd.Bind(3,"The maximum logging level that will be written to file.  Higher levels will include all messages from the previous levels.");\r
32         upd.Bind(4,"select");\r
33         upd.Bind(5);\r
34         upd.Bind(6);\r
35         upd.Bind(7,"simple");\r
36         upd.Bind(8,"LogLevel");\r
37         upd.Step();\r
38         upd.Reset();\r
39 \r
40         st.Bind(0,"VacuumOnStartup");\r
41         st.Bind(1,"false");\r
42         st.Step();\r
43         st.Reset();\r
44         upd.Bind(0,"Program");\r
45         upd.Bind(1,order++);\r
46         upd.Bind(2,"true|true|false|false");\r
47         upd.Bind(3,"VACUUM the database every time FMS starts.  This will defragment the free space in the database and create a smaller database file.  Vacuuming the database can be CPU and disk intensive.");\r
48         upd.Bind(4,"select");\r
49         upd.Bind(5);\r
50         upd.Bind(6);\r
51         upd.Bind(7,"simple");\r
52         upd.Bind(8,"VacuumOnStartup");\r
53         upd.Step();\r
54         upd.Reset();\r
55 \r
56         st.Bind(0,"MessageBase");\r
57         st.Bind(1,"fms");\r
58         st.Step();\r
59         st.Reset();\r
60         upd.Bind(0,"Program");\r
61         upd.Bind(1,order++);\r
62         upd.Bind(2);\r
63         upd.Bind(3,"A unique string shared by all clients who want to communicate with each other.  This should not be changed unless you want to create your own separate communications network.");\r
64         upd.Bind(4,"textbox");\r
65         upd.Bind(5);\r
66         upd.Bind(6);\r
67         upd.Bind(7,"advanced");\r
68         upd.Bind(8,"MessageBase");\r
69         upd.Step();\r
70         upd.Reset();\r
71 \r
72         st.Bind(0,"FMSVersionKey");\r
73         st.Bind(1,"USK@0npnMrqZNKRCRoGojZV93UNHCMN-6UU3rRSAmP6jNLE,~BG-edFtdCC1cSH4O3BWdeIYa8Sw5DfyrSV-TKdO5ec,AQACAAE/fmsversion/");\r
74         st.Step();\r
75         st.Reset();\r
76         upd.Bind(0,"Program");\r
77         upd.Bind(1,order++);\r
78         upd.Bind(2);\r
79         upd.Bind(3,"The USK key which contains information about the latest version of FMS.");\r
80         upd.Bind(4,"textbox");\r
81         upd.Bind(5,"80");\r
82         upd.Bind(6);\r
83         upd.Bind(7,"advanced");\r
84         upd.Bind(8,"FMSVersionKey");\r
85         upd.Step();\r
86         upd.Reset();\r
87 \r
88         st.Bind(0,"FMSVersionEdition");\r
89         st.Bind(1,FMS_VERSION_EDITION);\r
90         st.Step();\r
91         st.Reset();\r
92         upd.Bind(0,"Program");\r
93         upd.Bind(1,order++);\r
94         upd.Bind(2);\r
95         upd.Bind(3,"The latest found edition of the FMS version USK.");\r
96         upd.Bind(4,"textbox");\r
97         upd.Bind(5);\r
98         upd.Bind(6);\r
99         upd.Bind(7,"advanced");\r
100         upd.Bind(8,"FMSVersionEdition");\r
101         upd.Step();\r
102         upd.Reset();\r
103 \r
104         // StartNNTP\r
105         st.Bind(0,"StartNNTP");\r
106         st.Bind(1,"true");\r
107         st.Step();\r
108         st.Reset();\r
109         upd.Bind(0,"NNTP Server");\r
110         upd.Bind(1,order++);\r
111         upd.Bind(2,"true|true|false|false");\r
112         upd.Bind(3,"Start NNTP server.");\r
113         upd.Bind(4,"select");\r
114         upd.Bind(5);\r
115         upd.Bind(6);\r
116         upd.Bind(7,"simple");\r
117         upd.Bind(8,"StartNNTP");\r
118         upd.Step();\r
119         upd.Reset();\r
120 \r
121         // NNTPListenPort\r
122         st.Bind(0,"NNTPListenPort");\r
123         st.Bind(1,"1119");\r
124         st.Step();\r
125         st.Reset();\r
126         upd.Bind(0,"NNTP Server");\r
127         upd.Bind(1,order++);\r
128         upd.Bind(2);\r
129         upd.Bind(3,"The port that the NNTP service will listen for incoming connections.");\r
130         upd.Bind(4,"textbox");\r
131         upd.Bind(5);\r
132         upd.Bind(6);\r
133         upd.Bind(7,"simple");\r
134         upd.Bind(8,"NNTPListenPort");\r
135         upd.Step();\r
136         upd.Reset();\r
137 \r
138         // NNTPBindAddresses\r
139         st.Bind(0,"NNTPBindAddresses");\r
140         st.Bind(1,"localhost,127.0.0.1");\r
141         st.Step();\r
142         st.Reset();\r
143         upd.Bind(0,"NNTP Server");\r
144         upd.Bind(1,order++);\r
145         upd.Bind(2);\r
146         upd.Bind(3,"A comma separated list of valid IPv4 or IPv6 addresses/hostnames that the NNTP service will try to bind to.");\r
147         upd.Bind(4,"textbox");\r
148         upd.Bind(5);\r
149         upd.Bind(6);\r
150         upd.Bind(7,"simple");\r
151         upd.Bind(8,"NNTPBindAddresses");\r
152         upd.Step();\r
153         upd.Reset();\r
154 \r
155         st.Bind(0,"NNTPAllowPost");\r
156         st.Bind(1,"true");\r
157         st.Step();\r
158         st.Reset();\r
159         upd.Bind(0,"NNTP Server");\r
160         upd.Bind(1,order++);\r
161         upd.Bind(2,"true|true|false|false");\r
162         upd.Bind(3,"Allow posting messages from NNTP.  Setting to false will make the newsgroups read only.");\r
163         upd.Bind(4,"select");\r
164         upd.Bind(5);\r
165         upd.Bind(6);\r
166         upd.Bind(7,"simple");\r
167         upd.Bind(8,"NNTPAllowPost");\r
168         upd.Step();\r
169         upd.Reset();\r
170 \r
171         st.Bind(0,"StartHTTP");\r
172         st.Bind(1,"true");\r
173         st.Step();\r
174         st.Reset();\r
175         upd.Bind(0,"HTTP Server");\r
176         upd.Bind(1,order++);\r
177         upd.Bind(2,"true|true|false|false");\r
178         upd.Bind(3,"Start HTTP server.  WARNING: If you turn this off, you won't be able to access the administration pages.");\r
179         upd.Bind(4,"select");\r
180         upd.Bind(5);\r
181         upd.Bind(6);\r
182         upd.Bind(7,"simple");\r
183         upd.Bind(8,"StartHTTP");\r
184         upd.Step();\r
185         upd.Reset();\r
186 \r
187         st.Bind(0,"HTTPListenPort");\r
188         st.Bind(1,"8080");\r
189         st.Step();\r
190         st.Reset();\r
191         upd.Bind(0,"HTTP Server");\r
192         upd.Bind(1,order++);\r
193         upd.Bind(2);\r
194         upd.Bind(3,"Port HTTP server will listen on.");\r
195         upd.Bind(4,"textbox");\r
196         upd.Bind(5);\r
197         upd.Bind(6);\r
198         upd.Bind(7,"simple");\r
199         upd.Bind(8,"HTTPListenPort");\r
200         upd.Step();\r
201         upd.Reset();\r
202 \r
203         st.Bind(0,"HTTPAccessControl");\r
204         st.Bind(1,"-0.0.0.0/0,+127.0.0.1");\r
205         st.Step();\r
206         st.Reset();\r
207         upd.Bind(0,"HTTP Server");\r
208         upd.Bind(1,order++);\r
209         upd.Bind(2);\r
210         upd.Bind(3,"Comma separated list of addresses and/or subnet masks that are allowed access to the administration pages.  Default is localhost only. + allows a host, - denies a host.");\r
211         upd.Bind(4,"textbox");\r
212         upd.Bind(5);\r
213         upd.Bind(6);\r
214         upd.Bind(7,"simple");\r
215         upd.Bind(8,"HTTPAccessControl");\r
216         upd.Step();\r
217         upd.Reset();\r
218 \r
219         // StartFreenetUpdater\r
220         st.Bind(0,"StartFreenetUpdater");\r
221         st.Bind(1,"true");\r
222         st.Step();\r
223         st.Reset();\r
224         upd.Bind(0,"Freenet Connection");\r
225         upd.Bind(1,order++);\r
226         upd.Bind(2,"true|true|false|false");\r
227         upd.Bind(3,"Set to true to start the Freenet Updater thread and connect to Freenet.  Set to false to prevent communication with Freenet.");\r
228         upd.Bind(4,"select");\r
229         upd.Bind(5);\r
230         upd.Bind(6);\r
231         upd.Bind(7,"simple");\r
232         upd.Bind(8,"StartFreenetUpdater");\r
233         upd.Step();\r
234         upd.Reset();\r
235 \r
236         // FCPHost\r
237         st.Bind(0,"FCPHost");\r
238         st.Bind(1,"127.0.0.1");\r
239         st.Step();\r
240         st.Reset();\r
241         upd.Bind(0,"Freenet Connection");\r
242         upd.Bind(1,order++);\r
243         upd.Bind(2);\r
244         upd.Bind(3,"Host name or address of Freenet node.");\r
245         upd.Bind(4,"textbox");\r
246         upd.Bind(5);\r
247         upd.Bind(6);\r
248         upd.Bind(7,"simple");\r
249         upd.Bind(8,"FCPHost");\r
250         upd.Step();\r
251         upd.Reset();\r
252 \r
253         // FCPPort\r
254         st.Bind(0,"FCPPort");\r
255         st.Bind(1,"9481");\r
256         st.Step();\r
257         st.Reset();\r
258         upd.Bind(0,"Freenet Connection");\r
259         upd.Bind(1,order++);\r
260         upd.Bind(2);\r
261         upd.Bind(3,"The port that Freenet is listening for FCP connections on.");\r
262         upd.Bind(4,"textbox");\r
263         upd.Bind(5);\r
264         upd.Bind(6);\r
265         upd.Bind(7,"simple");\r
266         upd.Bind(8,"FCPPort");\r
267         upd.Step();\r
268         upd.Reset();\r
269 \r
270         st.Bind(0,"FProxyPort");\r
271         st.Bind(1,"8888");\r
272         st.Step();\r
273         st.Reset();\r
274         upd.Bind(0,"Freenet Connection");\r
275         upd.Bind(1,order++);\r
276         upd.Bind(2);\r
277         upd.Bind(3,"The port that Freenet is listening for http connections on.");\r
278         upd.Bind(4,"textbox");\r
279         upd.Bind(5);\r
280         upd.Bind(6);\r
281         upd.Bind(7,"simple");\r
282         upd.Bind(8,"FProxyPort");\r
283         upd.Step();\r
284         upd.Reset();\r
285 \r
286         st.Bind(0,"MaxIdentityRequests");\r
287         st.Bind(1,"5");\r
288         st.Step();\r
289         st.Reset();\r
290         upd.Bind(0,"Requests");\r
291         upd.Bind(1,order++);\r
292         upd.Bind(2);\r
293         upd.Bind(3,"Maximum number of concurrent requests for new Identity xml files");\r
294         upd.Bind(4,"textbox");\r
295         upd.Bind(5);\r
296         upd.Bind(6);\r
297         upd.Bind(7,"advanced");\r
298         upd.Bind(8,"MaxIdentityRequests");\r
299         upd.Step();\r
300         upd.Reset();\r
301 \r
302         st.Bind(0,"MaxIdentityIntroductionRequests");\r
303         st.Bind(1,"5");\r
304         st.Step();\r
305         st.Reset();\r
306         upd.Bind(0,"Requests");\r
307         upd.Bind(1,order++);\r
308         upd.Bind(2);\r
309         upd.Bind(3,"Maximum number of concurrent identities requesting IdentityIntroduction xml files.  Each identity may have multiple requests pending.");\r
310         upd.Bind(4,"textbox");\r
311         upd.Bind(5);\r
312         upd.Bind(6);\r
313         upd.Bind(7,"advanced");\r
314         upd.Bind(8,"MaxIdentityIntroductionRequests");\r
315         upd.Step();\r
316         upd.Reset();\r
317 \r
318         st.Bind(0,"MaxIntroductionPuzzleRequests");\r
319         st.Bind(1,"5");\r
320         st.Step();\r
321         st.Reset();\r
322         upd.Bind(0,"Requests");\r
323         upd.Bind(1,order++);\r
324         upd.Bind(2);\r
325         upd.Bind(3,"Maximum number of concurrent requests for new IntroductionPuzzle xml files");\r
326         upd.Bind(4,"textbox");\r
327         upd.Bind(5);\r
328         upd.Bind(6);\r
329         upd.Bind(7,"advanced");\r
330         upd.Bind(8,"MaxIntroductionPuzzleRequests");\r
331         upd.Step();\r
332         upd.Reset();\r
333 \r
334         st.Bind(0,"MaxTrustListRequests");\r
335         st.Bind(1,"5");\r
336         st.Step();\r
337         st.Reset();\r
338         upd.Bind(0,"Requests");\r
339         upd.Bind(1,order++);\r
340         upd.Bind(2);\r
341         upd.Bind(3,"Maximum number of concurrent requests for new Trust Lists");\r
342         upd.Bind(4,"textbox");\r
343         upd.Bind(5);\r
344         upd.Bind(6);\r
345         upd.Bind(7,"advanced");\r
346         upd.Bind(8,"MaxTrustListRequests");\r
347         upd.Step();\r
348         upd.Reset();\r
349 \r
350         st.Bind(0,"MaxMessageListRequests");\r
351         st.Bind(1,"5");\r
352         st.Step();\r
353         st.Reset();\r
354         upd.Bind(0,"Requests");\r
355         upd.Bind(1,order++);\r
356         upd.Bind(2);\r
357         upd.Bind(3,"Maximum number of concurrent requests for new Message Lists");\r
358         upd.Bind(4,"textbox");\r
359         upd.Bind(5);\r
360         upd.Bind(6);\r
361         upd.Bind(7,"advanced");\r
362         upd.Bind(8,"MaxMessageListRequests");\r
363         upd.Step();\r
364         upd.Reset();\r
365 \r
366         st.Bind(0,"MaxMessageRequests");\r
367         st.Bind(1,"20");\r
368         st.Step();\r
369         st.Reset();\r
370         upd.Bind(0,"Requests");\r
371         upd.Bind(1,order++);\r
372         upd.Bind(2);\r
373         upd.Bind(3,"Maximum number of concurrent requests for new Messages");\r
374         upd.Bind(4,"textbox");\r
375         upd.Bind(5);\r
376         upd.Bind(6);\r
377         upd.Bind(7,"advanced");\r
378         upd.Bind(8,"MaxMessageRequests");\r
379         upd.Step();\r
380         upd.Reset();\r
381 \r
382         st.Bind(0,"MaxBoardListRequests");\r
383         st.Bind(1,"5");\r
384         st.Step();\r
385         st.Reset();\r
386         upd.Bind(0,"Requests");\r
387         upd.Bind(1,order++);\r
388         upd.Bind(2);\r
389         upd.Bind(3,"The maximum number of concurrent requests for new Board Lists.  Set to 0 to disable.");\r
390         upd.Bind(4,"textbox");\r
391         upd.Bind(5);\r
392         upd.Bind(6);\r
393         upd.Bind(7,"advanced");\r
394         upd.Bind(8,"MaxBoardListRequests");\r
395         upd.Step();\r
396         upd.Reset();\r
397 \r
398         st.Bind(0,"MinLocalMessageTrust");\r
399         st.Bind(1,"50");\r
400         st.Step();\r
401         st.Reset();\r
402         upd.Bind(0,"Trust");\r
403         upd.Bind(1,order++);\r
404         upd.Bind(2);\r
405         upd.Bind(3,"Specifies a local message trust level that a peer must have before its messages will be downloaded.");\r
406         upd.Bind(4,"textbox");\r
407         upd.Bind(5);\r
408         upd.Bind(6);\r
409         upd.Bind(7,"simple");\r
410         upd.Bind(8,"MinLocalMessageTrust");\r
411         upd.Step();\r
412         upd.Reset();\r
413 \r
414         st.Bind(0,"MinPeerMessageTrust");\r
415         st.Bind(1,"30");\r
416         st.Step();\r
417         st.Reset();\r
418         upd.Bind(0,"Trust");\r
419         upd.Bind(1,order++);\r
420         upd.Bind(2);\r
421         upd.Bind(3,"Specifies a peer message trust level that a peer must have before its messages will be downloaded.");\r
422         upd.Bind(4,"textbox");\r
423         upd.Bind(5);\r
424         upd.Bind(6);\r
425         upd.Bind(7,"simple");\r
426         upd.Bind(8,"MinPeerMessageTrust");\r
427         upd.Step();\r
428         upd.Reset();\r
429 \r
430         st.Bind(0,"MinLocalTrustListTrust");\r
431         st.Bind(1,"50");\r
432         st.Step();\r
433         st.Reset();\r
434         upd.Bind(0,"Trust");\r
435         upd.Bind(1,order++);\r
436         upd.Bind(2);\r
437         upd.Bind(3,"Specifies a local trust list trust level that a peer must have before its trust list will be included in the weighted average.  Any peers below this number will be excluded from the results.");\r
438         upd.Bind(4,"textbox");\r
439         upd.Bind(5);\r
440         upd.Bind(6);\r
441         upd.Bind(7,"simple");\r
442         upd.Bind(8,"MinLocalTrustListTrust");\r
443         upd.Step();\r
444         upd.Reset();\r
445 \r
446         st.Bind(0,"MinPeerTrustListTrust");\r
447         st.Bind(1,"30");\r
448         st.Step();\r
449         st.Reset();\r
450         upd.Bind(0,"Trust");\r
451         upd.Bind(1,order++);\r
452         upd.Bind(2);\r
453         upd.Bind(3,"Specifies a peer trust list trust level that a peer must have before its trust list will be included in the weighted average.  Any peers below this number will be excluded from the results.");\r
454         upd.Bind(4,"textbox");\r
455         upd.Bind(5);\r
456         upd.Bind(6);\r
457         upd.Bind(7,"simple");\r
458         upd.Bind(8,"MinPeerTrustListTrust");\r
459         upd.Step();\r
460         upd.Reset();\r
461 \r
462         st.Bind(0,"LocalTrustOverridesPeerTrust");\r
463         st.Bind(1,"false");\r
464         st.Step();\r
465         st.Reset();\r
466         upd.Bind(0,"Trust");\r
467         upd.Bind(1,order++);\r
468         upd.Bind(2,"true|true|false|false");\r
469         upd.Bind(3,"Set to true if you want your local trust levels to override the peer levels when determining which identities you will poll.");\r
470         upd.Bind(4,"select");\r
471         upd.Bind(5);\r
472         upd.Bind(6);\r
473         upd.Bind(7,"simple");\r
474         upd.Bind(8,"LocalTrustOverridesPeerTrust");\r
475         upd.Step();\r
476         upd.Reset();\r
477 \r
478         st.Bind(0,"MessageDownloadMaxDaysBackward");\r
479         st.Bind(1,"5");\r
480         st.Step();\r
481         st.Reset();\r
482         upd.Bind(0,"Messages");\r
483         upd.Bind(1,order++);\r
484         upd.Bind(2);\r
485         upd.Bind(3,"The maximum number of days backward that messages will be downloaded from each identity");\r
486         upd.Bind(4,"textbox");\r
487         upd.Bind(5);\r
488         upd.Bind(6);\r
489         upd.Bind(7,"simple");\r
490         upd.Bind(8,"MessageDownloadMaxDaysBackward");\r
491         upd.Step();\r
492         upd.Reset();\r
493 \r
494         st.Bind(0,"MessageListDaysBackward");\r
495         st.Bind(1,"5");\r
496         st.Step();\r
497         st.Reset();\r
498         upd.Bind(0,"Messages");\r
499         upd.Bind(1,order++);\r
500         upd.Bind(2);\r
501         upd.Bind(3,"The number of days backward that messages you have inserted will appear in your MessageLists");\r
502         upd.Bind(4,"textbox");\r
503         upd.Bind(5);\r
504         upd.Bind(6);\r
505         upd.Bind(7,"simple");\r
506         upd.Bind(8,"MessageListDaysBackward");\r
507         upd.Step();\r
508         upd.Reset();\r
509 \r
510         st.Bind(0,"MaxPeerMessagesPerDay");\r
511         st.Bind(1,"200");\r
512         st.Step();\r
513         st.Reset();\r
514         upd.Bind(0,"Messages");\r
515         upd.Bind(1,order++);\r
516         upd.Bind(2);\r
517         upd.Bind(3,"The maximum number of messages you will download from each peer on a given day.");\r
518         upd.Bind(4,"textbox");\r
519         upd.Bind(5);\r
520         upd.Bind(6);\r
521         upd.Bind(7,"simple");\r
522         upd.Bind(8,"MaxPeerMessagesPerDay");\r
523         upd.Step();\r
524         upd.Reset();\r
525 \r
526         st.Bind(0,"MaxBoardsPerMessage");\r
527         st.Bind(1,"8");\r
528         st.Step();\r
529         st.Reset();\r
530         upd.Bind(0,"Messages");\r
531         upd.Bind(1,order++);\r
532         upd.Bind(2);\r
533         upd.Bind(3,"The maximum number of boards a received message may be sent to.  Boards over this limit will be ignored.");\r
534         upd.Bind(4,"textbox");\r
535         upd.Bind(5);\r
536         upd.Bind(6);\r
537         upd.Bind(7,"simple");\r
538         upd.Bind(8,"MaxBoardsPerMessage");\r
539         upd.Step();\r
540         upd.Reset();\r
541 \r
542         st.Bind(0,"SaveMessagesFromNewBoards");\r
543         st.Bind(1,"true");\r
544         st.Step();\r
545         st.Reset();\r
546         upd.Bind(0,"Messages");\r
547         upd.Bind(1,order++);\r
548         upd.Bind(2,"true|true|false|false");\r
549         upd.Bind(3,"Set to true to automatically save messages posted to new boards.  Set to false to ignore messages to new boards.");\r
550         upd.Bind(4,"select");\r
551         upd.Bind(5);\r
552         upd.Bind(6);\r
553         upd.Bind(7,"simple");\r
554         upd.Bind(8,"SaveMessagesFromNewBoards");\r
555         upd.Step();\r
556         upd.Reset();\r
557 \r
558         st.Bind(0,"ChangeMessageTrustOnReply");\r
559         st.Bind(1,"0");\r
560         st.Step();\r
561         st.Reset();\r
562         upd.Bind(0,"Messages");\r
563         upd.Bind(1,order++);\r
564         upd.Bind(2);\r
565         upd.Bind(3,"How much the local message trust level of an identity should change when you reply to one of their messages.");\r
566         upd.Bind(4,"textbox");\r
567         upd.Bind(5);\r
568         upd.Bind(6);\r
569         upd.Bind(7,"simple");\r
570         upd.Bind(8,"ChangeMessageTrustOnReply");\r
571         upd.Step();\r
572         upd.Reset();\r
573 \r
574         st.Bind(0,"AddNewPostFromIdentities");\r
575         st.Bind(1,"false");\r
576         st.Step();\r
577         st.Reset();\r
578         upd.Bind(0,"Messages");\r
579         upd.Bind(1,order++);\r
580         upd.Bind(2,"true|true|false|false");\r
581         upd.Bind(3,"Set to true to automatically create new identities when you send a message using a new name.  If you set this to false, posting messages will fail until you manually create the identity.");\r
582         upd.Bind(4,"select");\r
583         upd.Bind(5);\r
584         upd.Bind(6);\r
585         upd.Bind(7,"simple");\r
586         upd.Bind(8,"AddNewPostFromIdentities");\r
587         upd.Step();\r
588         upd.Reset();\r
589 \r
590         st.Bind(0,"DeleteMessagesOlderThan");\r
591         st.Bind(1,"180");\r
592         st.Step();\r
593         st.Reset();\r
594         upd.Bind(0,"Messages");\r
595         upd.Bind(1,order++);\r
596         upd.Bind(2);\r
597         upd.Bind(3,"Automatically delete messages older than this many days.");\r
598         upd.Bind(4,"textbox");\r
599         upd.Bind(5);\r
600         upd.Bind(6);\r
601         upd.Bind(7,"simple");\r
602         upd.Bind(8,"DeleteMessagesOlderThan");\r
603         upd.Step();\r
604         upd.Reset();\r
605 \r
606         db->Execute("COMMIT;");\r
607 \r
608 }\r