diff plugins/yay/libyahoo.h @ 1054:0b0b4cb53c17

[gaim-migrate @ 1064] yahoo prpl committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Fri, 03 Nov 2000 10:03:53 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/plugins/yay/libyahoo.h	Fri Nov 03 10:03:53 2000 +0000
@@ -0,0 +1,284 @@
+#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