Ignore:
Timestamp:
2012-10-19T23:38:33Z (12 years ago)
Author:
Wilmer van der Gaast <wilmer@…>
Branches:
master
Children:
509cf60
Parents:
386042c
Message:

Massive cleanup in OSCAR.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/oscar/info.c

    r386042c r6042a54  
    4040        return 0;
    4141}
    42 
    43 const char *aim_userinfo_sn(aim_userinfo_t *ui)
    44 {
    45 
    46         if (!ui)
    47                 return NULL;
    48 
    49         return ui->sn;
    50 }
    51 
    52 guint16 aim_userinfo_flags(aim_userinfo_t *ui)
    53 {
    54 
    55         if (!ui)
    56                 return 0;
    57 
    58         return ui->flags;
    59 }
    60 
    61 guint16 aim_userinfo_idle(aim_userinfo_t *ui)
    62 {
    63 
    64         if (!ui)
    65                 return 0;
    66 
    67         return ui->idletime;
    68 }
    69 
    70 float aim_userinfo_warnlevel(aim_userinfo_t *ui)
    71 {
    72 
    73         if (!ui)
    74                 return 0.00;
    75 
    76         return (ui->warnlevel / 10);
    77 }
    78 
    79 time_t aim_userinfo_membersince(aim_userinfo_t *ui)
    80 {
    81 
    82         if (!ui)
    83                 return 0;
    84 
    85         return (time_t)ui->membersince;
    86 }
    87 
    88 time_t aim_userinfo_onlinesince(aim_userinfo_t *ui)
    89 {
    90 
    91         if (!ui)
    92                 return 0;
    93 
    94         return (time_t)ui->onlinesince;
    95 }
    96 
    97 guint32 aim_userinfo_sessionlen(aim_userinfo_t *ui)
    98 {
    99 
    100         if (!ui)
    101                 return 0;
    102 
    103         return ui->sessionlen;
    104 }
    105 
    106 int aim_userinfo_hascap(aim_userinfo_t *ui, guint32 cap)
    107 {
    108 
    109         if (!ui || !(ui->present & AIM_USERINFO_PRESENT_CAPABILITIES))
    110                 return -1;
    111 
    112         return !!(ui->capabilities & cap);
    113 }
    114 
    11542
    11643/*
     
    482409                aim_bstream_setpos(bs, endpos);
    483410        }
    484 
    485         return 0;
    486 }
    487 
    488 /*
    489  * Inverse of aim_extractuserinfo()
    490  */
    491 int aim_putuserinfo(aim_bstream_t *bs, aim_userinfo_t *info)
    492 {
    493         aim_tlvlist_t *tlvlist = NULL;
    494 
    495         if (!bs || !info)
    496                 return -EINVAL;
    497 
    498         aimbs_put8(bs, strlen(info->sn));
    499         aimbs_putraw(bs, (guint8 *)info->sn, strlen(info->sn));
    500 
    501         aimbs_put16(bs, info->warnlevel);
    502 
    503 
    504         aim_addtlvtochain16(&tlvlist, 0x0001, info->flags);
    505         aim_addtlvtochain32(&tlvlist, 0x0002, info->membersince);
    506         aim_addtlvtochain32(&tlvlist, 0x0003, info->onlinesince);
    507         aim_addtlvtochain16(&tlvlist, 0x0004, info->idletime);
    508 
    509 #if ICQ_OSCAR_SUPPORT
    510         if (atoi(info->sn) != 0) {
    511                 aim_addtlvtochain16(&tlvlist, 0x0006, info->icqinfo.status);
    512                 aim_addtlvtochain32(&tlvlist, 0x000a, info->icqinfo.ipaddr);
    513         }
    514 #endif
    515 
    516         aim_addtlvtochain_caps(&tlvlist, 0x000d, info->capabilities);
    517 
    518         aim_addtlvtochain32(&tlvlist, (guint16)((info->flags & AIM_FLAG_AOL) ? 0x0010 : 0x000f), info->sessionlen);
    519 
    520         aimbs_put16(bs, aim_counttlvchain(&tlvlist));
    521         aim_writetlvchain(bs, &tlvlist);
    522         aim_freetlvchain(&tlvlist);
    523 
    524         return 0;
    525 }
    526 
    527 int aim_sendbuddyoncoming(aim_session_t *sess, aim_conn_t *conn, aim_userinfo_t *info)
    528 {
    529         aim_frame_t *fr;
    530         aim_snacid_t snacid;
    531 
    532         if (!sess || !conn || !info)
    533                 return -EINVAL;
    534 
    535         if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 1152)))
    536                 return -ENOMEM;
    537 
    538         snacid = aim_cachesnac(sess, 0x0003, 0x000b, 0x0000, NULL, 0);
    539        
    540         aim_putsnac(&fr->data, 0x0003, 0x000b, 0x0000, snacid);
    541         aim_putuserinfo(&fr->data, info);
    542 
    543         aim_tx_enqueue(sess, fr);
    544 
    545         return 0;
    546 }
    547 
    548 int aim_sendbuddyoffgoing(aim_session_t *sess, aim_conn_t *conn, const char *sn)
    549 {
    550         aim_frame_t *fr;
    551         aim_snacid_t snacid;
    552 
    553         if (!sess || !conn || !sn)
    554                 return -EINVAL;
    555 
    556         if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+1+strlen(sn))))
    557                 return -ENOMEM;
    558 
    559         snacid = aim_cachesnac(sess, 0x0003, 0x000c, 0x0000, NULL, 0);
    560        
    561         aim_putsnac(&fr->data, 0x0003, 0x000c, 0x0000, snacid);
    562         aimbs_put8(&fr->data, strlen(sn));
    563         aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn));
    564 
    565         aim_tx_enqueue(sess, fr);
    566 
    567         return 0;
    568 }
    569 
    570 /*
    571  * Huh? What is this?
    572  */
    573 int aim_0002_000b(aim_session_t *sess, aim_conn_t *conn, const char *sn)
    574 {
    575         aim_frame_t *fr;
    576         aim_snacid_t snacid;
    577 
    578         if (!sess || !conn || !sn)
    579                 return -EINVAL;
    580 
    581         if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+1+strlen(sn))))
    582                 return -ENOMEM;
    583 
    584         snacid = aim_cachesnac(sess, 0x0002, 0x000b, 0x0000, NULL, 0);
    585        
    586         aim_putsnac(&fr->data, 0x0002, 0x000b, 0x0000, snacid);
    587         aimbs_put8(&fr->data, strlen(sn));
    588         aimbs_putraw(&fr->data, (guint8 *)sn, strlen(sn));
    589 
    590         aim_tx_enqueue(sess, fr);
    591411
    592412        return 0;
Note: See TracChangeset for help on using the changeset viewer.