ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/ermyth/src/global.C
Revision: 1.6
Committed: Sun Sep 16 18:54:45 2007 UTC (16 years, 10 months ago) by pippijn
Content type: text/plain
Branch: MAIN
Changes since 1.5: +5 -5 lines
Log Message:
#defines to enum

File Contents

# User Rev Content
1 pippijn 1.6 /**
2     * global.C: global objects
3 pippijn 1.1 *
4 pippijn 1.6 * Copyright © 2007 Pippijn van Steenhoven / The Ermyth Team
5     * Rights to this code are as documented in COPYING.
6 pippijn 1.1 */
7    
8 pippijn 1.6 static char const rcsid[] = "$Id: global.C,v 1.5 2007-08-29 21:01:18 pippijn Exp $";
9 pippijn 1.1
10     #include "atheme.h"
11 pippijn 1.4 #include <ermyth/crypto.h>
12     #include <ermyth/database.h>
13 pippijn 1.1 #include "uplink.h"
14     #include "internal.h"
15     #include "datastream.h"
16     #include "authcookie.h"
17    
18 pippijn 1.4 protocol::handler *phandler;
19     database::handler *backend;
20     crypto::handler *crypter;
21    
22 pippijn 1.5 garbage_collector gc;
23    
24 pippijn 1.1 chansvs_t chansvs;
25     globsvs_t globsvs;
26     opersvs_t opersvs;
27     memosvs_t memosvs;
28     nicksvs_t nicksvs;
29     saslsvs_t saslsvs;
30     gamesvs_t gamesvs;
31    
32     me_t me;
33 pippijn 1.4 cnt_t cnt;
34 pippijn 1.1
35     /* XXX */
36 pippijn 1.4 conf_option_t config_options;
37     database_t database_options;
38     system_state_t system_state;
39 pippijn 1.1 int runflags;
40    
41     char *config_file;
42     char *log_path;
43     bool cold_start = false;
44 pippijn 1.4 bool database::handler::loaded = false;
45 pippijn 1.1
46 pippijn 1.4 void
47     me_t::init ()
48     {
49     if (netname)
50     sfree (netname);
51     if (hidehostsuffix)
52     sfree (hidehostsuffix);
53     if (adminname)
54     sfree (adminname);
55     if (adminemail)
56     sfree (adminemail);
57     if (mta)
58     sfree (mta);
59    
60     netname
61     = hidehostsuffix
62     = adminname
63     = adminemail
64     = mta
65     = NULL;
66    
67     recontime
68     = restarttime
69     = maxlogins
70     = maxusers
71     = maxnicks
72     = maxchans
73     = emaillimit
74     = emailtime
75     = 0;
76     }
77 pippijn 1.1
78 pippijn 1.4 void
79     me_t::fini ()
80     {
81     sfree (netname);
82     sfree (hidehostsuffix);
83     sfree (adminname);
84     sfree (adminemail);
85     if (mta != NULL)
86     sfree (mta);
87     }
88 pippijn 1.1
89     me_t &
90     me_t::operator = (const me_t &rhs)
91     {
92     recontime = rhs.recontime;
93     restarttime = rhs.restarttime;
94     netname = sstrdup (rhs.netname);
95     hidehostsuffix = sstrdup (rhs.hidehostsuffix);
96     adminname = sstrdup (rhs.adminname);
97     adminemail = sstrdup (rhs.adminemail);
98     mta = rhs.mta ? sstrdup (rhs.mta) : NULL;
99     maxlogins = rhs.maxlogins;
100     maxusers = rhs.maxusers;
101     maxnicks = rhs.maxnicks;
102     maxchans = rhs.maxchans;
103     emaillimit = rhs.emaillimit;
104     emailtime = rhs.emailtime;
105     auth = rhs.auth;
106    
107     return *this;
108     }
109    
110 pippijn 1.4 static void noop_delete (void *) throw (balloc_exception) __attribute__ ((__noreturn__));
111     static void
112     noop_delete (void *)
113     throw (balloc_exception)
114 pippijn 1.1 {
115 pippijn 1.4 // We should never reach here
116     throw balloc_exception (SRCINF, "Balloc has no deallocator");
117 pippijn 1.1 }
118    
119 pippijn 1.4 static void noop_delete (void *, size_t) throw (balloc_exception) __attribute__ ((__noreturn__));
120     static void
121     noop_delete (void *, size_t)
122     throw (balloc_exception)
123 pippijn 1.1 {
124 pippijn 1.4 // We should never reach here
125     throw balloc_exception (SRCINF, "Balloc has no deallocator");
126 pippijn 1.1 }
127 pippijn 1.4
128     void (*NullDealloc) (void *) = &noop_delete;
129     void (*NullNDealloc) (void *, size_t) = &noop_delete;