* Started moving all of the global variables into a struct, to facilitate
[citadel.git] / webcit / webcit.h
1 /* $Id$ */
2
3 #define SLEEPING        180     /* TCP connection timeout */
4 #define WEBCIT_TIMEOUT  900     /* WebCit session timeout */
5 #define PORT_NUM        2000    /* port number to listen on */
6 #define SERVER          "WebCit v2.01"  /* who's in da house */
7 #define DEVELOPER_ID    0
8 #define CLIENT_ID       4
9 #define CLIENT_VERSION  201
10 #define DEFAULT_HOST    "localhost"
11 #define DEFAULT_PORT    "504"
12 #define LB              (1)
13 #define RB              (2)
14 #define QU              (3)
15 #define TARGET          "webcit01"
16 #define HOUSEKEEPING    60      /* Housekeeping frequency */
17
18
19 /* Room flags (from Citadel) */
20 #define QR_PERMANENT    1       /* Room does not purge              */
21 #define QR_INUSE        2       /* Set if in use, clear if avail    */
22 #define QR_PRIVATE      4       /* Set for any type of private room */
23 #define QR_PASSWORDED   8       /* Set if there's a password too    */
24 #define QR_GUESSNAME    16      /* Set if it's a guessname room     */
25 #define QR_DIRECTORY    32      /* Directory room                   */
26 #define QR_UPLOAD       64      /* Allowed to upload                */
27 #define QR_DOWNLOAD     128     /* Allowed to download              */
28 #define QR_VISDIR       256     /* Visible directory                */
29 #define QR_ANONONLY     512     /* Anonymous-Only room              */
30 #define QR_ANONOPT      1024    /* Anonymous-Option room            */
31 #define QR_NETWORK      2048    /* Shared network room              */
32 #define QR_PREFONLY     4096    /* Preferred status needed to enter */
33 #define QR_READONLY     8192    /* Aide status required to post     */
34 #define QR_MAILBOX      16384   /* Set if this is a private mailbox */
35
36
37 /* Browser braindamage check values */
38 enum {
39         B_NO,
40         B_YES,
41         B_ASK
42 };
43
44
45 struct webcontent {
46         struct webcontent *next;
47         char w_data[256];
48 };
49
50 struct urlcontent {
51         struct urlcontent *next;
52         char url_key[32];
53         char *url_data;
54 };
55
56 struct serv_info {
57         int serv_pid;
58         char serv_nodename[32];
59         char serv_humannode[64];
60         char serv_fqdn[64];
61         char serv_software[64];
62         int serv_rev_level;
63         char serv_bbs_city[64];
64         char serv_sysadm[64];
65         char serv_moreprompt[256];
66         int serv_ok_floors;
67 };
68
69 struct wcsession {
70         int wc_session;
71         char wc_username[256];
72         char wc_password[256];
73         char wc_roomname[256];
74         int connected;
75         int logged_in;
76         int axlevel;
77         int is_aide;
78         int is_room_aide;
79         int serv_sock;
80         struct serv_info serv_info;
81         unsigned room_flags;
82         char ugname[128];
83         long uglsn;
84         int upload_length;
85         char *upload;
86         int new_mail;
87         int need_vali;
88 };
89
90 extern struct wcsession *WC;
91
92 struct serv_info serv_info;
93 extern char floorlist[128][256];
94 extern char *axdefs[];
95
96 void stuff_to_cookie(char *, int, char *, char *, char *);
97 void cookie_to_stuff(char *, int *, char *, char *, char *);
98 void locate_host(char *, int);