Chop networker into handy bits; related functions now live in their own file.
[citadel.git] / citadel / serv_network.h
1
2 typedef struct namelist namelist;
3
4 struct namelist {
5         namelist *next;
6         char name[SIZ];
7 };
8
9 typedef struct maplist maplist;
10
11 struct maplist {
12         struct maplist *next;
13         char remote_nodename[SIZ];
14         char remote_roomname[SIZ];
15 };
16
17 typedef struct SpoolControl SpoolControl;
18
19 struct SpoolControl {
20         long lastsent;
21         namelist *listrecps;
22         namelist *digestrecps;
23         namelist *participates;
24         maplist *ignet_push_shares;
25         char *misc;
26         FILE *digestfp;
27         int num_msgs_spooled;
28 };
29
30
31 typedef struct NetMap NetMap;
32
33 struct  NetMap {
34         NetMap *next;
35         char nodename[SIZ];
36         time_t lastcontact;
37         char nexthop[SIZ];
38 };
39
40 typedef struct FilterList FilterList;
41
42 struct FilterList {
43         FilterList *next;
44         char fl_user[SIZ];
45         char fl_room[SIZ];
46         char fl_node[SIZ];
47 };
48 extern FilterList *filterlist;
49
50 void free_spoolcontrol_struct(SpoolControl **scc);
51 int writenfree_spoolcontrol_file(SpoolControl **scc, char *filename);
52 int read_spoolcontrol_file(SpoolControl **scc, char *filename);
53
54 int is_recipient(SpoolControl *sc, const char *Name);
55
56
57 void network_queue_room(struct ctdlroom *, void *);
58 void destroy_network_queue_room(void);
59 void network_bounce(struct CtdlMessage *msg, char *reason);
60 int network_usetable(struct CtdlMessage *msg);
61 void network_do_spoolin(void);
62 void network_consolidate_spoolout(void);
63 void network_spoolout_room(char *room_to_spool);
64