Mercurial > ~mikael > mcabber > hg
comparison mcabber/src/jab_iq.c @ 1476:77afd831f8f7
Avoid mixed declarations and code
Build failures reported by H. D. Oezbilen.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Thu, 17 Apr 2008 21:01:09 +0200 |
parents | 8fa24a6d1a93 |
children | 3d47694b4dcc |
comparison
equal
deleted
inserted
replaced
1475:ef09de538e8f | 1476:77afd831f8f7 |
---|---|
1098 xmlnode_free(x); | 1098 xmlnode_free(x); |
1099 } | 1099 } |
1100 | 1100 |
1101 static void xmlnode_insert_dataform_result_message(xmlnode node, char *message) | 1101 static void xmlnode_insert_dataform_result_message(xmlnode node, char *message) |
1102 { | 1102 { |
1103 xmlnode x = xmlnode_insert_tag(node, "x"); | 1103 xmlnode x, field, value; |
1104 | |
1105 x = xmlnode_insert_tag(node, "x"); | |
1104 xmlnode_put_attrib(x, "type", "result"); | 1106 xmlnode_put_attrib(x, "type", "result"); |
1105 xmlnode_put_attrib(x, "xmlns", "jabber:x:data"); | 1107 xmlnode_put_attrib(x, "xmlns", "jabber:x:data"); |
1106 | 1108 |
1107 xmlnode field = xmlnode_insert_tag(x, "field"); | 1109 field = xmlnode_insert_tag(x, "field"); |
1108 xmlnode_put_attrib(field, "type", "text-single"); | 1110 xmlnode_put_attrib(field, "type", "text-single"); |
1109 xmlnode_put_attrib(field, "var", "message"); | 1111 xmlnode_put_attrib(field, "var", "message"); |
1110 | 1112 |
1111 xmlnode value = xmlnode_insert_tag(field, "value"); | 1113 value = xmlnode_insert_tag(field, "value"); |
1112 xmlnode_insert_cdata(value, message, -1); | 1114 xmlnode_insert_cdata(value, message, -1); |
1113 } | 1115 } |
1114 | 1116 |
1115 static char *generate_session_id(char *prefix) | 1117 static char *generate_session_id(char *prefix) |
1116 { | 1118 { |
1138 command = xmlnode_insert_tag(iq, "command"); | 1140 command = xmlnode_insert_tag(iq, "command"); |
1139 xmlnode_put_attrib(command, "node", node); | 1141 xmlnode_put_attrib(command, "node", node); |
1140 xmlnode_put_attrib(command, "xmlns", NS_COMMANDS); | 1142 xmlnode_put_attrib(command, "xmlns", NS_COMMANDS); |
1141 | 1143 |
1142 if (!sessionid) { | 1144 if (!sessionid) { |
1145 xmlnode value; | |
1146 | |
1143 sessionid = generate_session_id("set-status"); | 1147 sessionid = generate_session_id("set-status"); |
1144 xmlnode_put_attrib(command, "sessionid", sessionid); | 1148 xmlnode_put_attrib(command, "sessionid", sessionid); |
1145 g_free(sessionid); | 1149 g_free(sessionid); |
1146 xmlnode_put_attrib(command, "status", "executing"); | 1150 xmlnode_put_attrib(command, "status", "executing"); |
1147 | 1151 |
1159 // (with xmlnode_insert_dataform_result_message) | 1163 // (with xmlnode_insert_dataform_result_message) |
1160 y = xmlnode_insert_tag(x, "field"); | 1164 y = xmlnode_insert_tag(x, "field"); |
1161 xmlnode_put_attrib(y, "type", "hidden"); | 1165 xmlnode_put_attrib(y, "type", "hidden"); |
1162 xmlnode_put_attrib(y, "var", "FORM_TYPE"); | 1166 xmlnode_put_attrib(y, "var", "FORM_TYPE"); |
1163 | 1167 |
1164 xmlnode value = xmlnode_insert_tag(y, "value"); | 1168 value = xmlnode_insert_tag(y, "value"); |
1165 xmlnode_insert_cdata(value, "http://jabber.org/protocol/rc", -1); | 1169 xmlnode_insert_cdata(value, "http://jabber.org/protocol/rc", -1); |
1166 | 1170 |
1167 y = xmlnode_insert_tag(x, "field"); | 1171 y = xmlnode_insert_tag(x, "field"); |
1168 xmlnode_put_attrib(y, "type", "list-single"); | 1172 xmlnode_put_attrib(y, "type", "list-single"); |
1169 xmlnode_put_attrib(y, "var", "status"); | 1173 xmlnode_put_attrib(y, "var", "status"); |
1215 xmlnode_free(iq); | 1219 xmlnode_free(iq); |
1216 } | 1220 } |
1217 | 1221 |
1218 static void _callback_foreach_buddy_groupchat(gpointer rosterdata, void *param) | 1222 static void _callback_foreach_buddy_groupchat(gpointer rosterdata, void *param) |
1219 { | 1223 { |
1220 xmlnode value; | 1224 xmlnode value, option; |
1221 xmlnode *field; | 1225 xmlnode *field; |
1222 const char *room_jid, *nickname; | 1226 const char *room_jid, *nickname; |
1223 char *desc; | 1227 char *desc; |
1224 | 1228 |
1225 room_jid = buddy_getjid(rosterdata); | 1229 room_jid = buddy_getjid(rosterdata); |
1226 if (!room_jid) return; | 1230 if (!room_jid) return; |
1227 nickname = buddy_getnickname(rosterdata); | 1231 nickname = buddy_getnickname(rosterdata); |
1228 if (!nickname) return; | 1232 if (!nickname) return; |
1229 field = param; | 1233 field = param; |
1230 | 1234 |
1231 xmlnode option = xmlnode_insert_tag(*field, "option"); | 1235 option = xmlnode_insert_tag(*field, "option"); |
1232 value = xmlnode_insert_tag(option, "value"); | 1236 value = xmlnode_insert_tag(option, "value"); |
1233 xmlnode_insert_cdata(value, room_jid, -1); | 1237 xmlnode_insert_cdata(value, room_jid, -1); |
1234 desc = g_strdup_printf("%s on %s", nickname, room_jid); | 1238 desc = g_strdup_printf("%s on %s", nickname, room_jid); |
1235 xmlnode_put_attrib(option, "label", desc); | 1239 xmlnode_put_attrib(option, "label", desc); |
1236 g_free(desc); | 1240 g_free(desc); |
1251 command = xmlnode_insert_tag(iq, "command"); | 1255 command = xmlnode_insert_tag(iq, "command"); |
1252 xmlnode_put_attrib(command, "node", node); | 1256 xmlnode_put_attrib(command, "node", node); |
1253 xmlnode_put_attrib(command, "xmlns", NS_COMMANDS); | 1257 xmlnode_put_attrib(command, "xmlns", NS_COMMANDS); |
1254 | 1258 |
1255 if (!sessionid) { | 1259 if (!sessionid) { |
1260 xmlnode title, instructions, field, value; | |
1261 | |
1256 sessionid = generate_session_id("leave-groupchats"); | 1262 sessionid = generate_session_id("leave-groupchats"); |
1257 xmlnode_put_attrib(command, "sessionid", sessionid); | 1263 xmlnode_put_attrib(command, "sessionid", sessionid); |
1258 g_free(sessionid); | 1264 g_free(sessionid); |
1259 xmlnode_put_attrib(command, "status", "executing"); | 1265 xmlnode_put_attrib(command, "status", "executing"); |
1260 | 1266 |
1261 x = xmlnode_insert_tag(command, "x"); | 1267 x = xmlnode_insert_tag(command, "x"); |
1262 xmlnode_put_attrib(x, "type", "form"); | 1268 xmlnode_put_attrib(x, "type", "form"); |
1263 xmlnode_put_attrib(x, "xmlns", "jabber:x:data"); | 1269 xmlnode_put_attrib(x, "xmlns", "jabber:x:data"); |
1264 | 1270 |
1265 xmlnode title = xmlnode_insert_tag(x, "title"); | 1271 title = xmlnode_insert_tag(x, "title"); |
1266 xmlnode_insert_cdata(title, "Leave groupchat(s)", -1); | 1272 xmlnode_insert_cdata(title, "Leave groupchat(s)", -1); |
1267 | 1273 |
1268 xmlnode instructions = xmlnode_insert_tag(x, "instructions"); | 1274 instructions = xmlnode_insert_tag(x, "instructions"); |
1269 xmlnode_insert_cdata(instructions, "What groupchats do you want to leave?", | 1275 xmlnode_insert_cdata(instructions, "What groupchats do you want to leave?", |
1270 -1); | 1276 -1); |
1271 | 1277 |
1272 xmlnode field = xmlnode_insert_tag(x, "field"); | 1278 field = xmlnode_insert_tag(x, "field"); |
1273 xmlnode_put_attrib(field, "type", "hidden"); | 1279 xmlnode_put_attrib(field, "type", "hidden"); |
1274 xmlnode_put_attrib(field, "var", "FORM_TYPE"); | 1280 xmlnode_put_attrib(field, "var", "FORM_TYPE"); |
1275 | 1281 |
1276 xmlnode value = xmlnode_insert_tag(field, "value"); | 1282 value = xmlnode_insert_tag(field, "value"); |
1277 xmlnode_insert_cdata(value, "http://jabber.org/protocol/rc", -1); | 1283 xmlnode_insert_cdata(value, "http://jabber.org/protocol/rc", -1); |
1278 | 1284 |
1279 field = xmlnode_insert_tag(x, "field"); | 1285 field = xmlnode_insert_tag(x, "field"); |
1280 xmlnode_put_attrib(field, "type", "list-multi"); | 1286 xmlnode_put_attrib(field, "type", "list-multi"); |
1281 xmlnode_put_attrib(field, "var", "groupchats"); | 1287 xmlnode_put_attrib(field, "var", "groupchats"); |
1286 } | 1292 } |
1287 else // (if sessionid) | 1293 else // (if sessionid) |
1288 { | 1294 { |
1289 xmlnode form = xmlnode_get_tag(x, "x?xmlns=jabber:x:data"); | 1295 xmlnode form = xmlnode_get_tag(x, "x?xmlns=jabber:x:data"); |
1290 if (form) { | 1296 if (form) { |
1297 xmlnode x, gc; | |
1298 | |
1291 xmlnode_put_attrib(command, "status", "completed"); | 1299 xmlnode_put_attrib(command, "status", "completed"); |
1292 xmlnode gc = xmlnode_get_tag(form, "field?var=groupchats"); | 1300 gc = xmlnode_get_tag(form, "field?var=groupchats"); |
1293 xmlnode x; | |
1294 | 1301 |
1295 for (x = xmlnode_get_firstchild(gc) ; x ; x = xmlnode_get_nextsibling(x)) | 1302 for (x = xmlnode_get_firstchild(gc) ; x ; x = xmlnode_get_nextsibling(x)) |
1296 { | 1303 { |
1297 char* to_leave = xmlnode_get_tag_data(x, "value"); | 1304 char* to_leave = xmlnode_get_tag_data(x, "value"); |
1298 if (to_leave) { | 1305 if (to_leave) { |