X-Git-Url: http://andersk.mit.edu/gitweb/libfaim.git/blobdiff_plain/50038c743397ba3020dcc7611292764fdd9d6ae9..1dcd23dd5076d2a9d2e9d23f9ac025173f5aa346:/include/aim.h diff --git a/include/aim.h b/include/aim.h index 16217d5..bb3b8d6 100644 --- a/include/aim.h +++ b/include/aim.h @@ -260,6 +260,7 @@ struct aim_conn_t { struct aim_rxcblist_t *handlerlist; faim_mutex_t active; /* lock around read/writes */ faim_mutex_t seqnum_lock; /* lock around ->seqnum changes */ + void *sessv; struct aim_conn_t *next; }; @@ -514,6 +515,7 @@ faim_export int aim_conn_setlatency(struct aim_conn_t *conn, int newval); faim_export int aim_conn_addhandler(struct aim_session_t *, struct aim_conn_t *conn, u_short family, u_short type, aim_rxcallback_t newhandler, u_short flags); faim_export int aim_clearhandlers(struct aim_conn_t *conn); +faim_export struct aim_session_t *aim_conn_getsess(struct aim_conn_t *conn); faim_export void aim_conn_close(struct aim_conn_t *deadconn); faim_export struct aim_conn_t *aim_newconn(struct aim_session_t *, int type, char *dest); faim_export int aim_conngetmaxfd(struct aim_session_t *); @@ -529,6 +531,8 @@ faim_export void aim_session_init(struct aim_session_t *, unsigned long flags, i faim_export void aim_session_kill(struct aim_session_t *); faim_export void aim_setupproxy(struct aim_session_t *sess, char *server, char *username, char *password); faim_export struct aim_conn_t *aim_getconn_type(struct aim_session_t *, int type); +faim_export struct aim_conn_t *aim_getconn_type_all(struct aim_session_t *, int type); +faim_export struct aim_conn_t *aim_getconn_fd(struct aim_session_t *, int fd); /* aim_misc.c */ @@ -542,13 +546,13 @@ faim_export struct aim_conn_t *aim_getconn_type(struct aim_session_t *, int type #define AIM_WARN_ANON 0x01 -faim_export int aim_send_warning(struct aim_session_t *sess, struct aim_conn_t *conn, char *destsn, int anon); +faim_export int aim_send_warning(struct aim_session_t *sess, struct aim_conn_t *conn, const char *destsn, unsigned long flags); faim_export unsigned long aim_bos_nop(struct aim_session_t *, struct aim_conn_t *); faim_export unsigned long aim_flap_nop(struct aim_session_t *sess, struct aim_conn_t *conn); faim_export unsigned long aim_bos_setidle(struct aim_session_t *, struct aim_conn_t *, u_long); faim_export unsigned long aim_bos_changevisibility(struct aim_session_t *, struct aim_conn_t *, int, char *); faim_export unsigned long aim_bos_setbuddylist(struct aim_session_t *, struct aim_conn_t *, char *); -faim_export unsigned long aim_bos_setprofile(struct aim_session_t *, struct aim_conn_t *, char *, char *, unsigned short); +faim_export unsigned long aim_bos_setprofile(struct aim_session_t *sess, struct aim_conn_t *conn, const char *profile, const char *awaymsg, unsigned short caps); faim_export unsigned long aim_bos_setgroupperm(struct aim_session_t *, struct aim_conn_t *, u_long); faim_export unsigned long aim_bos_clientready(struct aim_session_t *, struct aim_conn_t *); faim_export unsigned long aim_bos_reqrate(struct aim_session_t *, struct aim_conn_t *); @@ -632,17 +636,17 @@ struct aim_fileheader_t { }; struct aim_filetransfer_priv { - char sn[MAXSNLEN]; - char cookie[8]; - char ip[30]; - int state; - struct aim_fileheader_t fh; + char sn[MAXSNLEN]; + char cookie[8]; + char ip[30]; + int state; + struct aim_fileheader_t fh; }; struct aim_chat_roominfo { - u_short exchange; - char *name; - u_short instance; + unsigned short exchange; + char *name; + unsigned short instance; }; #define AIM_IMFLAGS_AWAY 0x01 /* mark as an autoreply */ @@ -651,57 +655,60 @@ struct aim_chat_roominfo { #define AIM_IMFLAGS_ISO_8859_1 0x08 #define AIM_IMFLAGS_BUDDYREQ 0x10 /* buddy icon requested */ #define AIM_IMFLAGS_HASICON 0x20 /* already has icon (timestamp included) */ +#define AIM_IMFLAGS_SUBENC_MACINTOSH 0x40 /* damn that Steve Jobs! */ struct aim_sendimext_args { - const char *destsn; - unsigned short flags; - const char *msg; - int msglen; - int iconlen; - time_t iconstamp; - unsigned short iconsum; + const char *destsn; + unsigned short flags; + const char *msg; + int msglen; + int iconlen; + time_t iconstamp; + unsigned short iconsum; }; struct aim_incomingim_ch1_args { - char *msg; - int msglen; - unsigned long icbmflags; - unsigned short flag1; - unsigned short flag2; - int finlen; - unsigned char fingerprint[10]; - time_t iconstamp; + char *msg; + int msglen; + unsigned long icbmflags; + unsigned short flag1; + unsigned short flag2; + int finlen; + unsigned char fingerprint[10]; + time_t iconstamp; + int extdatalen; + unsigned char *extdata; }; struct aim_incomingim_ch2_args { - unsigned short reqclass; - unsigned short status; - union { - struct { - unsigned int length; - time_t timestamp; - unsigned char *icon; - } icon; - struct { - } voice; - struct aim_directim_priv *directim; - struct { - char *msg; - char *encoding; - char *lang; - struct aim_chat_roominfo roominfo; - } chat; - struct { - char *ip; - unsigned char *cookie; - } getfile; - struct { - } sendfile; - } info; + unsigned short reqclass; + unsigned short status; + union { + struct { + unsigned int length; + time_t timestamp; + unsigned char *icon; + } icon; + struct { + } voice; + struct aim_directim_priv *directim; + struct { + char *msg; + char *encoding; + char *lang; + struct aim_chat_roominfo roominfo; + } chat; + struct { + char *ip; + unsigned char *cookie; + } getfile; + struct { + } sendfile; + } info; }; -faim_export unsigned long aim_send_im_ext(struct aim_session_t *sess, struct aim_conn_t *conn, struct aim_sendimext_args *args); -faim_export unsigned long aim_send_im(struct aim_session_t *, struct aim_conn_t *, const char *destsn, unsigned short flags, const char *msg); +faim_export int aim_send_im_ext(struct aim_session_t *sess, struct aim_conn_t *conn, struct aim_sendimext_args *args); +faim_export int aim_send_im(struct aim_session_t *, struct aim_conn_t *, const char *destsn, unsigned short flags, const char *msg); faim_export int aim_send_icon(struct aim_session_t *sess, struct aim_conn_t *conn, const char *sn, const unsigned char *icon, int iconlen, time_t stamp, unsigned short iconsum); faim_export unsigned short aim_iconsum(const unsigned char *buf, int buflen); faim_export int aim_send_im_direct(struct aim_session_t *, struct aim_conn_t *, char *);