This is an omnibus commit which moves the Citadel Server from crusty old GNU Autotool...
[citadel.git] / citadel / server / modules_init.c
1 // Module initialization hub
2 //
3 // Copyright (c) 1987-2022 by the citadel.org team
4 //
5 // This program is open source software.  Use, duplication, or disclosure
6 // is subject to the terms of the GNU General Public License, version 3.
7 // The program is distributed without any warranty, expressed or implied.
8 //
9 // To add new modules to the server:
10 // 1. Write the module and place it in a server/modules/[module_name]/ directory
11 // 2. Add its initialization function to server/modules_init.h
12 // 3. Call its initialization function from server/modules_init.c
13
14 #include <stdlib.h>
15 #include <unistd.h>
16 #include <syslog.h>
17 #include <stdio.h>
18 #include "modules_init.h"
19
20 // Module initialization functions will be called TWICE during startup, once before
21 // the server has gone into multithreading mode, and once afterwards.  Most modules
22 // can be initialized while in multithreading mode, but your module code should be
23 // prepared for this kind of initialization.  Look at the existing modules to see what
24 // goes on there.
25 int threading = 0;
26
27 void initialize_modules(int is_threading) {
28         threading = is_threading;
29         syslog(LOG_DEBUG, "modules: begin initializing modules (threading=%d)", threading);
30         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_control());
31         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_euidindex());
32         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_msgbase());
33         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_database());
34         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_autocompletion());
35         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_bio());
36         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_blog());
37         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_calendar());
38         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_checkpoint());
39         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_virus());
40         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_file_ops());
41         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_ctdl_message());
42         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_rooms());
43         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_serv_session());
44         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_syscmd());
45         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_serv_user());
46         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_expire());
47         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_fulltext());
48         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_image());
49         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_imap());
50         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_sieve());
51         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_inetcfg());
52         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_instmsg());
53         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_listdeliver());
54         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_listsub());
55         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_migrate());
56         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_newuser());
57         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_nntp());
58         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_notes());
59         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_openid_rp());
60         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_pop3());
61         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_pop3client());
62         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_roomchat());
63         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_rssclient());
64         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_rwho());
65         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_smtp());
66         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_smtpclient());
67         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_spam());
68         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_test());
69         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_upgrade());
70         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_vcard());
71         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_wiki());
72         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_xmpp());
73         syslog(LOG_DEBUG, "modules: init %s", ctdl_module_init_netconfig());
74         syslog(LOG_DEBUG, "modules: finished initializing modules (threading=%d)", threading);
75 }