Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
BitchX
GitHub Repository: BitchX/BitchX1.3
Path: blob/master/dll/aim/toc/toc.h
1072 views
1
#ifndef _TOC_H
2
#define _TOC_H
3
4
#include <stdio.h>
5
#include <stdlib.h>
6
#include <sys/time.h>
7
#include "ll.h"
8
9
/* TOC DEFS */
10
#define FLAPON "FLAPON\r\n\r\n"
11
#define MSG_LEN 2048
12
#define BUF_LEN MSG_LEN
13
#define MAX_OUTPUT_MSG_LEN 4096
14
#define BUF_LONG BUF_LEN * 2
15
#define LANGUAGE "english"
16
#define REVISION "gaim-libtoc:$Revision: 40 $"
17
#define ROAST "Tic/Toc"
18
#define TOC_HOST "toc.oscar.aol.com"
19
#define TOC_PORT 9898
20
#define AUTH_HOST "login.oscar.aol.com"
21
#define AUTH_PORT 5190
22
#define LAGOMETER_STR "123CHECKLAG456"
23
24
/* connection states */
25
#define STATE_OFFLINE 0
26
#define STATE_FLAPON 1
27
#define STATE_SIGNON_REQUEST 2
28
#define STATE_SIGNON_ACK 3
29
#define STATE_CONFIG 4
30
#define STATE_ONLINE 5
31
32
/* communication types */
33
#define TYPE_SIGNON 1
34
#define TYPE_DATA 2
35
#define TYPE_ERROR 3
36
#define TYPE_SIGNOFF 4
37
#define TYPE_KEEPALIVE 5
38
39
/* permit modes */
40
#define PERMIT_PERMITALL 1
41
#define PERMIT_DENYALL 2
42
#define PERMIT_PERMITSOME 3
43
#define PERMIT_DENYSOME 4
44
45
/* User Types */
46
#define UC_AOL 1
47
#define UC_ADMIN 2
48
#define UC_UNCONFIRMED 4
49
#define UC_NORMAL 8
50
#define UC_UNAVAILABLE 16
51
52
53
/* INTERFACE */
54
55
#define TOC_HANDLE 1
56
#define TOC_RAW_HANDLE 2
57
58
/* The following can be handlers in either normal or raw mode */
59
60
#define TOC_SIGN_ON 0
61
#define TOC_CONFIG 1
62
#define TOC_NICK 2
63
#define TOC_IM_IN 3
64
#define TOC_UPDATE_BUDDY 4
65
#define TOC_ERROR 5
66
#define TOC_EVILED 6
67
#define TOC_CHAT_JOIN 7
68
#define TOC_CHAT_IN 8
69
#define TOC_CHAT_UPDATE_BUDDY 9
70
#define TOC_CHAT_INVITE 10
71
#define TOC_CHAT_LEFT 11
72
#define TOC_GOTO_URL 12
73
#define TOC_DIR_STATUS 13
74
75
/* TEMP */
76
#define TOC_REINSTALL_TIMER 19
77
78
/* Special HANDLES -- can only be used in Normal mode */
79
80
#define TOC_SOCKFD 20
81
#define TOC_RM_SOCKFD 21
82
#define TOC_RECIEVED_IM TOC_IM_IN
83
#define TOC_BUDDY_LOGGED_ON 22
84
#define TOC_BUDDY_LOGGED_OFF 23
85
#define TOC_CONNECT_MSGS 24
86
#define TOC_TRANSLATED_ERROR 25
87
#define TOC_BUDDY_LEFT_CHAT 26
88
#define TOC_BUDDY_JOIN_CHAT 27
89
#define TOC_LAG_UPDATE 28
90
#define TOC_WENT_IDLE 29
91
92
93
#define TOC_DEBUG_LOG "/tmp/aim-bx.log"
94
95
/* structs */
96
struct sflap_hdr {
97
unsigned char ast;
98
unsigned char type;
99
unsigned short seqno;
100
unsigned short len;
101
};
102
103
struct signon {
104
unsigned int ver;
105
unsigned short tag;
106
unsigned short namelen;
107
char username[80];
108
};
109
110
111
struct buddy {
112
char name[80];
113
int present;
114
int log_timer;
115
int evil;
116
time_t signon;
117
time_t idle;
118
int uc;
119
};
120
121
122
struct group {
123
char name[80];
124
LL members;
125
};
126
127
struct buddy_chat {
128
LL in_room;
129
LL ignored;
130
int makesound;
131
int id;
132
int init_chat;
133
char name[80];
134
};
135
136
137
138
/* toc.c */
139
int toc_login(char *username, char *password);
140
int toc_signon(char *username, char *password);
141
int wait_reply(char *buffer, int buflen);
142
unsigned char *roast_password(char *pass);
143
char *print_header(void *hdr_v);
144
int toc_wait_signon();
145
char *toc_wait_config();
146
int sflap_send(char *buf, int olen, int type);
147
int toc_signoff();
148
void toc_close();
149
void toc_build_config(char *s, int len);
150
void parse_toc_buddy_list(char *);
151
void translate_toc_error_code(char *c);
152
153
extern int state;
154
/* extern int inpa; */
155
156
157
/* util.c */
158
void set_state(int i);
159
int escape_message(char *msg);
160
char *normalize(char *s);
161
void strdown(char *s);
162
int escape_text(char *msg);
163
void toc_debug_printf(char *fmt, ...);
164
void toc_msg_printf(int type, char *fmt, ...);
165
char *strip_html(char *text);
166
167
168
/* network.c */
169
unsigned int *get_address(char *hostname);
170
int connect_address(unsigned int addy, unsigned short port);
171
172
173
/* server.c */
174
void serv_finish_login();
175
void serv_add_buddy(char *name);
176
void serv_remove_buddy(char *name);
177
void serv_set_info(char *info);
178
void serv_get_info(char *name);
179
int serv_got_im(char *name, char *message, int away);
180
void serv_add_buddies(LL buddies);
181
void serv_send_im(char *name, char *message);
182
void serv_got_update(char *name, int loggedin, int evil, time_t signon, time_t idle, int type);
183
void serv_close();
184
void serv_save_config();
185
void serv_warn(char *name, int anon);
186
void serv_add_permit(char *);
187
void serv_add_deny(char *);
188
void serv_set_permit_deny();
189
void serv_got_joined_chat(int id, char *name);
190
void serv_got_chat_left(int id);
191
void serv_accept_chat(int);
192
void serv_join_chat(int, char *);
193
void serv_chat_invite(int, char *, char *);
194
void serv_chat_leave(int);
195
void serv_chat_whisper(int, char *, char *);
196
void serv_chat_send(int, char *);
197
void serv_chat_warn(int id, char *user, int anon);
198
void serv_get_dir(char *name);
199
void serv_set_dir(char *first, char *middle, char *last, char *maiden, char *city, char *state, char *country, char *email, int web);
200
void serv_dir_search(char *first, char *middle, char *last, char *maiden, char *city, char *state, char *country, char *email);
201
void serv_touch_idle();
202
void serv_set_idle(int time);
203
int check_idle();
204
void serv_set_away(char *message);
205
206
extern int idle_timer;
207
extern time_t login_time;
208
extern int is_idle;
209
extern int lag_ms;
210
extern int permdeny;
211
extern int my_evil;
212
extern int is_away;
213
extern int time_to_idle;
214
215
216
/* misc.c */
217
void save_prefs();
218
void misc_free_group(void *);
219
void misc_free_buddy_chat(void *);
220
void misc_free_invited_chats(void *);
221
222
extern char aim_host[512];
223
extern int aim_port;
224
extern char login_host[512];
225
extern int login_port;
226
extern char toc_addy[16];
227
extern char aim_username[80];
228
extern char aim_password[16];
229
extern char *quad_addr;
230
extern char debug_buff[1024];
231
extern char user_info[2048];
232
extern int registered;
233
extern char *USER_CLASSES[5];
234
extern char *PERMIT_MODES[4];
235
236
237
/* buddy.c */
238
struct buddy *add_buddy(char *group, char *buddy);
239
struct buddy *find_buddy(char *who);
240
struct group *add_group(char *group);
241
struct group *find_group(char *group);
242
int user_add_buddy(char *group,char *buddy);
243
int user_remove_buddy(char *buddy);
244
int remove_group(char *group, char *newgroup, int mode);
245
int add_permit(char *sn);
246
int remove_permit(char *sn);
247
int add_deny(char *sn);
248
int remove_deny(char *sn);
249
int buddy_chat_invite(char *chat, char *buddy, char *msg);
250
void buddy_chat_join(char *chan);
251
int buddy_chat_leave(char *chan);
252
struct buddy_chat *find_buddy_chat(char *chat);
253
struct buddy_chat *buddy_chat_getbyid(int id);
254
int buddy_chat_warn(char *chat, char *user, int anon);
255
256
extern LL groups;
257
extern LL permit; /* The list of people permitted */
258
extern LL deny; /* The list of people denied */
259
extern LL buddy_chats;
260
extern LL invited_chats;
261
262
263
/* inteface.c */
264
void init_toc();
265
void init_lists();
266
int install_handler(int type, int (*func)(int, char **));
267
int install_raw_handler(int type, int (*func)(int, char *));
268
int use_handler(int mode,int type, void *args);
269
270
extern int (*TOC_RAW_HANDLERS[30])(int, char *);
271
extern int (*TOC_HANDLERS[30])(int, char **);
272
273
274
/* EXTERNAL FUNCTIONS */
275
276
extern int toc_add_input_stream(int,int (*)(int));
277
extern int toc_remove_input_stream(int);
278
279
#endif // _TOC_H
280
281