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

📄 aim.h

📁 AnyQ服务端源代码(2004/10/28)源码
💻 H
📖 第 1 页 / 共 3 页
字号:
	fu16_t charset;	fu16_t charsubset;};/* * 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;};struct aim_incomingim_ch2_args {	fu8_t cookie[8];	fu16_t reqclass;	fu16_t status;	union {		struct {			fu32_t checksum;			fu32_t length;			time_t timestamp;			fu8_t *icon;		} icon;		struct {			fu8_t junk;		} voice;		struct {			fu8_t ip[22]; /* xxx.xxx.xxx.xxx:xxxxx\0 */		} imimage;		struct {			char *msg;			char *encoding;			char *lang;		struct aim_chat_roominfo roominfo;		} chat;		struct {			char *ip;			unsigned char *cookie;		} getfile;		struct {			fu8_t junk;		} sendfile;	} info;};faim_export int aim_send_im_ext(aim_session_t *sess, struct aim_sendimext_args *args);faim_export int aim_send_im(aim_session_t *, const char *destsn, unsigned short flags, const char *msg);faim_export int aim_send_icon(aim_session_t *sess, const char *sn, const fu8_t *icon, int iconlen, time_t stamp, fu16_t iconsum);faim_export fu16_t aim_iconsum(const fu8_t *buf, int buflen);faim_export int aim_send_im_direct(aim_session_t *, aim_conn_t *, const char *msg);faim_export const char *aim_directim_getsn(aim_conn_t *conn);faim_export aim_conn_t *aim_directim_initiate(aim_session_t *, const char *destsn);faim_export aim_conn_t *aim_directim_connect(aim_session_t *, const char *sn, const char *addr, const fu8_t *cookie);faim_export aim_conn_t *aim_sendfile_initiate(aim_session_t *, const char *destsn, const char *filename, fu16_t numfiles, fu32_t totsize);faim_export aim_conn_t *aim_getfile_initiate(aim_session_t *sess, aim_conn_t *conn, const char *destsn);faim_export int aim_oft_getfile_request(aim_session_t *sess, aim_conn_t *conn, const char *name, int size);faim_export int aim_oft_getfile_ack(aim_session_t *sess, aim_conn_t *conn);faim_export int aim_oft_getfile_end(aim_session_t *sess, aim_conn_t *conn);/* aim_info.c */#define AIM_CAPS_BUDDYICON      0x0001#define AIM_CAPS_VOICE          0x0002#define AIM_CAPS_IMIMAGE        0x0004#define AIM_CAPS_CHAT           0x0008#define AIM_CAPS_GETFILE        0x0010#define AIM_CAPS_SENDFILE       0x0020#define AIM_CAPS_GAMES          0x0040#define AIM_CAPS_SAVESTOCKS     0x0080#define AIM_CAPS_SENDBUDDYLIST  0x0100#define AIM_CAPS_GAMES2         0x0200#define AIM_CAPS_ICQ            0x0400#define AIM_CAPS_ABINTERNAL     0x0800#define AIM_CAPS_LAST           0x8000faim_export int aim_0002_000b(aim_session_t *sess, aim_conn_t *conn, const char *sn);#define AIM_SENDMEMBLOCK_FLAG_ISREQUEST  0#define AIM_SENDMEMBLOCK_FLAG_ISHASH     1faim_export int aim_sendmemblock(aim_session_t *sess, aim_conn_t *conn, unsigned long offset, unsigned long len, const unsigned char *buf, unsigned char flag);#define AIM_GETINFO_GENERALINFO 0x00001#define AIM_GETINFO_AWAYMESSAGE 0x00003struct 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 int aim_handlerendconnect(aim_session_t *sess, aim_conn_t *cur);#define AIM_TRANSFER_DENY_NOTSUPPORTED 0x0000#define AIM_TRANSFER_DENY_DECLINE 0x0001#define AIM_TRANSFER_DENY_NOTACCEPTING 0x0002faim_export int aim_denytransfer(aim_session_t *sess, const char *sender, const char *cookie, unsigned short code);faim_export aim_conn_t *aim_accepttransfer(aim_session_t *sess, aim_conn_t *conn, const char *sn, const fu8_t *cookie, const fu8_t *ip, fu16_t listingfiles, fu16_t listingtotsize, fu16_t listingsize, fu32_t listingchecksum, fu16_t rendid);faim_export int aim_getinfo(aim_session_t *, aim_conn_t *, const char *, unsigned short);faim_export int aim_sendbuddyoncoming(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *info);faim_export int aim_sendbuddyoffgoing(aim_session_t *sess, aim_conn_t *conn, const char *sn);#define AIM_IMPARAM_FLAG_CHANMSGS_ALLOWED	0x00000001#define AIM_IMPARAM_FLAG_MISSEDCALLS_ENABLED	0x00000002/* This is what the server will give you if you don't set them yourself. */#define AIM_IMPARAM_DEFAULTS { \	0, \	AIM_IMPARAM_FLAG_CHANMSGS_ALLOWED | AIM_IMPARAM_FLAG_MISSEDCALLS_ENABLED, \	512, /* !! Note how small this is. */ \	(99.9)*10, (99.9)*10, \	1000 /* !! And how large this is. */ \}/* This is what most AIM versions use. */#define AIM_IMPARAM_REASONABLE { \	0, \	AIM_IMPARAM_FLAG_CHANMSGS_ALLOWED | AIM_IMPARAM_FLAG_MISSEDCALLS_ENABLED, \	8000, \	(99.9)*10, (99.9)*10, \	0 \}struct aim_icbmparameters {	unsigned short maxchan;	unsigned long flags; /* AIM_IMPARAM_FLAG_ */	unsigned short maxmsglen; /* message size that you will accept */	unsigned short maxsenderwarn; /* this and below are *10 (999=99.9%) */	unsigned short maxrecverwarn;	unsigned long minmsginterval; /* in milliseconds? */};faim_export int aim_reqicbmparams(aim_session_t *sess);faim_export int aim_seticbmparam(aim_session_t *sess, struct aim_icbmparameters *params);/* auth.c */faim_export int aim_sendcookie(aim_session_t *, aim_conn_t *, const fu8_t *);faim_export int aim_admin_changepasswd(aim_session_t *, aim_conn_t *, const char *newpw, const char *curpw);faim_export int aim_admin_reqconfirm(aim_session_t *sess, aim_conn_t *conn);faim_export int aim_admin_getinfo(aim_session_t *sess, aim_conn_t *conn, fu16_t info);faim_export int aim_admin_setemail(aim_session_t *sess, aim_conn_t *conn, const char *newemail);/* aim_buddylist.c */faim_export int aim_add_buddy(aim_session_t *, aim_conn_t *, const char *);faim_export int aim_remove_buddy(aim_session_t *, aim_conn_t *, const char *);/* aim_search.c */faim_export int aim_usersearch_address(aim_session_t *, aim_conn_t *, const char *);/* 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;	char *charset2;	char *lang2;};#define AIM_CHATFLAGS_NOREFLECT 0x0001#define AIM_CHATFLAGS_AWAY      0x0002faim_export int aim_chat_send_im(aim_session_t *sess, aim_conn_t *conn, fu16_t flags, const char *msg, int msglen);faim_export int aim_chat_join(aim_session_t *sess, aim_conn_t *conn, fu16_t exchange, const char *roomname, fu16_t instance);faim_export int aim_chat_attachname(aim_conn_t *conn, fu16_t exchange, const char *roomname, fu16_t instance);faim_export char *aim_chat_getname(aim_conn_t *conn);faim_export aim_conn_t *aim_chat_getconn(aim_session_t *, const char *name);faim_export int aim_chatnav_reqrights(aim_session_t *sess, aim_conn_t *conn);faim_export int aim_chat_invite(aim_session_t *sess, aim_conn_t *conn, const char *sn, const char *msg, fu16_t exchange, const char *roomname, fu16_t instance);faim_export int aim_chatnav_createroom(aim_session_t *sess, aim_conn_t *conn, const char *name, fu16_t exchange);faim_export int aim_chat_leaveroom(aim_session_t *sess, const char *name);#define AIM_SSI_TYPE_BUDDY         0x0000#define AIM_SSI_TYPE_GROUP         0x0001#define AIM_SSI_TYPE_PERMITLIST    0x0002#define AIM_SSI_TYPE_DENYLIST      0x0003#define AIM_SSI_TYPE_PDINFO        0x0004#define AIM_SSI_TYPE_PRESENCEPREFS 0x0005struct aim_ssi_item {	char *name;	fu16_t gid;	fu16_t bid;	fu16_t type;	void *data;	struct aim_ssi_item *next;};faim_export int aim_ssi_reqrights(aim_session_t *sess, aim_conn_t *conn);faim_export int aim_ssi_reqdata(aim_session_t *sess, aim_conn_t *conn, time_t localstamp, fu16_t localrev);faim_export int aim_ssi_enable(aim_session_t *sess, aim_conn_t *conn);faim_export int aim_ssi_modbegin(aim_session_t *sess, aim_conn_t *conn);faim_export int aim_ssi_modend(aim_session_t *sess, aim_conn_t *conn);struct aim_icq_offlinemsg {	fu32_t sender;	fu16_t year;	fu8_t month, day, hour, minute;	fu16_t type;	char *msg;};struct aim_icq_simpleinfo {	fu32_t uin;	char *nick;	char *first;	char *last;	char *email;};struct aim_icq_smsresponse {	fu16_t type;	char *tag;	char *xml;};faim_export int aim_icq_reqofflinemsgs(aim_session_t *sess);faim_export int aim_icq_ackofflinemsgs(aim_session_t *sess);faim_export int aim_icq_getsimpleinfo(aim_session_t *sess, const char *uin);/* aim_util.c *//* * These are really ugly.  You'd think this was LISP.  I wish it was. * * XXX With the advent of bstream's, these should be removed to enforce * their use. * */#define aimutil_put8(buf, data) ((*(buf) = (u_char)(data)&0xff),1)#define aimutil_get8(buf) ((*(buf))&0xff)#define aimutil_put16(buf, data) ( \		(*(buf) = (u_char)((data)>>8)&0xff), \		(*((buf)+1) = (u_char)(data)&0xff),  \		2)#define aimutil_get16(buf) ((((*(buf))<<8)&0xff00) + ((*((buf)+1)) & 0xff))#define aimutil_put32(buf, data) ( \		(*((buf)) = (u_char)((data)>>24)&0xff), \		(*((buf)+1) = (u_char)((data)>>16)&0xff), \		(*((buf)+2) = (u_char)((data)>>8)&0xff), \		(*((buf)+3) = (u_char)(data)&0xff), \		4)#define aimutil_get32(buf) ((((*(buf))<<24)&0xff000000) + \		(((*((buf)+1))<<16)&0x00ff0000) + \		(((*((buf)+2))<< 8)&0x0000ff00) + \		(((*((buf)+3)    )&0x000000ff)))/* Little-endian versions (damn ICQ) */#define aimutil_putle8(buf, data) ( \		(*(buf) = (unsigned char)(data) & 0xff), \		1)#define aimutil_getle8(buf) ( \		(*(buf)) & 0xff \		)#define aimutil_putle16(buf, data) ( \		(*((buf)+0) = (unsigned char)((data) >> 0) & 0xff),  \		(*((buf)+1) = (unsigned char)((data) >> 8) & 0xff), \		2)#define aimutil_getle16(buf) ( \		(((*((buf)+0)) << 0) & 0x00ff) + \		(((*((buf)+1)) << 8) & 0xff00) \		)#define aimutil_putle32(buf, data) ( \		(*((buf)+0) = (unsigned char)((data) >>  0) & 0xff), \		(*((buf)+1) = (unsigned char)((data) >>  8) & 0xff), \		(*((buf)+2) = (unsigned char)((data) >> 16) & 0xff), \		(*((buf)+3) = (unsigned char)((data) >> 24) & 0xff), \		4)#define aimutil_getle32(buf) ( \		(((*((buf)+0)) <<  0) & 0x000000ff) + \		(((*((buf)+1)) <<  8) & 0x0000ff00) + \		(((*((buf)+2)) << 16) & 0x00ff0000) + \		(((*((buf)+3)) << 24) & 0xff000000))faim_export int aimutil_putstr(u_char *, const char *, int);faim_export int aimutil_tokslen(char *toSearch, int index, char dl);faim_export int aimutil_itemcnt(char *toSearch, char dl);faim_export char *aimutil_itemidx(char *toSearch, int index, char dl);faim_export int aim_snlen(const char *sn);faim_export int aim_sncmp(const char *sn1, const char *sn2);/* for libc's that dont have it */faim_export char *aim_strsep(char **pp, const char *delim);/* aim_meta.c */faim_export char *aim_getbuilddate(void);faim_export char *aim_getbuildtime(void);faim_export int aim_getbuildstring(char *buf, int buflen);#include <aim_internal.h>#endif /* __AIM_H__ */

⌨️ 快捷键说明

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