]> andersk Git - libfaim.git/blobdiff - include/aim.h
- Sat Sep 8 07:32:27 PDT 2001
[libfaim.git] / include / aim.h
index fc125fa58ca1cc2068d5add9effae74d3eac2305..ffd7c8c625fc2f375417b8379e44481e9cf849fc 100644 (file)
@@ -268,6 +268,7 @@ typedef struct aim_conn_s {
        flap_seqnum_t seqnum;
        fu32_t status;
        void *priv; /* misc data the client may want to store */
+       void *internal; /* internal conn-specific libfaim data */
        time_t lastactivity; /* time of last transmit */
        int forcedlatency; 
        void *handlerlist;
@@ -609,11 +610,6 @@ faim_export int aim_ads_clientready(aim_session_t *sess, aim_conn_t *conn);
 faim_export int aim_ads_requestads(aim_session_t *sess, aim_conn_t *conn);
 
 /* aim_im.c */
-struct aim_directim_priv {
-       fu8_t cookie[8];
-       char sn[MAXSNLEN+1];
-       fu8_t ip[30];
-};
 
 struct aim_fileheader_t {
 #if 0
@@ -664,42 +660,61 @@ struct aim_chat_roominfo {
        unsigned short instance;
 };
 
-#define AIM_IMFLAGS_AWAY 0x01 /* mark as an autoreply */
-#define AIM_IMFLAGS_ACK  0x02 /* request a receipt notice */
-#define AIM_IMFLAGS_UNICODE    0x04
-#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! */
+#define AIM_IMFLAGS_AWAY               0x0001 /* mark as an autoreply */
+#define AIM_IMFLAGS_ACK                        0x0002 /* request a receipt notice */
+#define AIM_IMFLAGS_UNICODE            0x0004
+#define AIM_IMFLAGS_ISO_8859_1         0x0008
+#define AIM_IMFLAGS_BUDDYREQ           0x0010 /* buddy icon requested */
+#define AIM_IMFLAGS_HASICON            0x0020 /* already has icon */
+#define AIM_IMFLAGS_SUBENC_MACINTOSH   0x0040 /* damn that Steve Jobs! */
+#define AIM_IMFLAGS_CUSTOMFEATURES     0x0080 /* features field present */
+#define AIM_IMFLAGS_EXTDATA            0x0100
 
 struct aim_sendimext_args {
+
+       /* These are _required_ */
        const char *destsn;
-       unsigned short flags;
+       fu32_t flags;
        const char *msg;
        int msglen;
-       int iconlen;
+
+       /* Only used if AIM_IMFLAGS_HASICON is set */
+       fu32_t iconlen;
        time_t iconstamp;
-       unsigned short iconsum;
+       fu32_t iconsum;
+
+       /* Only used if AIM_IMFLAGS_CUSTOMFEATURES is set */
+       fu8_t *features;
+       fu8_t featureslen;
 };
 
 struct aim_incomingim_ch1_args {
+
+       /* Always provided */
        char *msg;
        int msglen;
-       unsigned long icbmflags;
-       unsigned short flag1;
-       unsigned short flag2;
-       int finlen;
-       unsigned char fingerprint[10];
+       fu32_t icbmflags;
+       fu16_t flag1;
+       fu16_t flag2;
+
+       /* Only provided if AIM_IMFLAGS_HASICON is set */
        time_t iconstamp;
-       unsigned long iconlength;
-       unsigned long iconchecksum;  
-       int extdatalen;
-       unsigned char *extdata;
+       fu32_t iconlen;
+       fu32_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;
 };
 
 struct aim_incomingim_ch2_args {
-       unsigned short reqclass;
-       unsigned short status;
+       fu8_t cookie[8];
+       fu16_t reqclass;
+       fu16_t status;
        union {
                struct {
                        fu32_t checksum;
@@ -709,7 +724,9 @@ struct aim_incomingim_ch2_args {
                } icon;
                struct {
                } voice;
-               struct aim_directim_priv *directim;
+               struct {
+                       fu8_t ip[22]; /* xxx.xxx.xxx.xxx:xxxxx\0 */
+               } imimage;
                struct {
                        char *msg;
                        char *encoding;
@@ -730,8 +747,9 @@ faim_export int aim_send_im(aim_session_t *, aim_conn_t *, const char *destsn, u
 faim_export int aim_send_icon(aim_session_t *sess, aim_conn_t *conn, const char *sn, const fu8_t *icon, int iconlen, time_t stamp, fu32_t iconsum);
 faim_export fu32_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 aim_conn_t *aim_directim_initiate(aim_session_t *, aim_conn_t *, struct aim_directim_priv *, const char *destsn);
-faim_export aim_conn_t *aim_directim_connect(aim_session_t *, aim_conn_t *, struct aim_directim_priv *);
+faim_export const char *aim_directim_getsn(aim_conn_t *conn);
+faim_export aim_conn_t *aim_directim_initiate(aim_session_t *, aim_conn_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_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);
This page took 0.047393 seconds and 4 git commands to generate.