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) {