comparison mcabber/src/jabglue.c @ 1236:f7b35b1c343d

Fix a roster bug when receiving a MUC invitation
author Mikael Berthe <mikael@lilotux.net>
date Sat, 16 Jun 2007 12:19:14 +0200
parents 80c095886fb5
children dcb99f0b5aaa
comparison
equal deleted inserted replaced
1235:58d6e7713164 1236:f7b35b1c343d
2227 static void got_invite(char* from, char *to, char* reason, char* passwd) 2227 static void got_invite(char* from, char *to, char* reason, char* passwd)
2228 { 2228 {
2229 eviqs *evn; 2229 eviqs *evn;
2230 event_muc_invitation *invitation; 2230 event_muc_invitation *invitation;
2231 GString *sbuf; 2231 GString *sbuf;
2232 char *barejid;
2232 2233
2233 sbuf = g_string_new(""); 2234 sbuf = g_string_new("");
2234 if (reason) { 2235 if (reason) {
2235 g_string_printf(sbuf, 2236 g_string_printf(sbuf,
2236 "Received an invitation to <%s>, from <%s>, reason: %s", 2237 "Received an invitation to <%s>, from <%s>, reason: %s",
2237 to, from, reason); 2238 to, from, reason);
2238 } else { 2239 } else {
2239 g_string_printf(sbuf, "Received an invitation to <%s>, from <%s>", 2240 g_string_printf(sbuf, "Received an invitation to <%s>, from <%s>",
2240 to, from); 2241 to, from);
2241 } 2242 }
2242 scr_WriteIncomingMessage(from, sbuf->str, 0, HBB_PREFIX_INFO); 2243
2244 barejid = jidtodisp(from);
2245 scr_WriteIncomingMessage(barejid, sbuf->str, 0, HBB_PREFIX_INFO);
2243 scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str); 2246 scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str);
2244 2247
2245 evn = evs_new(EVS_TYPE_INVITATION, EVS_MAX_TIMEOUT); 2248 evn = evs_new(EVS_TYPE_INVITATION, EVS_MAX_TIMEOUT);
2246 if (evn) { 2249 if (evn) {
2247 evn->callback = &evscallback_invitation; 2250 evn->callback = &evscallback_invitation;
2254 evn->desc = g_strdup_printf("<%s> invites you to %s ", from, to); 2257 evn->desc = g_strdup_printf("<%s> invites you to %s ", from, to);
2255 g_string_printf(sbuf, "Please use /event %s accept|reject", evn->id); 2258 g_string_printf(sbuf, "Please use /event %s accept|reject", evn->id);
2256 } else { 2259 } else {
2257 g_string_printf(sbuf, "Unable to create a new event!"); 2260 g_string_printf(sbuf, "Unable to create a new event!");
2258 } 2261 }
2259 scr_WriteIncomingMessage(from, sbuf->str, 0, HBB_PREFIX_INFO); 2262 scr_WriteIncomingMessage(barejid, sbuf->str, 0, HBB_PREFIX_INFO);
2260 scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str); 2263 scr_LogPrint(LPRINT_LOGNORM, "%s", sbuf->str);
2261 g_string_free(sbuf, TRUE); 2264 g_string_free(sbuf, TRUE);
2265 g_free(barejid);
2262 } 2266 }
2263 2267
2264 // Specific MUC message handling (for example invitation processing) 2268 // Specific MUC message handling (for example invitation processing)
2265 static void got_muc_message(char *from, xmlnode x) 2269 static void got_muc_message(char *from, xmlnode x)
2266 { 2270 {