280 lines
6.7 KiB
C
280 lines
6.7 KiB
C
#ifndef _TOC_H
|
|
#define _TOC_H
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <sys/time.h>
|
|
#include "ll.h"
|
|
|
|
/* TOC DEFS */
|
|
#define FLAPON "FLAPON\r\n\r\n"
|
|
#define MSG_LEN 2048
|
|
#define BUF_LEN MSG_LEN
|
|
#define MAX_OUTPUT_MSG_LEN 4096
|
|
#define BUF_LONG BUF_LEN * 2
|
|
#define LANGUAGE "english"
|
|
#define REVISION "gaim-libtoc:$Revision: 40 $"
|
|
#define ROAST "Tic/Toc"
|
|
#define TOC_HOST "toc.oscar.aol.com"
|
|
#define TOC_PORT 9898
|
|
#define AUTH_HOST "login.oscar.aol.com"
|
|
#define AUTH_PORT 5190
|
|
#define LAGOMETER_STR "123CHECKLAG456"
|
|
|
|
/* connection states */
|
|
#define STATE_OFFLINE 0
|
|
#define STATE_FLAPON 1
|
|
#define STATE_SIGNON_REQUEST 2
|
|
#define STATE_SIGNON_ACK 3
|
|
#define STATE_CONFIG 4
|
|
#define STATE_ONLINE 5
|
|
|
|
/* communication types */
|
|
#define TYPE_SIGNON 1
|
|
#define TYPE_DATA 2
|
|
#define TYPE_ERROR 3
|
|
#define TYPE_SIGNOFF 4
|
|
#define TYPE_KEEPALIVE 5
|
|
|
|
/* permit modes */
|
|
#define PERMIT_PERMITALL 1
|
|
#define PERMIT_DENYALL 2
|
|
#define PERMIT_PERMITSOME 3
|
|
#define PERMIT_DENYSOME 4
|
|
|
|
/* User Types */
|
|
#define UC_AOL 1
|
|
#define UC_ADMIN 2
|
|
#define UC_UNCONFIRMED 4
|
|
#define UC_NORMAL 8
|
|
#define UC_UNAVAILABLE 16
|
|
|
|
|
|
/* INTERFACE */
|
|
|
|
#define TOC_HANDLE 1
|
|
#define TOC_RAW_HANDLE 2
|
|
|
|
/* The following can be handlers in either normal or raw mode */
|
|
|
|
#define TOC_SIGN_ON 0
|
|
#define TOC_CONFIG 1
|
|
#define TOC_NICK 2
|
|
#define TOC_IM_IN 3
|
|
#define TOC_UPDATE_BUDDY 4
|
|
#define TOC_ERROR 5
|
|
#define TOC_EVILED 6
|
|
#define TOC_CHAT_JOIN 7
|
|
#define TOC_CHAT_IN 8
|
|
#define TOC_CHAT_UPDATE_BUDDY 9
|
|
#define TOC_CHAT_INVITE 10
|
|
#define TOC_CHAT_LEFT 11
|
|
#define TOC_GOTO_URL 12
|
|
#define TOC_DIR_STATUS 13
|
|
|
|
/* TEMP */
|
|
#define TOC_REINSTALL_TIMER 19
|
|
|
|
/* Special HANDLES -- can only be used in Normal mode */
|
|
|
|
#define TOC_SOCKFD 20
|
|
#define TOC_RM_SOCKFD 21
|
|
#define TOC_RECIEVED_IM TOC_IM_IN
|
|
#define TOC_BUDDY_LOGGED_ON 22
|
|
#define TOC_BUDDY_LOGGED_OFF 23
|
|
#define TOC_CONNECT_MSGS 24
|
|
#define TOC_TRANSLATED_ERROR 25
|
|
#define TOC_BUDDY_LEFT_CHAT 26
|
|
#define TOC_BUDDY_JOIN_CHAT 27
|
|
#define TOC_LAG_UPDATE 28
|
|
#define TOC_WENT_IDLE 29
|
|
|
|
|
|
#define TOC_DEBUG_LOG "/tmp/aim-bx.log"
|
|
|
|
/* structs */
|
|
struct sflap_hdr {
|
|
unsigned char ast;
|
|
unsigned char type;
|
|
unsigned short seqno;
|
|
unsigned short len;
|
|
};
|
|
|
|
struct signon {
|
|
unsigned int ver;
|
|
unsigned short tag;
|
|
unsigned short namelen;
|
|
char username[80];
|
|
};
|
|
|
|
|
|
struct buddy {
|
|
char name[80];
|
|
int present;
|
|
int log_timer;
|
|
int evil;
|
|
time_t signon;
|
|
time_t idle;
|
|
int uc;
|
|
};
|
|
|
|
|
|
struct group {
|
|
char name[80];
|
|
LL members;
|
|
};
|
|
|
|
struct buddy_chat {
|
|
LL in_room;
|
|
LL ignored;
|
|
int makesound;
|
|
int id;
|
|
int init_chat;
|
|
char name[80];
|
|
};
|
|
|
|
|
|
|
|
/* toc.c */
|
|
int toc_login(char *username, char *password);
|
|
int toc_signon(char *username, char *password);
|
|
int wait_reply(char *buffer, int buflen);
|
|
unsigned char *roast_password(char *pass);
|
|
char *print_header(void *hdr_v);
|
|
int toc_wait_signon();
|
|
char *toc_wait_config();
|
|
int sflap_send(char *buf, int olen, int type);
|
|
int toc_signoff();
|
|
void toc_close();
|
|
void toc_build_config(char *s, int len);
|
|
void parse_toc_buddy_list(char *);
|
|
void translate_toc_error_code(char *c);
|
|
|
|
extern int state;
|
|
/* extern int inpa; */
|
|
|
|
|
|
/* util.c */
|
|
void set_state(int i);
|
|
int escape_message(char *msg);
|
|
char *normalize(char *s);
|
|
void strdown(char *s);
|
|
int escape_text(char *msg);
|
|
void toc_debug_printf(char *fmt, ...);
|
|
void toc_msg_printf(int type, char *fmt, ...);
|
|
char *strip_html(char *text);
|
|
|
|
|
|
/* network.c */
|
|
unsigned int *get_address(char *hostname);
|
|
int connect_address(unsigned int addy, unsigned short port);
|
|
|
|
|
|
/* server.c */
|
|
void serv_finish_login();
|
|
void serv_add_buddy(char *name);
|
|
void serv_remove_buddy(char *name);
|
|
void serv_set_info(char *info);
|
|
void serv_get_info(char *name);
|
|
int serv_got_im(char *name, char *message, int away);
|
|
void serv_add_buddies(LL buddies);
|
|
void serv_send_im(char *name, char *message);
|
|
void serv_got_update(char *name, int loggedin, int evil, time_t signon, time_t idle, int type);
|
|
void serv_close();
|
|
void serv_save_config();
|
|
void serv_warn(char *name, int anon);
|
|
void serv_add_permit(char *);
|
|
void serv_add_deny(char *);
|
|
void serv_set_permit_deny();
|
|
void serv_got_joined_chat(int id, char *name);
|
|
void serv_got_chat_left(int id);
|
|
void serv_accept_chat(int);
|
|
void serv_join_chat(int, char *);
|
|
void serv_chat_invite(int, char *, char *);
|
|
void serv_chat_leave(int);
|
|
void serv_chat_whisper(int, char *, char *);
|
|
void serv_chat_send(int, char *);
|
|
void serv_chat_warn(int id, char *user, int anon);
|
|
void serv_get_dir(char *name);
|
|
void serv_set_dir(char *first, char *middle, char *last, char *maiden, char *city, char *state, char *country, char *email, int web);
|
|
void serv_dir_search(char *first, char *middle, char *last, char *maiden, char *city, char *state, char *country, char *email);
|
|
void serv_touch_idle();
|
|
void serv_set_idle(int time);
|
|
int check_idle();
|
|
void serv_set_away(char *message);
|
|
|
|
extern int idle_timer;
|
|
extern time_t login_time;
|
|
extern int is_idle;
|
|
extern int lag_ms;
|
|
extern int permdeny;
|
|
extern int my_evil;
|
|
extern int is_away;
|
|
extern int time_to_idle;
|
|
|
|
|
|
/* misc.c */
|
|
void save_prefs();
|
|
void misc_free_group(void *);
|
|
void misc_free_buddy_chat(void *);
|
|
void misc_free_invited_chats(void *);
|
|
|
|
extern char aim_host[512];
|
|
extern int aim_port;
|
|
extern char login_host[512];
|
|
extern int login_port;
|
|
extern char toc_addy[16];
|
|
extern char aim_username[80];
|
|
extern char aim_password[16];
|
|
extern char *quad_addr;
|
|
extern char debug_buff[1024];
|
|
extern char user_info[2048];
|
|
extern int registered;
|
|
extern char *USER_CLASSES[5];
|
|
extern char *PERMIT_MODES[4];
|
|
|
|
|
|
/* buddy.c */
|
|
struct buddy *add_buddy(char *group, char *buddy);
|
|
struct buddy *find_buddy(char *who);
|
|
struct group *add_group(char *group);
|
|
struct group *find_group(char *group);
|
|
int user_add_buddy(char *group,char *buddy);
|
|
int user_remove_buddy(char *buddy);
|
|
int remove_group(char *group, char *newgroup, int mode);
|
|
int add_permit(char *sn);
|
|
int remove_permit(char *sn);
|
|
int add_deny(char *sn);
|
|
int remove_deny(char *sn);
|
|
int buddy_chat_invite(char *chat, char *buddy, char *msg);
|
|
void buddy_chat_join(char *chan);
|
|
int buddy_chat_leave(char *chan);
|
|
struct buddy_chat *find_buddy_chat(char *chat);
|
|
struct buddy_chat *buddy_chat_getbyid(int id);
|
|
int buddy_chat_warn(char *chat, char *user, int anon);
|
|
|
|
extern LL groups;
|
|
extern LL permit; /* The list of people permitted */
|
|
extern LL deny; /* The list of people denied */
|
|
extern LL buddy_chats;
|
|
extern LL invited_chats;
|
|
|
|
|
|
/* inteface.c */
|
|
void init_toc();
|
|
void init_lists();
|
|
int install_handler(int type, int (*func)(int, char **));
|
|
int install_raw_handler(int type, int (*func)(int, char *));
|
|
int use_handler(int mode,int type, void *args);
|
|
|
|
extern int (*TOC_RAW_HANDLERS[30])(int, char *);
|
|
extern int (*TOC_HANDLERS[30])(int, char **);
|
|
|
|
|
|
/* EXTERNAL FUNCTIONS */
|
|
|
|
extern int toc_add_input_stream(int,int (*)(int));
|
|
extern int toc_remove_input_stream(int);
|
|
|
|
#endif // _TOC_H
|