Mercurial > pidgin
comparison src/protocols/silc/ops.c @ 12058:d5daff460913
[gaim-migrate @ 14353]
SILC whiteboard support from Pekka Riikonen.
committer: Tailor Script <tailor@pidgin.im>
author | Ethan Blanton <elb@pidgin.im> |
---|---|
date | Sat, 12 Nov 2005 23:04:44 +0000 |
parents | c9b815aeddc1 |
children | 5851a9219bc7 |
comparison
equal
deleted
inserted
replaced
12057:68c18dd8a316 | 12058:d5daff460913 |
---|---|
18 */ | 18 */ |
19 | 19 |
20 #include "silcincludes.h" | 20 #include "silcincludes.h" |
21 #include "silcclient.h" | 21 #include "silcclient.h" |
22 #include "silcgaim.h" | 22 #include "silcgaim.h" |
23 #include "wb.h" | |
23 | 24 |
24 /* Message sent to the application by library. `conn' associates the | 25 /* Message sent to the application by library. `conn' associates the |
25 message to a specific connection. `conn', however, may be NULL. | 26 message to a specific connection. `conn', however, may be NULL. |
26 The `type' indicates the type of the message sent by the library. | 27 The `type' indicates the type of the message sent by the library. |
27 The application can for example filter the message according the | 28 The application can for example filter the message according the |
78 gaim_prefs_get_bool("/plugins/prpl/silc/verify_chat")) { | 79 gaim_prefs_get_bool("/plugins/prpl/silc/verify_chat")) { |
79 /* XXX */ | 80 /* XXX */ |
80 } | 81 } |
81 | 82 |
82 if (flags & SILC_MESSAGE_FLAG_DATA) { | 83 if (flags & SILC_MESSAGE_FLAG_DATA) { |
83 /* XXX */ | 84 char type[128], enc[128]; |
85 unsigned char *data; | |
86 SilcUInt32 data_len; | |
87 | |
88 memset(type, 0, sizeof(type)); | |
89 memset(enc, 0, sizeof(enc)); | |
90 | |
91 if (!silc_mime_parse(message, message_len, NULL, 0, | |
92 type, sizeof(type) - 1, enc, sizeof(enc) - 1, &data, | |
93 &data_len)) | |
94 return; | |
95 | |
96 if (!strcmp(type, "application/x-wb") && | |
97 !strcmp(enc, "binary")) | |
98 silcgaim_wb_receive_ch(client, conn, sender, channel, | |
99 payload, flags, data, data_len); | |
100 | |
84 return; | 101 return; |
85 } | 102 } |
86 | 103 |
87 if (flags & SILC_MESSAGE_FLAG_ACTION) { | 104 if (flags & SILC_MESSAGE_FLAG_ACTION) { |
88 msg = g_strdup_printf("/me %s", | 105 msg = g_strdup_printf("/me %s", |
157 gaim_prefs_get_bool("/plugins/prpl/silc/verify_im")) { | 174 gaim_prefs_get_bool("/plugins/prpl/silc/verify_im")) { |
158 /* XXX */ | 175 /* XXX */ |
159 } | 176 } |
160 | 177 |
161 if (flags & SILC_MESSAGE_FLAG_DATA) { | 178 if (flags & SILC_MESSAGE_FLAG_DATA) { |
162 /* XXX */ | 179 char type[128], enc[128]; |
180 unsigned char *data; | |
181 SilcUInt32 data_len; | |
182 | |
183 memset(type, 0, sizeof(type)); | |
184 memset(enc, 0, sizeof(enc)); | |
185 | |
186 if (!silc_mime_parse(message, message_len, NULL, 0, | |
187 type, sizeof(type) - 1, enc, sizeof(enc) - 1, &data, | |
188 &data_len)) | |
189 return; | |
190 | |
191 if (!strcmp(type, "application/x-wb") && | |
192 !strcmp(enc, "binary")) | |
193 silcgaim_wb_receive(client, conn, sender, payload, | |
194 flags, data, data_len); | |
195 | |
163 return; | 196 return; |
164 } | 197 } |
165 | 198 |
166 if (flags & SILC_MESSAGE_FLAG_ACTION && convo) { | 199 if (flags & SILC_MESSAGE_FLAG_ACTION && convo) { |
167 msg = g_strdup_printf("/me %s", | 200 msg = g_strdup_printf("/me %s", |