X-Git-Url: http://andersk.mit.edu/gitweb/libfaim.git/blobdiff_plain/7b91722d789da202fff87325dfb136c5bacd0846..2d5fd943961c036d5f0686eb15c7f608751eb65b:/include/aim.h diff --git a/include/aim.h b/include/aim.h index 1a49324..d850c1f 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; }; @@ -475,10 +476,10 @@ faim_export unsigned long aim_debugconn_sendconnect(struct aim_session_t *sess, faim_export int aim_logoff(struct aim_session_t *); -#ifndef FAIM_INTERNAL +#if !defined(FAIM_INTERNAL) || defined(FAIM_INTERNAL_INSANE) /* the library should never call aim_conn_kill */ faim_export void aim_conn_kill(struct aim_session_t *sess, struct aim_conn_t **deadconn); -#endif /* ndef FAIM_INTERNAL */ +#endif typedef int (*aim_rxcallback_t)(struct aim_session_t *, struct command_rx_struct *, ...); @@ -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 *); @@ -659,6 +663,7 @@ struct aim_sendimext_args { int msglen; int iconlen; time_t iconstamp; + unsigned short iconsum; }; struct aim_incomingim_ch1_args { @@ -699,9 +704,10 @@ struct aim_incomingim_ch2_args { } 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_icon(struct aim_session_t *sess, struct aim_conn_t *conn, const char *sn, const unsigned char *icon, int iconlen, time_t stamp); +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 *); faim_export struct aim_conn_t * aim_directim_initiate(struct aim_session_t *, struct aim_conn_t *, struct aim_directim_priv *, char *destsn); faim_export struct aim_conn_t *aim_directim_connect(struct aim_session_t *, struct aim_conn_t *, struct aim_directim_priv *);