Changeset 1f4fc80


Ignore:
Timestamp:
2009-12-12T01:04:43Z (14 years ago)
Author:
Miklos Vajna <vmiklos@…>
Branches:
master
Children:
7c300bb
Parents:
c213d6b
Message:

introduce skype_printf

File:
1 edited

Legend:

Unmodified
Added
Removed
  • skype/skype.c

    rc213d6b r1f4fc80  
    2121
    2222#define _XOPEN_SOURCE
     23#define _BSD_SOURCE
    2324#include <poll.h>
    2425#include <bitlbee.h>
     
    158159}
    159160
     161int skype_printf(struct im_connection *ic, char *fmt, ...)
     162{
     163        va_list args;
     164        char str[IRC_LINE_SIZE];
     165       
     166        va_start(args, fmt);
     167        vsnprintf(str, IRC_LINE_SIZE, fmt, args);
     168        va_end(args);
     169
     170        return skype_write(ic, str);
     171}
     172
    160173static void skype_buddy_ask_yes(void *data)
    161174{
    162175        struct skype_buddy_ask_data *bla = data;
    163         char *buf = g_strdup_printf("SET USER %s ISAUTHORIZED TRUE",
     176        skype_printf(bla->ic, "SET USER %s ISAUTHORIZED TRUE",
    164177                bla->handle);
    165         skype_write(bla->ic, buf);
    166         g_free(buf);
    167178        g_free(bla->handle);
    168179        g_free(bla);
     
    172183{
    173184        struct skype_buddy_ask_data *bla = data;
    174         char *buf = g_strdup_printf("SET USER %s ISAUTHORIZED FALSE",
     185        skype_printf(bla->ic, "SET USER %s ISAUTHORIZED FALSE",
    175186                bla->handle);
    176         skype_write(bla->ic, buf);
    177         g_free(buf);
    178187        g_free(bla->handle);
    179188        g_free(bla);
     
    198207{
    199208        struct skype_buddy_ask_data *bla = data;
    200         char *buf = g_strdup_printf("SET CALL %s STATUS INPROGRESS",
     209        skype_printf(bla->ic, "SET CALL %s STATUS INPROGRESS",
    201210                bla->handle);
    202         skype_write(bla->ic, buf);
    203         g_free(buf);
    204211        g_free(bla->handle);
    205212        g_free(bla);
     
    209216{
    210217        struct skype_buddy_ask_data *bla = data;
    211         char *buf = g_strdup_printf("SET CALL %s STATUS FINISHED",
     218        skype_printf(bla->ic, "SET CALL %s STATUS FINISHED",
    212219                bla->handle);
    213         skype_write(bla->ic, buf);
    214         g_free(buf);
    215220        g_free(bla->handle);
    216221        g_free(bla);
     
    272277static void skype_parse_users(struct im_connection *ic, char *line)
    273278{
    274         char **i, **nicks, *ptr;
     279        char **i, **nicks;
    275280
    276281        nicks = g_strsplit(line + 6, ", ", 0);
    277         for (i = nicks; *i; i++) {
    278                 ptr = g_strdup_printf("GET USER %s ONLINESTATUS\n", *i);
    279                 skype_write(ic, ptr);
    280                 g_free(ptr);
    281         }
     282        for (i = nicks; *i; i++)
     283                skype_printf(ic, "GET USER %s ONLINESTATUS\n", *i);
    282284        g_strfreev(nicks);
    283285}
     
    510512                 * (4) Query chatname
    511513                 */
    512                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHATMESSAGE %s FROM_HANDLE\n", id);
    513                 skype_write(ic, buf);
    514                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHATMESSAGE %s BODY\n", id);
    515                 skype_write(ic, buf);
    516                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHATMESSAGE %s TYPE\n", id);
    517                 skype_write(ic, buf);
    518                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHATMESSAGE %s CHATNAME\n", id);
    519                 skype_write(ic, buf);
     514                skype_printf(ic, "GET CHATMESSAGE %s FROM_HANDLE\n", id);
     515                skype_printf(ic, "GET CHATMESSAGE %s BODY\n", id);
     516                skype_printf(ic, "GET CHATMESSAGE %s TYPE\n", id);
     517                skype_printf(ic, "GET CHATMESSAGE %s CHATNAME\n", id);
    520518        } else if (!strncmp(info, "FROM_HANDLE ", 12)) {
    521519                info += 12;
     
    598596                        g_free(sd->call_id);
    599597                sd->call_id = g_strdup(id);
    600                 g_snprintf(buf, IRC_LINE_SIZE, "GET CALL %s PARTNER_HANDLE\n", id);
    601                 skype_write(ic, buf);
     598                skype_printf(ic, "GET CALL %s PARTNER_HANDLE\n", id);
    602599                sd->call_status = SKYPE_CALL_RINGING;
    603600        } else if (!strcmp(info, "STATUS MISSED")) {
    604                 g_snprintf(buf, IRC_LINE_SIZE, "GET CALL %s PARTNER_HANDLE\n", id);
    605                 skype_write(ic, buf);
     601                skype_printf(ic, "GET CALL %s PARTNER_HANDLE\n", id);
    606602                sd->call_status = SKYPE_CALL_MISSED;
    607603        } else if (!strcmp(info, "STATUS CANCELLED")) {
    608                 g_snprintf(buf, IRC_LINE_SIZE, "GET CALL %s PARTNER_HANDLE\n", id);
    609                 skype_write(ic, buf);
     604                skype_printf(ic, "GET CALL %s PARTNER_HANDLE\n", id);
    610605                sd->call_status = SKYPE_CALL_CANCELLED;
    611606        } else if (!strcmp(info, "STATUS FINISHED")) {
    612                 g_snprintf(buf, IRC_LINE_SIZE, "GET CALL %s PARTNER_HANDLE\n", id);
    613                 skype_write(ic, buf);
     607                skype_printf(ic, "GET CALL %s PARTNER_HANDLE\n", id);
    614608                sd->call_status = SKYPE_CALL_FINISHED;
    615609        } else if (!strcmp(info, "STATUS REFUSED")) {
    616                 g_snprintf(buf, IRC_LINE_SIZE, "GET CALL %s PARTNER_HANDLE\n", id);
    617                 skype_write(ic, buf);
     610                skype_printf(ic, "GET CALL %s PARTNER_HANDLE\n", id);
    618611                sd->call_status = SKYPE_CALL_REFUSED;
    619612        } else if (!strcmp(info, "STATUS UNPLACED")) {
     
    690683{
    691684        struct skype_data *sd = ic->proto_data;
    692         char buf[IRC_LINE_SIZE];
    693685        char *id = strchr(line, ' ');
    694686
     
    702694        info++;
    703695        if (!strcmp(info, "STATUS NEW")) {
    704                 g_snprintf(buf, IRC_LINE_SIZE, "GET FILETRANSFER %s PARTNER_HANDLE\n",
     696                skype_printf(ic, "GET FILETRANSFER %s PARTNER_HANDLE\n",
    705697                        id);
    706                 skype_write(ic, buf);
    707698                sd->filetransfer_status = SKYPE_FILETRANSFER_NEW;
    708699        } else if (!strcmp(info, "STATUS FAILED")) {
    709                 g_snprintf(buf, IRC_LINE_SIZE, "GET FILETRANSFER %s PARTNER_HANDLE\n",
     700                skype_printf(ic, "GET FILETRANSFER %s PARTNER_HANDLE\n",
    710701                        id);
    711                 skype_write(ic, buf);
    712702                sd->filetransfer_status = SKYPE_FILETRANSFER_FAILED;
    713703        } else if (!strncmp(info, "PARTNER_HANDLE ", 15)) {
     
    750740        if (!strcmp(info, "STATUS MULTI_SUBSCRIBED")) {
    751741                imcb_chat_new(ic, id);
    752                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHAT %s ADDER\n", id);
    753                 skype_write(ic, buf);
    754                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHAT %s TOPIC\n", id);
    755                 skype_write(ic, buf);
     742                skype_printf(ic, "GET CHAT %s ADDER\n", id);
     743                skype_printf(ic, "GET CHAT %s TOPIC\n", id);
    756744        } else if (!strcmp(info, "STATUS DIALOG") && sd->groupchat_with) {
    757745                gc = imcb_chat_new(ic, id);
     
    762750                 * window on our client, so
    763751                 * just leave it out. */
    764                 /*g_snprintf(buf, IRC_LINE_SIZE, "OPEN CHAT %s\n", id);
    765                   skype_write(ic, buf);*/
     752                /*skype_printf(ic, "OPEN CHAT %s\n", id);*/
    766753                g_snprintf(buf, IRC_LINE_SIZE, "%s@skype.com", sd->groupchat_with);
    767754                imcb_chat_add_buddy(gc, buf);
     
    769756                g_free(sd->groupchat_with);
    770757                sd->groupchat_with = NULL;
    771                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHAT %s ADDER\n", id);
    772                 skype_write(ic, buf);
    773                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHAT %s TOPIC\n", id);
    774                 skype_write(ic, buf);
     758                skype_printf(ic, "GET CHAT %s ADDER\n", id);
     759                skype_printf(ic, "GET CHAT %s TOPIC\n", id);
    775760        } else if (!strcmp(info, "STATUS UNSUBSCRIBED")) {
    776761                gc = skype_chat_by_name(ic, id);
     
    834819static void skype_parse_ping(struct im_connection *ic, char *line)
    835820{
    836         skype_write(ic, "PONG\n");
     821        skype_printf(ic, "PONG\n");
    837822}
    838823
    839824static void skype_parse_chats(struct im_connection *ic, char *line)
    840825{
    841         char buf[IRC_LINE_SIZE];
    842826        char **i;
    843827        char **chats = g_strsplit(line + 6, ", ", 0);
     
    845829        i = chats;
    846830        while (*i) {
    847                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHAT %s STATUS\n", *i);
    848                 skype_write(ic, buf);
    849                 g_snprintf(buf, IRC_LINE_SIZE, "GET CHAT %s ACTIVEMEMBERS\n", *i);
    850                 skype_write(ic, buf);
     831                skype_printf(ic, "GET CHAT %s STATUS\n", *i);
     832                skype_printf(ic, "GET CHAT %s ACTIVEMEMBERS\n", *i);
    851833                i++;
    852834        }
     
    917899{
    918900        struct skype_data *sd = ic->proto_data;
    919         char *buf;
    920901        int st;
    921902
     
    928909
    929910        /* Log in */
    930         buf = g_strdup_printf("USERNAME %s\n", ic->acc->user);
    931         st = skype_write(ic, buf);
    932         g_free(buf);
    933         buf = g_strdup_printf("PASSWORD %s\n", ic->acc->pass);
    934         st = skype_write(ic, buf);
    935         g_free(buf);
     911        skype_printf(ic, "USERNAME %s\n", ic->acc->user);
     912        skype_printf(ic, "PASSWORD %s\n", ic->acc->pass);
    936913
    937914        /* This will download all buddies. */
    938         buf = g_strdup_printf("SEARCH FRIENDS\n");
    939         st = skype_write(ic, buf);
    940         g_free(buf);
    941         buf = g_strdup_printf("SET USERSTATUS ONLINE\n");
    942         skype_write(ic, buf);
    943         g_free(buf);
     915        st = skype_printf(ic, "SEARCH FRIENDS\n");
     916        skype_printf(ic, "SET USERSTATUS ONLINE\n");
    944917
    945918        /* Auto join to bookmarked chats if requested.*/
    946         if (set_getbool(&ic->acc->set, "auto_join")) {
    947                 buf = g_strdup_printf("SEARCH BOOKMARKEDCHATS\n");
    948                 skype_write(ic, buf);
    949                 g_free(buf);
    950         }
     919        if (set_getbool(&ic->acc->set, "auto_join"))
     920                skype_printf(ic, "SEARCH BOOKMARKEDCHATS\n");
    951921        return st;
    952922}
     
    988958{
    989959        struct skype_data *sd = ic->proto_data;
    990         char *buf;
    991 
    992         buf = g_strdup_printf("SET USERSTATUS OFFLINE\n");
    993         skype_write(ic, buf);
    994         g_free(buf);
     960
     961        skype_printf(ic, "SET USERSTATUS OFFLINE\n");
    995962
    996963        g_free(sd->username);
     
    1003970                           int flags)
    1004971{
    1005         char *buf, *ptr, *nick;
     972        char *ptr, *nick;
    1006973        int st;
    1007974
     
    1012979
    1013980        if (!strncmp(who, "skypeconsole", 12))
    1014                 buf = g_strdup_printf("%s\n", message);
     981                st = skype_printf(ic, "%s\n", message);
    1015982        else
    1016                 buf = g_strdup_printf("MESSAGE %s %s\n", nick, message);
     983                st = skype_printf(ic, "MESSAGE %s %s\n", nick, message);
    1017984        g_free(nick);
    1018         st = skype_write(ic, buf);
    1019         g_free(buf);
    1020985
    1021986        return st;
     
    10371002{
    10381003        const struct skype_away_state *state;
    1039         char *buf;
    10401004
    10411005        if (strcmp(state_txt, GAIM_AWAY_CUSTOM) == 0)
     
    10431007        else
    10441008                state = skype_away_state_by_name(state_txt);
    1045         buf = g_strdup_printf("SET USERSTATUS %s\n", state->code);
    1046         skype_write(ic, buf);
    1047         g_free(buf);
     1009        skype_printf(ic, "SET USERSTATUS %s\n", state->code);
    10481010}
    10491011
     
    10651027        account_t *acc = set->data;
    10661028        struct im_connection *ic = acc->ic;
    1067         char *buf;
    1068 
    1069         buf = g_strdup_printf("SET PROFILE FULLNAME %s", value);
    1070         skype_write(ic, buf);
    1071         g_free(buf);
     1029
     1030        skype_printf(ic, "SET PROFILE FULLNAME %s", value);
    10721031        return value;
    10731032}
     
    10771036        account_t *acc = set->data;
    10781037        struct im_connection *ic = acc->ic;
    1079         char *buf;
    1080 
    1081         buf = g_strdup_printf("GET PROFILE PSTN_BALANCE");
    1082         skype_write(ic, buf);
    1083         g_free(buf);
     1038
     1039        skype_printf(ic, "GET PROFILE PSTN_BALANCE");
    10841040        return value;
    10851041}
     
    10901046        struct im_connection *ic = acc->ic;
    10911047        struct skype_data *sd = ic->proto_data;
    1092         char *nick, *ptr, *buf;
     1048        char *nick, *ptr;
    10931049
    10941050        if (value) {
     
    11031059                        *ptr = '\0';
    11041060
    1105                 buf = g_strdup_printf("CALL %s", nick);
    1106                 skype_write(ic, buf);
    1107                 g_free(buf);
     1061                skype_printf(ic, "CALL %s", nick);
    11081062                g_free(nick);
    11091063        } else {
    11101064                /* We are ending a call */
    11111065                if (sd->call_id) {
    1112                         buf = g_strdup_printf("SET CALL %s STATUS FINISHED",
     1066                        skype_printf(ic, "SET CALL %s STATUS FINISHED",
    11131067                                sd->call_id);
    1114                         skype_write(ic, buf);
    1115                         g_free(buf);
    11161068                        g_free(sd->call_id);
    11171069                        sd->call_id = NULL;
     
    11241076static void skype_add_buddy(struct im_connection *ic, char *who, char *group)
    11251077{
    1126         char *buf, *nick, *ptr;
     1078        char *nick, *ptr;
    11271079
    11281080        nick = g_strdup(who);
     
    11301082        if (ptr)
    11311083                *ptr = '\0';
    1132         buf = g_strdup_printf("SET USER %s BUDDYSTATUS 2 Please authorize me\n",
     1084        skype_printf(ic, "SET USER %s BUDDYSTATUS 2 Please authorize me\n",
    11331085                nick);
    1134         skype_write(ic, buf);
    11351086        g_free(nick);
    11361087}
     
    11381089static void skype_remove_buddy(struct im_connection *ic, char *who, char *group)
    11391090{
    1140         char *buf, *nick, *ptr;
     1091        char *nick, *ptr;
    11411092
    11421093        nick = g_strdup(who);
     
    11441095        if (ptr)
    11451096                *ptr = '\0';
    1146         buf = g_strdup_printf("SET USER %s BUDDYSTATUS 1\n", nick);
    1147         skype_write(ic, buf);
     1097        skype_printf(ic, "SET USER %s BUDDYSTATUS 1\n", nick);
    11481098        g_free(nick);
    11491099}
     
    11521102{
    11531103        struct im_connection *ic = gc->ic;
    1154         char *buf;
    1155         buf = g_strdup_printf("CHATMESSAGE %s %s\n", gc->title, message);
    1156         skype_write(ic, buf);
    1157         g_free(buf);
     1104        skype_printf(ic, "CHATMESSAGE %s %s\n", gc->title, message);
    11581105}
    11591106
     
    11611108{
    11621109        struct im_connection *ic = gc->ic;
    1163         char *buf;
    1164         buf = g_strdup_printf("ALTER CHAT %s LEAVE\n", gc->title);
    1165         skype_write(ic, buf);
    1166         g_free(buf);
     1110        skype_printf(ic, "ALTER CHAT %s LEAVE\n", gc->title);
    11671111        gc->data = (void *)TRUE;
    11681112}
     
    11711115{
    11721116        struct im_connection *ic = gc->ic;
    1173         char *buf, *ptr, *nick;
     1117        char *ptr, *nick;
    11741118        nick = g_strdup(message);
    11751119        ptr = strchr(nick, '@');
    11761120        if (ptr)
    11771121                *ptr = '\0';
    1178         buf = g_strdup_printf("ALTER CHAT %s ADDMEMBERS %s\n", gc->title, nick);
    1179         skype_write(ic, buf);
    1180         g_free(buf);
     1122        skype_printf(ic, "ALTER CHAT %s ADDMEMBERS %s\n", gc->title, nick);
    11811123        g_free(nick);
    11821124}
     
    11861128        struct im_connection *ic = gc->ic;
    11871129        struct skype_data *sd = ic->proto_data;
    1188         char *buf;
    1189         buf = g_strdup_printf("ALTER CHAT %s SETTOPIC %s\n",
     1130        skype_printf(ic, "ALTER CHAT %s SETTOPIC %s\n",
    11901131                gc->title, message);
    1191         skype_write(ic, buf);
    1192         g_free(buf);
    11931132        sd->topic_wait = 1;
    11941133}
     
    11971136{
    11981137        struct skype_data *sd = ic->proto_data;
    1199         char *ptr, *nick, *buf;
     1138        char *ptr, *nick;
    12001139        nick = g_strdup(who);
    12011140        ptr = strchr(nick, '@');
    12021141        if (ptr)
    12031142                *ptr = '\0';
    1204         buf = g_strdup_printf("CHAT CREATE %s\n", nick);
    1205         skype_write(ic, buf);
    1206         g_free(buf);
     1143        skype_printf(ic, "CHAT CREATE %s\n", nick);
    12071144        sd->groupchat_with = g_strdup(nick);
    12081145        g_free(nick);
     
    12141151static void skype_get_info(struct im_connection *ic, char *who)
    12151152{
    1216         char *ptr, *nick, *buf;
     1153        char *ptr, *nick;
    12171154        nick = g_strdup(who);
    12181155        ptr = strchr(nick, '@');
    12191156        if (ptr)
    12201157                *ptr = '\0';
    1221         buf = g_strdup_printf("GET USER %s FULLNAME\n", nick);
    1222         skype_write(ic, buf);
    1223         g_free(buf);
    1224         buf = g_strdup_printf("GET USER %s PHONE_HOME\n", nick);
    1225         skype_write(ic, buf);
    1226         g_free(buf);
    1227         buf = g_strdup_printf("GET USER %s PHONE_OFFICE\n", nick);
    1228         skype_write(ic, buf);
    1229         g_free(buf);
    1230         buf = g_strdup_printf("GET USER %s PHONE_MOBILE\n", nick);
    1231         skype_write(ic, buf);
    1232         g_free(buf);
    1233         buf = g_strdup_printf("GET USER %s NROF_AUTHED_BUDDIES\n", nick);
    1234         skype_write(ic, buf);
    1235         g_free(buf);
    1236         buf = g_strdup_printf("GET USER %s TIMEZONE\n", nick);
    1237         skype_write(ic, buf);
    1238         g_free(buf);
    1239         buf = g_strdup_printf("GET USER %s LASTONLINETIMESTAMP\n", nick);
    1240         skype_write(ic, buf);
    1241         g_free(buf);
    1242         buf = g_strdup_printf("GET USER %s BIRTHDAY\n", nick);
    1243         skype_write(ic, buf);
    1244         g_free(buf);
    1245         buf = g_strdup_printf("GET USER %s SEX\n", nick);
    1246         skype_write(ic, buf);
    1247         g_free(buf);
    1248         buf = g_strdup_printf("GET USER %s LANGUAGE\n", nick);
    1249         skype_write(ic, buf);
    1250         g_free(buf);
    1251         buf = g_strdup_printf("GET USER %s COUNTRY\n", nick);
    1252         skype_write(ic, buf);
    1253         g_free(buf);
    1254         buf = g_strdup_printf("GET USER %s PROVINCE\n", nick);
    1255         skype_write(ic, buf);
    1256         g_free(buf);
    1257         buf = g_strdup_printf("GET USER %s CITY\n", nick);
    1258         skype_write(ic, buf);
    1259         g_free(buf);
    1260         buf = g_strdup_printf("GET USER %s HOMEPAGE\n", nick);
    1261         skype_write(ic, buf);
    1262         g_free(buf);
    1263         buf = g_strdup_printf("GET USER %s ABOUT\n", nick);
    1264         skype_write(ic, buf);
    1265         g_free(buf);
     1158        skype_printf(ic, "GET USER %s FULLNAME\n", nick);
     1159        skype_printf(ic, "GET USER %s PHONE_HOME\n", nick);
     1160        skype_printf(ic, "GET USER %s PHONE_OFFICE\n", nick);
     1161        skype_printf(ic, "GET USER %s PHONE_MOBILE\n", nick);
     1162        skype_printf(ic, "GET USER %s NROF_AUTHED_BUDDIES\n", nick);
     1163        skype_printf(ic, "GET USER %s TIMEZONE\n", nick);
     1164        skype_printf(ic, "GET USER %s LASTONLINETIMESTAMP\n", nick);
     1165        skype_printf(ic, "GET USER %s BIRTHDAY\n", nick);
     1166        skype_printf(ic, "GET USER %s SEX\n", nick);
     1167        skype_printf(ic, "GET USER %s LANGUAGE\n", nick);
     1168        skype_printf(ic, "GET USER %s COUNTRY\n", nick);
     1169        skype_printf(ic, "GET USER %s PROVINCE\n", nick);
     1170        skype_printf(ic, "GET USER %s CITY\n", nick);
     1171        skype_printf(ic, "GET USER %s HOMEPAGE\n", nick);
     1172        skype_printf(ic, "GET USER %s ABOUT\n", nick);
    12661173}
    12671174
Note: See TracChangeset for help on using the changeset viewer.