comparison libpurple/protocols/msn/transaction.c @ 30711:54c8aeecab4c

We need a way to send commands without transaction ID
author masca@cpw.pidgin.im
date Thu, 11 Mar 2010 17:59:53 +0000
parents 6a23d7f84143
children c316749944c1
comparison
equal deleted inserted replaced
30710:f7ee91763c6b 30711:54c8aeecab4c
35 35
36 trans = g_new0(MsnTransaction, 1); 36 trans = g_new0(MsnTransaction, 1);
37 37
38 trans->cmdproc = cmdproc; 38 trans->cmdproc = cmdproc;
39 trans->command = g_strdup(command); 39 trans->command = g_strdup(command);
40 trans->send_trId = TRUE;
40 41
41 if (format != NULL) 42 if (format != NULL)
42 { 43 {
43 va_start(arg, format); 44 va_start(arg, format);
44 trans->params = g_strdup_vprintf(format, arg); 45 trans->params = g_strdup_vprintf(format, arg);
94 95
95 g_return_val_if_fail(trans != NULL, FALSE); 96 g_return_val_if_fail(trans != NULL, FALSE);
96 97
97 if (trans->params != NULL) 98 if (trans->params != NULL)
98 str = g_strdup_printf("%s %u %s\r\n", trans->command, trans->trId, trans->params); 99 str = g_strdup_printf("%s %u %s\r\n", trans->command, trans->trId, trans->params);
100 else if (trans->send_trId)
101 str = g_strdup_printf("%s %u\r\n", trans->command, trans->trId);
99 else 102 else
100 str = g_strdup_printf("%s %u\r\n", trans->command, trans->trId); 103 str = g_strdup_printf("%s\r\n", trans->command);
101 104
102 return str; 105 return str;
103 } 106 }
104 107
105 void 108 void
173 g_return_if_fail(trans != NULL); 176 g_return_if_fail(trans != NULL);
174 trans->data_free = fn; 177 trans->data_free = fn;
175 } 178 }
176 179
177 void 180 void
181 msn_transaction_set_send_trId(MsnTransaction *trans, gboolean send)
182 {
183 g_return_if_fail(trans != NULL);
184
185 trans->send_trId = send;
186 }
187
188 void
178 msn_transaction_add_cb(MsnTransaction *trans, char *answer, 189 msn_transaction_add_cb(MsnTransaction *trans, char *answer,
179 MsnTransCb cb) 190 MsnTransCb cb)
180 { 191 {
181 g_return_if_fail(trans != NULL); 192 g_return_if_fail(trans != NULL);
182 g_return_if_fail(answer != NULL); 193 g_return_if_fail(answer != NULL);