ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/svn/ircd-hybrid/include/modules.h
Revision: 186
Committed: Sun Oct 23 16:05:01 2005 UTC (20 years, 9 months ago) by db
Content type: text/x-chdr
File size: 6910 byte(s)
Log Message:
- Q. When is an address not an address?
  A. When it is a handle!

  Keep track of handle address and base address of loaded module separately.
  The address is also used for modlist and could be derived in modlist
  from handle, but later.


File Contents

# User Rev Content
1 adx 30 /*
2     * ircd-hybrid: an advanced Internet Relay Chat Daemon(ircd).
3     * modules.h: A header for the modules functions.
4     *
5     * Copyright (C) 2002 by the past and present ircd coders, and others.
6     *
7     * This program is free software; you can redistribute it and/or modify
8     * it under the terms of the GNU General Public License as published by
9     * the Free Software Foundation; either version 2 of the License, or
10     * (at your option) any later version.
11     *
12     * This program is distributed in the hope that it will be useful,
13     * but WITHOUT ANY WARRANTY; without even the implied warranty of
14     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15     * GNU General Public License for more details.
16     *
17     * You should have received a copy of the GNU General Public License
18     * along with this program; if not, write to the Free Software
19     * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20     * USA
21     *
22 knight 31 * $Id$
23 adx 30 */
24    
25     #ifndef INCLUDED_modules_h
26     #define INCLUDED_modules_h
27    
28     #include "setup.h"
29     #include "parse.h"
30    
31     #ifdef HAVE_SHL_LOAD
32     #include <dl.h>
33     #endif
34     #if !defined(STATIC_MODULES) && defined(HAVE_DLFCN_H)
35     #include <dlfcn.h>
36     #endif
37    
38     #include "ircd_handler.h"
39     #include "msg.h"
40    
41     #ifndef STATIC_MODULES
42     struct module
43     {
44     dlink_node node;
45     char *name;
46     const char *version;
47 db 186 void *handle;
48 adx 30 void *address;
49     int core;
50     void (*modremove)(void);
51     };
52    
53     struct module_path
54     {
55     dlink_node node;
56     char path[PATH_MAX + 1];
57     };
58    
59     /* add a path */
60     extern void mod_add_path(const char *);
61     extern void mod_clear_paths(void);
62    
63     /* load all modules */
64     extern void load_all_modules(int);
65    
66     /* load core modules */
67     extern void load_core_modules(int);
68    
69     /* Add this module to list of modules to be loaded from conf */
70     extern void add_conf_module(const char *);
71     /* load all modules listed in conf */
72     extern void load_conf_modules(void);
73    
74     extern void _modinit(void);
75     extern void _moddeinit(void);
76    
77     extern int unload_one_module(char *, int);
78     extern int load_one_module(char *, int);
79     extern int load_a_module(char *, int, int);
80     extern dlink_node *findmodule_byname(const char *);
81     extern void modules_init(void);
82    
83     #else /* STATIC_MODULES */
84    
85     extern struct Message accept_msgtab;
86     extern struct Message admin_msgtab;
87     extern struct Message away_msgtab;
88     extern struct Message capab_msgtab;
89     extern struct Message cburst_msgtab;
90     #ifdef HAVE_LIBCRYPTO
91     extern struct Message challenge_msgtab;
92     extern struct Message cryptlink_msgtab;
93     #endif
94     extern struct Message cjoin_msgtab;
95     extern struct Message close_msgtab;
96     extern struct Message connect_msgtab;
97     extern struct Message die_msgtab;
98     extern struct Message drop_msgtab;
99     extern struct Message eob_msgtab;
100     extern struct Message error_msgtab;
101     extern struct Message etrace_msgtab;
102     extern struct Message gline_msgtab;
103     extern struct Message hash_msgtab;
104     extern struct Message ungline_msgtab;
105     extern struct Message info_msgtab;
106     extern struct Message invite_msgtab;
107     extern struct Message ison_msgtab;
108     extern struct Message join_msgtab;
109     extern struct Message kick_msgtab;
110     extern struct Message kill_msgtab;
111     extern struct Message kline_msgtab;
112     extern struct Message unkline_msgtab;
113     extern struct Message dline_msgtab;
114     extern struct Message undline_msgtab;
115     extern struct Message knock_msgtab;
116     extern struct Message knockll_msgtab;
117     extern struct Message links_msgtab;
118     extern struct Message list_msgtab;
119     extern struct Message lljoin_msgtab;
120     extern struct Message llnick_msgtab;
121     extern struct Message locops_msgtab;
122     extern struct Message lusers_msgtab;
123     extern struct Message privmsg_msgtab;
124     extern struct Message notice_msgtab;
125     extern struct Message map_msgtab;
126     extern struct Message mode_msgtab;
127     extern struct Message motd_msgtab;
128     extern struct Message names_msgtab;
129     extern struct Message nburst_msgtab;
130     extern struct Message nick_msgtab;
131     extern struct Message omotd_msgtab;
132     extern struct Message oper_msgtab;
133     extern struct Message operwall_msgtab;
134     extern struct Message part_msgtab;
135     extern struct Message pass_msgtab;
136     extern struct Message ping_msgtab;
137     extern struct Message pong_msgtab;
138     extern struct Message post_msgtab;
139     extern struct Message quit_msgtab;
140     extern struct Message rehash_msgtab;
141     extern struct Message restart_msgtab;
142     extern struct Message resv_msgtab;
143     extern struct Message rkline_msgtab;
144     extern struct Message rxline_msgtab;
145     extern struct Message server_msgtab;
146     extern struct Message set_msgtab;
147     extern struct Message sid_msgtab;
148     extern struct Message sjoin_msgtab;
149     extern struct Message squit_msgtab;
150     extern struct Message stats_msgtab;
151     extern struct Message svinfo_msgtab;
152     extern struct Message tb_msgtab;
153 michael 120 extern struct Message tburst_msgtab;
154 adx 30 extern struct Message testline_msgtab;
155     extern struct Message testgecos_msgtab;
156     extern struct Message testmask_msgtab;
157     extern struct Message time_msgtab;
158     extern struct Message topic_msgtab;
159     extern struct Message trace_msgtab;
160     extern struct Message uid_msgtab;
161     extern struct Message unresv_msgtab;
162     extern struct Message unxline_msgtab;
163     extern struct Message user_msgtab;
164     extern struct Message userhost_msgtab;
165     extern struct Message users_msgtab;
166     extern struct Message version_msgtab;
167     extern struct Message wallops_msgtab;
168     extern struct Message who_msgtab;
169     extern struct Message whois_msgtab;
170     extern struct Message whowas_msgtab;
171     extern struct Message xline_msgtab;
172     extern struct Message get_msgtab;
173     extern struct Message put_msgtab;
174     extern struct Message rxline_msgtab;
175     extern struct Message help_msgtab;
176     extern struct Message uhelp_msgtab;
177    
178     #ifdef BUILD_CONTRIB
179     extern struct Message botserv_msgtab;
180     extern struct Message capture_msgtab;
181     extern struct Message chanserv_msgtab;
182     extern struct Message chghost_msgtab;
183     extern struct Message chgident_msgtab;
184     extern struct Message chgname_msgtab;
185     extern struct Message classlist_msgtab;
186     extern struct Message clearchan_msgtab;
187     extern struct Message cs_msgtab;
188     extern struct Message ctrace_msgtab;
189     extern struct Message delspoof_msgtab;
190     extern struct Message flags_msgtab;
191     extern struct Message forcejoin_msgtab;
192     extern struct Message forcepart_msgtab;
193     extern struct Message global_msgtab;
194     extern struct Message helpserv_msgtab;
195     extern struct Message hostserv_msgtab;
196     extern struct Message identify_msgtab;
197     extern struct Message jupe_msgtab;
198     extern struct Message killhost_msgtab;
199     extern struct Message ltrace_msgtab;
200     extern struct Message memoserv_msgtab;
201     extern struct Message mkpasswd_msgtab;
202     extern struct Message ms_msgtab;
203     extern struct Message nickserv_msgtab;
204     extern struct Message ns_msgtab;
205     extern struct Message ojoin_msgtab;
206     extern struct Message operserv_msgtab;
207     extern struct Message operspy_msgtab;
208     extern struct Message opme_msgtab;
209     extern struct Message os_msgtab;
210     extern struct Message seenserv_msgtab;
211     extern struct Message spoof_msgtab;
212     extern struct Message statserv_msgtab;
213     extern struct Message svsnick_msgtab;
214     extern struct Message uncapture_msgtab;
215     #endif
216    
217     extern void load_all_modules(int);
218    
219     #endif /* STATIC_MODULES */
220     #endif /* INCLUDED_modules_h */

Properties

Name Value
svn:eol-style native
svn:keywords Id Revision