ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/ermyth/include/servers.h
Revision: 1.3
Committed: Tue Aug 28 17:08:07 2007 UTC (16 years, 9 months ago) by pippijn
Content type: text/plain
Branch: MAIN
Changes since 1.2: +19 -12 lines
Log Message:
- changed name
- updated the example config to the new system
- added more documentation
- enhanced documentation generators
- added a link to the pdf to the website
- added an RSS feed generator
- transitioned hooks to c++ callbacks
- did various merges with upstream along the way
- added const where appropriate
- removed the old block allocator
- fixed most memory leaks
- transitioned some dictionaries to std::map
- transitioned some lists to std::vector
- made some free functions members where appropriate
- renamed string to dynstr and added a static string ststr
- use NOW instead of time (NULL) if possible
- completely reworked database backends, crypto handlers and protocol handlers
  to use an object factory
- removed the old module system. ermyth does not do any dynamic loading anymore
- fixed most of the build system
- reworked how protocol commands work

File Contents

# User Rev Content
1 pippijn 1.1 /*
2 pippijn 1.3 * Copyright © 2005 William Pitcock, et al.
3 pippijn 1.2 * Rights to this code are as documented in doc/pod/license.pod.
4 pippijn 1.1 *
5     * Data structures related to network servers.
6     *
7 pippijn 1.3 * $Id: servers.h,v 1.2 2007-07-21 01:29:07 pippijn Exp $
8 pippijn 1.1 */
9    
10     #ifndef SERVERS_H
11     #define SERVERS_H
12    
13     /* servers struct */
14 pippijn 1.3 class server_t : public zero_initialised
15 pippijn 1.1 {
16 pippijn 1.3 struct callbacks
17     {
18     functor::callback1<server_t *> eob;
19     };
20    
21     public:
22 pippijn 1.1 char *name;
23     char *desc;
24     char *sid;
25    
26     unsigned int hops;
27     unsigned int users;
28     unsigned int invis;
29     unsigned int opers;
30     unsigned int away;
31    
32     time_t connected_since;
33    
34     unsigned int flags;
35    
36     server_t *uplink; /* uplink server */
37     list_t children; /* children linked to me */
38     list_t userlist; /* users attached to me */
39 pippijn 1.3
40     static callbacks callback;
41 pippijn 1.1 };
42    
43     #define SF_HIDE 0x00000001
44     #define SF_EOB 0x00000002 /* Burst finished (we have all users/channels) -- jilles */
45     #define SF_EOB2 0x00000004 /* Is EOB but an uplink is not (for P10) */
46     #define SF_JUPE_PENDING 0x00000008 /* Sent SQUIT request, will introduce jupe when it dies (unconnect semantics) */
47    
48     /* tld list struct */
49 pippijn 1.3 struct tld_t : zero_initialised
50 pippijn 1.1 {
51     char *name;
52     };
53    
54     #define SERVER_NAME(serv) ((serv)->sid[0] ? (serv)->sid : (serv)->name)
55     #define ME (ircd->uses_uid ? me.numeric : me.name)
56    
57     /* servers.c */
58     E list_t tldlist;
59    
60     E void init_servers (void);
61    
62 pippijn 1.3 E tld_t *tld_add (char const * const name);
63     E void tld_delete (char const * const name);
64     E tld_t *tld_find (char const * const name);
65    
66     E server_t *server_add (char const * const name, unsigned int hops, char const * const uplink, char const * const id, char const * const desc);
67     E void server_delete (char const * const name);
68     E server_t *server_find (char const * const name);
69 pippijn 1.1
70     #endif