1 // Module initialization hub
3 // Copyright (c) 1987-2023 by the citadel.org team
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.
8 // To add new modules to the server:
9 // 1. Write the module and place it in a server/modules/[module_name]/ directory
10 // 2. Add its initialization function to server/modules_init.h
11 // 3. Call its initialization function from server/modules_init.c
17 #include "modules_init.h"
19 // Module initialization functions will be called TWICE during startup, once before
20 // the server has gone into multithreading mode, and once afterwards. Most modules
21 // can be initialized while in multithreading mode, but your module code should be
22 // prepared for this kind of initialization. Look at the existing modules to see what
26 void initialize_modules(int is_threading) {
27 threading = is_threading;
28 syslog(LOG_DEBUG, "extensions: begin initializing modules (threading=%d)", threading);
29 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_control());
30 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_euidindex());
31 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_msgbase());
32 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_autocompletion());
33 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_bio());
34 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_blog());
35 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_calendar());
36 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_checkpoint());
37 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_virus());
38 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_file_ops());
39 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_ctdl_message());
40 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_rooms());
41 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_serv_session());
42 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_syscmd());
43 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_serv_user());
44 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_expire());
45 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_fulltext());
46 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_image());
47 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_imap());
48 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_sieve());
49 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_inetcfg());
50 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_instmsg());
51 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_listdeliver());
52 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_listsub());
53 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_nntp());
54 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_notes());
55 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_pop3());
56 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_pop3client());
57 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_roomchat());
58 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_rssclient());
59 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_rwho());
60 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_smtp());
61 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_smtpclient());
62 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_spam());
63 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_test());
64 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_upgrade());
65 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_vcard());
66 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_wiki());
67 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_xmpp());
68 syslog(LOG_DEBUG, "extensions: init %s", ctdl_module_init_netconfig());
69 syslog(LOG_DEBUG, "extensions: finished initializing modules (threading=%d)", threading);