Mercurial > pidgin
view plugins/yay/libyahoo.h @ 1388:7dc0a8bb4dcb
[gaim-migrate @ 1398]
Pounce stuff is not sensitive if it doesnt need to be.
committer: Tailor Script <tailor@pidgin.im>
author | Rob Flynn <gaim@robflynn.com> |
---|---|
date | Fri, 05 Jan 2001 09:13:13 +0000 |
parents | 0b0b4cb53c17 |
children |
line wrap: on
line source
#ifndef LIBYAHOO_H #define LIBYAHOO_H /* Service constants */ #define YAHOO_SERVICE_LOGON 1 #define YAHOO_SERVICE_LOGOFF 2 #define YAHOO_SERVICE_ISAWAY 3 #define YAHOO_SERVICE_ISBACK 4 #define YAHOO_SERVICE_IDLE 5 #define YAHOO_SERVICE_MESSAGE 6 #define YAHOO_SERVICE_IDACT 7 #define YAHOO_SERVICE_IDDEACT 8 #define YAHOO_SERVICE_MAILSTAT 9 #define YAHOO_SERVICE_USERSTAT 10 #define YAHOO_SERVICE_NEWMAIL 11 #define YAHOO_SERVICE_CHATINVITE 12 #define YAHOO_SERVICE_CALENDAR 13 #define YAHOO_SERVICE_NEWPERSONALMAIL 14 #define YAHOO_SERVICE_NEWCONTACT 15 #define YAHOO_SERVICE_ADDIDENT 16 #define YAHOO_SERVICE_ADDIGNORE 17 #define YAHOO_SERVICE_PING 18 #define YAHOO_SERVICE_GROUPRENAME 19 #define YAHOO_SERVICE_SYSMESSAGE 20 #define YAHOO_SERVICE_PASSTHROUGH2 22 #define YAHOO_SERVICE_CONFINVITE 24 #define YAHOO_SERVICE_CONFLOGON 25 #define YAHOO_SERVICE_CONFDECLINE 26 #define YAHOO_SERVICE_CONFLOGOFF 27 #define YAHOO_SERVICE_CONFADDINVITE 28 #define YAHOO_SERVICE_CONFMSG 29 #define YAHOO_SERVICE_CHATLOGON 30 #define YAHOO_SERVICE_CHATLOGOFF 31 #define YAHOO_SERVICE_CHATMSG 32 #define YAHOO_SERVICE_GAMELOGON 40 #define YAHOO_SERVICE_GAMELOGOFF 41 #define YAHOO_SERVICE_FILETRANSFER 70 /* Yahoo style/color directives */ #define YAHOO_COLOR_BLACK "\033[30m" #define YAHOO_COLOR_BLUE "\033[31m" #define YAHOO_COLOR_LIGHTBLUE "\033[32m" #define YAHOO_COLOR_GRAY "\033[33m" #define YAHOO_COLOR_GREEN "\033[34m" #define YAHOO_COLOR_PINK "\033[35m" #define YAHOO_COLOR_PURPLE "\033[36m" #define YAHOO_COLOR_ORANGE "\033[37m" #define YAHOO_COLOR_RED "\033[38m" #define YAHOO_COLOR_OLIVE "\033[39m" #define YAHOO_STYLE_ITALICON "\033[2m" #define YAHOO_STYLE_ITALICOFF "\033[x2m" #define YAHOO_STYLE_BOLDON "\033[1m" #define YAHOO_STYLE_BOLDOFF "\033[x1m" #define YAHOO_STYLE_UNDERLINEON "\033[4m" #define YAHOO_STYLE_UNDERLINEOFF "\033[x4m" #define YAHOO_STYLE_URLON "\033[lm" #define YAHOO_STYLE_URLOFF "\033[xlm" /* Message flags */ #define YAHOO_MSGTYPE_ERROR -1 /* 0xFFFFFFFF */ #define YAHOO_MSGTYPE_NONE 0 /* ok */ #define YAHOO_MSGTYPE_NORMAL 1 /* notify */ #define YAHOO_MSGTYPE_BOUNCE 2 /* not available */ #define YAHOO_MSGTYPE_STATUS 4 /* user away */ #define YAHOO_MSGTYPE_OFFLINE 5 #define YAHOO_MSGTYPE_INVISIBLE 12 #define YAHOO_MSGTYPE_KNOWN_USER 1515563606 /* 0x5A55AA56 */ #define YAHOO_MSGTYPE_UNKNOWN_USER 1515563605 /* 0x5A55AA55 */ #define YAHOO_CONF_LEVEL_0 0 /* Structure definitions */ enum phone { home = 0, work }; struct yahoo_address { char *id; char *firstname; char *lastname; char *emailnickname; char *email; char *workphone; char *homephone; enum phone primary_phone; unsigned int entryid; }; struct yahoo_context { /* Input parameters from calling application */ char *user; char *password; int connect_mode; /* connection mode */ int proxy_port; char *proxy_host; /* Semi-public */ int sockfd; /* pager server socket */ /* IO buffer parameters */ char *io_buf; /* Buffer for storing incoming packets */ int io_buf_curlen; int io_buf_maxlen; /* Cookie data */ char *cookie; char *login_cookie; /* Buddy list parameters */ struct yahoo_buddy **buddies; /* list of groups and buddies */ char **identities; /* list of identities */ char *login_id; /* what id should be specified as the primary id */ int mail; /* I think this indicates if user has a yahoo mail id */ /* Temporary to hold the magic id for outbound packets */ unsigned int magic_id; unsigned int connection_id; unsigned int address_count; struct yahoo_address *addresses; }; struct yahoo_options { int connect_mode; char *proxy_host; int proxy_port; }; struct yahoo_rawpacket { char version[8]; /* 7 chars and trailing null */ unsigned char len[4]; /* length - little endian */ unsigned char service[4]; /* service - little endian */ /* 3 X 4bytes - host, port, ip_address */ /* not sure what diff is between host and ip addr */ unsigned char connection_id[4]; /* connection number - little endian */ unsigned char magic_id[4]; /* magic number used for http session */ unsigned char unknown1[4]; unsigned char msgtype[4]; char nick1[36]; char nick2[36]; char content[1]; /* was zero, had problems with aix xlc */ }; /* * Structure for returning the status/flags/etc. of a particular id */ struct yahoo_idstatus { char *id; int status; char *status_msg; char *connection_id; int in_pager; int in_chat; int in_game; /* not sure */ }; /* * Structure for returning a buddy entry */ struct yahoo_buddy { char *group; /* member of what group */ char *id; /* the buddy's id */ }; /* * Generic packet type for returning from the parse routine * The fields in this packet are not all used and are defined * so that a single type of packet can be returned from the parse routine */ struct yahoo_packet { /* Common info */ int service; /* Service type */ int connection_id; /* Connection ID */ char *real_id; /* What ID is logged on */ char *active_id; /* What ID is active */ /* Flags for the unknown portion of the data */ unsigned int magic_id; unsigned int unknown1; unsigned int msgtype; /* flag for indicating/requesting msg type */ /* Status flag, I think used at login */ int flag; /* Used at logon for success/alerts? */ /* Status entries */ int idstatus_count; struct yahoo_idstatus **idstatus; /* Array of status entries for id's */ /* Conferencing */ char *conf_id; /* id for the conference */ char *conf_host; /* who is hosting the conference */ char *conf_user; /* single username ( used in */ /* declined conference/ */ /* addinvite / message / */ /* logon / logoff ) */ char **conf_userlist; /* user list */ char *conf_inviter; /* user who invited you */ /* (conference addinvite) */ char *conf_msg; /* conference message */ int conf_type; /* text(0) or */ /* voice(1) conference */ /* Mail status */ int mail_status; /* Calendar data */ char *cal_url; int cal_type; char *cal_timestamp; char *cal_title; char *cal_description; /* Chat invite data */ char *chat_invite_content; /* Received message */ char *msg_id; /* Originator of message */ int msg_status; /* Status update from the message */ char *msg_timestamp; /* Timestamp of offline message */ char *msg; /* Content of message */ /* File transfer request */ char *file_from; char *file_flag; char *file_url; char *file_description; int file_expires; /* Group names for renaming */ char *group_old; /* Old group name */ char *group_new; /* New group name */ }; /* Misc contants */ #define YAHOO_PACKET_HEADER_SIZE 104 /* size of a standard header */ /* Status codes */ struct yahoo_idlabel { int id; char *label; }; /* Constants for connect mode selection */ enum { YAHOO_CONNECT_NORMAL, YAHOO_CONNECT_HTTP, YAHOO_CONNECT_HTTPPROXY, YAHOO_CONNECT_SOCKS4, YAHOO_CONNECT_SOCKS5 }; /* Constants for status codes */ enum { YAHOO_STATUS_AVAILABLE, YAHOO_STATUS_BRB, YAHOO_STATUS_BUSY, YAHOO_STATUS_NOTATHOME, YAHOO_STATUS_NOTATDESK, YAHOO_STATUS_NOTINOFFICE, YAHOO_STATUS_ONPHONE, YAHOO_STATUS_ONVACATION, YAHOO_STATUS_OUTTOLUNCH, YAHOO_STATUS_STEPPEDOUT, YAHOO_STATUS_INVISIBLE = 12, YAHOO_STATUS_CUSTOM = 99, YAHOO_STATUS_IDLE = 999 }; /* Function prototypes */ #include "libyahoo-proto.h" #endif