⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aim.h

📁 oscar message protocol stack
💻 H
📖 第 1 页 / 共 4 页
字号:
	/* Only used if AIM_IMFLAGS_CUSTOMCHARSET is set and mpmsg not used */	fu16_t charset;	fu16_t charsubset;};/* * Arguments to aim_send_rtfmsg(). */struct aim_sendrtfmsg_args {	const char *destsn;	fu32_t fgcolor;	fu32_t bgcolor;	const char *rtfmsg; /* must be in RTF */};/* * This information is provided in the Incoming ICBM callback for * Channel 1 ICBM's.   * * Note that although CUSTOMFEATURES and CUSTOMCHARSET say they * are optional, both are always set by the current libfaim code. * That may or may not change in the future.  It is mainly for * consistency with aim_sendimext_args. * * Multipart messages require some explanation. If you want to use them, * I suggest you read all the comments in im.c. * */struct aim_incomingim_ch1_args {	/* Always provided */	aim_mpmsg_t mpmsg;	fu32_t icbmflags; /* some flags apply only to ->msg, not all mpmsg */		/* Only provided if message has a human-readable section */	char *msg;	int msglen;	/* Only provided if AIM_IMFLAGS_HASICON is set */	time_t iconstamp;	fu32_t iconlen;	fu16_t iconsum;	/* Only provided if AIM_IMFLAGS_CUSTOMFEATURES is set */	fu8_t *features;	fu8_t featureslen;	/* Only provided if AIM_IMFLAGS_EXTDATA is set */	fu8_t extdatalen;	fu8_t *extdata;	/* Only used if AIM_IMFLAGS_CUSTOMCHARSET is set */	fu16_t charset;	fu16_t charsubset;};/* Valid values for channel 2 args->status */#define AIM_RENDEZVOUS_PROPOSE	0x0000#define AIM_RENDEZVOUS_CANCEL	0x0001#define AIM_RENDEZVOUS_ACCEPT	0x0002struct aim_incomingim_ch2_args {	fu16_t status;	fu8_t cookie[8];	int reqclass;	const char *proxyip;	const char *clientip;	const char *verifiedip;	fu16_t port;	fu16_t errorcode;	const char *msg; /* invite message or file description */	fu16_t msglen;	const char *encoding;	const char *language;	union {		struct {			fu32_t checksum;			fu32_t length;			time_t timestamp;			fu8_t *icon;		} icon;		struct {			struct aim_chat_roominfo roominfo;		} chat;		struct {			fu16_t msgtype;			fu32_t fgcolor;			fu32_t bgcolor;			const char *rtfmsg;		} rtfmsg;		struct {			fu16_t subtype;			fu16_t totfiles;			fu32_t totsize;			char *filename;		} sendfile;	} info;	void *destructor; /* used internally only */};/* Valid values for channel 4 args->type */#define AIM_ICQMSG_AUTHREQUEST	0x0006#define AIM_ICQMSG_AUTHDENIED	0x0007#define AIM_ICQMSG_AUTHGRANTED	0x0008struct aim_incomingim_ch4_args {	fu32_t uin; /* Of the sender of the ICBM */	fu8_t type;	fu8_t flags;	char *msg; /* Reason for auth request, deny, or accept */	int msglen;};/* SNAC sending functions *//* 0x0002 */ faim_export int aim_im_setparams(aim_session_t *sess, struct aim_icbmparameters *params);/* 0x0004 */ faim_export int aim_im_reqparams(aim_session_t *sess);/* 0x0006 */ faim_export int aim_im_sendch1_ext(aim_session_t *sess, struct aim_sendimext_args *args);/* 0x0006 */ faim_export int aim_im_sendch1(aim_session_t *, const char *destsn, fu16_t flags, const char *msg);/* 0x0006 */ faim_export int aim_im_sendch2_chatinvite(aim_session_t *sess, const char *sn, const char *msg, fu16_t exchange, const char *roomname, fu16_t instance);/* 0x0006 */ faim_export int aim_im_sendch2_icon(aim_session_t *sess, const char *sn, const fu8_t *icon, int iconlen, time_t stamp, fu16_t iconsum);/* 0x0006 */ faim_export int aim_im_sendch2_rtfmsg(aim_session_t *sess, struct aim_sendrtfmsg_args *args);/* 0x0006 */ faim_export int aim_im_sendch2_odcrequest(aim_session_t *sess, fu8_t *cookie, bool usecookie, const char *sn, const fu8_t *ip, fu16_t port);/* 0x0006 */ faim_export int aim_im_sendch2_sendfile_ask(aim_session_t *sess, struct aim_oft_info *oft_info);/* 0x0006 */ faim_export int aim_im_sendch2_sendfile_accept(aim_session_t *sess, struct aim_oft_info *info);/* 0x0006 */ faim_export int aim_im_sendch2_sendfile_cancel(aim_session_t *sess, struct aim_oft_info *oft_info);/* 0x0006 */ faim_export int aim_im_sendch2_geticqaway(aim_session_t *sess, const char *sn, int type);/* 0x0006 */ faim_export int aim_im_sendch4(aim_session_t *sess, char *sn, fu16_t type, fu8_t *message);/* 0x0008 */ faim_export int aim_im_warn(aim_session_t *sess, aim_conn_t *conn, const char *destsn, fu32_t flags);/* 0x000b */ faim_export int aim_im_denytransfer(aim_session_t *sess, const char *sender, const char *cookie, fu16_t code);/* 0x0014 */ faim_export int aim_im_sendmtn(aim_session_t *sess, fu16_t type1, const char *sn, fu16_t type2);/* ft.c */struct aim_fileheader_t {#if 0	char magic[4];		/* 0 */	fu16_t hdrlen;		/* 4 */	fu16_t hdrtype;		/* 6 */#endif	char bcookie[8];	/* 8 */	fu16_t encrypt;		/* 16 */	fu16_t compress;	/* 18 */	fu16_t totfiles;	/* 20 */	fu16_t filesleft;	/* 22 */	fu16_t totparts;	/* 24 */	fu16_t partsleft;	/* 26 */	fu32_t totsize;		/* 28 */	fu32_t size;		/* 32 */	fu32_t modtime;		/* 36 */	fu32_t checksum;	/* 40 */	fu32_t rfrcsum;		/* 44 */	fu32_t rfsize;		/* 48 */	fu32_t cretime;		/* 52 */	fu32_t rfcsum;		/* 56 */	fu32_t nrecvd;		/* 60 */	fu32_t recvcsum;	/* 64 */	fu8_t idstring[32];	/* 68 */	fu8_t flags;		/* 100 */	fu8_t lnameoffset;	/* 101 */	fu8_t lsizeoffset;	/* 102 */	char dummy[69];		/* 103 */	char macfileinfo[16];	/* 172 */	fu16_t nencode;		/* 188 */	fu16_t nlanguage;	/* 190 */	char name[64];		/* 192 */				/* 256 */};struct aim_oft_info {	char cookie[8];	char *sn;	char *proxyip;	char *clientip;	char *verifiedip;	fu16_t port;	aim_conn_t *conn;	aim_session_t *sess;	struct aim_fileheader_t fh;	struct aim_oft_info *next;};faim_export fu32_t aim_oft_checksum_chunk(const fu8_t *buffer, int bufferlen, fu32_t prevcheck);faim_export fu32_t aim_oft_checksum_file(char *filename);faim_export int aim_handlerendconnect(aim_session_t *sess, aim_conn_t *cur);faim_export int aim_odc_send_typing(aim_session_t *sess, aim_conn_t *conn, int typing);faim_export int aim_odc_send_im(aim_session_t *sess, aim_conn_t *conn, const char *msg, int len, int encoding, int isawaymsg);faim_export const char *aim_odc_getsn(aim_conn_t *conn);faim_export const char *aim_odc_getcookie(aim_conn_t *conn);faim_export aim_conn_t *aim_odc_getconn(aim_session_t *sess, const char *sn);faim_export aim_conn_t *aim_odc_initiate(aim_session_t *sess, const char *sn, int listenfd,                                         const fu8_t *localip, fu16_t port, const fu8_t *mycookie);faim_export aim_conn_t *aim_odc_connect(aim_session_t *sess, const char *sn, const char *addr, const fu8_t *cookie);faim_export struct aim_oft_info *aim_oft_createinfo(aim_session_t *sess, const fu8_t *cookie, const char *sn, const char *ip, fu16_t port, fu32_t size, fu32_t modtime, char *filename);faim_export int aim_oft_destroyinfo(struct aim_oft_info *oft_info);faim_export int aim_sendfile_listen(aim_session_t *sess, struct aim_oft_info *oft_info, int listenfd);faim_export int aim_oft_sendheader(aim_session_t *sess, fu16_t type, struct aim_oft_info *oft_info);/* 0x0002 - locate.c *//* * AIM User Info, Standard Form. */#define AIM_FLAG_UNCONFIRMED	0x0001 /* "damned transients" */#define AIM_FLAG_ADMINISTRATOR	0x0002#define AIM_FLAG_AOL			0x0004#define AIM_FLAG_OSCAR_PAY		0x0008#define AIM_FLAG_FREE 			0x0010#define AIM_FLAG_AWAY			0x0020#define AIM_FLAG_ICQ			0x0040#define AIM_FLAG_WIRELESS		0x0080#define AIM_FLAG_UNKNOWN100		0x0100#define AIM_FLAG_UNKNOWN200		0x0200#define AIM_FLAG_ACTIVEBUDDY	0x0400#define AIM_FLAG_UNKNOWN800		0x0800#define AIM_FLAG_ABINTERNAL		0x1000#define AIM_FLAG_ALLUSERS		0x001f#define AIM_USERINFO_PRESENT_FLAGS        0x00000001#define AIM_USERINFO_PRESENT_MEMBERSINCE  0x00000002#define AIM_USERINFO_PRESENT_ONLINESINCE  0x00000004#define AIM_USERINFO_PRESENT_IDLE         0x00000008#define AIM_USERINFO_PRESENT_ICQEXTSTATUS 0x00000010#define AIM_USERINFO_PRESENT_ICQIPADDR    0x00000020#define AIM_USERINFO_PRESENT_ICQDATA      0x00000040#define AIM_USERINFO_PRESENT_CAPABILITIES 0x00000080#define AIM_USERINFO_PRESENT_SESSIONLEN   0x00000100#define AIM_USERINFO_PRESENT_CREATETIME   0x00000200struct userinfo_node {	char *sn;	struct userinfo_node *next;};typedef struct aim_userinfo_s {	char *sn;	fu16_t warnlevel; /* evil percent * 10 (999 = 99.9%) */	fu16_t idletime; /* in seconds */	fu16_t flags;	fu32_t createtime; /* time_t */	fu32_t membersince; /* time_t */	fu32_t onlinesince; /* time_t */	fu32_t sessionlen;  /* in seconds */	fu32_t capabilities;	struct {		fu32_t status;		fu32_t ipaddr;		fu8_t crap[0x25]; /* until we figure it out... */	} icqinfo;	fu32_t present;	fu16_t iconcsumlen;	fu8_t *iconcsum;	char *info;	char *info_encoding;	fu16_t info_len;	char *avail;	char *avail_encoding;	fu16_t avail_len;	char *away;	char *away_encoding;	fu16_t away_len;	struct aim_userinfo_s *next;} aim_userinfo_t;#define AIM_CAPS_BUDDYICON		0x00000001#define AIM_CAPS_TALK			0x00000002#define AIM_CAPS_DIRECTIM		0x00000004#define AIM_CAPS_CHAT			0x00000008#define AIM_CAPS_GETFILE		0x00000010#define AIM_CAPS_SENDFILE		0x00000020#define AIM_CAPS_GAMES			0x00000040#define AIM_CAPS_ADDINS			0x00000080#define AIM_CAPS_SENDBUDDYLIST	0x00000100#define AIM_CAPS_GAMES2			0x00000200#define AIM_CAPS_ICQ_DIRECT		0x00000400#define AIM_CAPS_APINFO			0x00000800#define AIM_CAPS_ICQRTF			0x00001000#define AIM_CAPS_EMPTY			0x00002000#define AIM_CAPS_ICQSERVERRELAY	0x00004000#define AIM_CAPS_ICQUTF8OLD		0x00008000#define AIM_CAPS_TRILLIANCRYPT	0x00010000#define AIM_CAPS_ICQUTF8		0x00020000#define AIM_CAPS_INTEROPERATE	0x00040000#define AIM_CAPS_ICHAT			0x00080000#define AIM_CAPS_HIPTOP			0x00100000#define AIM_CAPS_SECUREIM		0x00200000#define AIM_CAPS_SMS			0x00400000#define AIM_CAPS_GENERICUNKNOWN	0x00800000#define AIM_CAPS_VIDEO			0x01000000#define AIM_CAPS_ICHATAV		0x02000000#define AIM_CAPS_LIVEVIDEO		0x04000000#define AIM_CAPS_CAMERA			0x08000000#define AIM_CAPS_LAST			0x10000000#define AIM_SENDMEMBLOCK_FLAG_ISREQUEST  0#define AIM_SENDMEMBLOCK_FLAG_ISHASH     1faim_export int aim_sendmemblock(aim_session_t *sess, aim_conn_t *conn, fu32_t offset, fu32_t len, const fu8_t *buf, fu8_t flag);struct aim_invite_priv {	char *sn;	char *roomname;	fu16_t exchange;	fu16_t instance;};#define AIM_COOKIETYPE_UNKNOWN  0x00#define AIM_COOKIETYPE_ICBM     0x01#define AIM_COOKIETYPE_ADS      0x02#define AIM_COOKIETYPE_BOS      0x03#define AIM_COOKIETYPE_IM       0x04#define AIM_COOKIETYPE_CHAT     0x05#define AIM_COOKIETYPE_CHATNAV  0x06#define AIM_COOKIETYPE_INVITE   0x07/* we'll move OFT up a bit to give breathing room.  not like it really * matters. */#define AIM_COOKIETYPE_OFTIM    0x10#define AIM_COOKIETYPE_OFTGET   0x11#define AIM_COOKIETYPE_OFTSEND  0x12#define AIM_COOKIETYPE_OFTVOICE 0x13#define AIM_COOKIETYPE_OFTIMAGE 0x14#define AIM_COOKIETYPE_OFTICON  0x15faim_export aim_userinfo_t *aim_locate_finduserinfo(aim_session_t *sess, const char *sn);faim_export void aim_locate_dorequest(aim_session_t *sess);/* 0x0002 */ faim_export int aim_locate_reqrights(aim_session_t *sess);/* 0x0004 */ faim_export int aim_locate_setprofile(aim_session_t *sess, const char *profile_encoding, const char *profile, const int profile_len, const char *awaymsg_encoding, const char *awaymsg, const int awaymsg_len);/* 0x0004 */ faim_export int aim_locate_setcaps(aim_session_t *sess, fu32_t caps);/* 0x0005 */ faim_export int aim_locate_getinfo(aim_session_t *sess, const char *, fu16_t);/* 0x0009 */ faim_export int aim_locate_setdirinfo(aim_session_t *sess, const char *first, const char *middle, const char *last, const char *maiden, const char *nickname, const char *street, const char *city, const char *state, const char *zip, int country, fu16_t privacy);/* 0x000b */ faim_export int aim_locate_000b(aim_session_t *sess, const char *sn);/* 0x000f */ faim_export int aim_locate_setinterests(aim_session_t *sess, const char *interest1, const char *interest2, const char *interest3, const char *interest4, const char *interest5, fu16_t privacy);/* 0x0015 */ faim_export int aim_locate_getinfoshort(aim_session_t *sess, const char *sn, fu32_t flags);/* 0x0003 - buddylist.c *//* 0x0002 */ faim_export int aim_buddylist_reqrights(aim_session_t *, aim_conn_t *);/* 0x0004 */ faim_export int aim_buddylist_set(aim_session_t *, aim_conn_t *, const char *);/* 0x0004 */ faim_export int aim_buddylist_addbuddy(aim_session_t *, aim_conn_t *, const char *);/* 0x0005 */ faim_export int aim_buddylist_removebuddy(aim_session_t *, aim_conn_t *, const char *);/* 0x000b */ faim_export int aim_buddylist_oncoming(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *info);/* 0x000c */ faim_export int aim_buddylist_offgoing(aim_session_t *sess, aim_conn_t *conn, const char *sn);/* 0x000a - search.c */faim_export int aim_search_address(aim_session_t *, aim_conn_t *, const char *);/* 0x000d - chatnav.c *//* 0x000e - chat.c *//* These apply to exchanges as well. */#define AIM_CHATROOM_FLAG_EVILABLE 0x0001#define AIM_CHATROOM_FLAG_NAV_ONLY 0x0002#define AIM_CHATROOM_FLAG_INSTANCING_ALLOWED 0x0004#define AIM_CHATROOM_FLAG_OCCUPANT_PEEK_ALLOWED 0x0008struct aim_chat_exchangeinfo {	fu16_t number;	fu16_t flags;	char *name;	char *charset1;	char *lang1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -