comparison mcabber/src/commands.c @ 452:dfd9c62b3a39

Jabber Id syntax checks
author Mikael Berthe <mikael@lilotux.net>
date Mon, 26 Sep 2005 22:08:48 +0200
parents e08b0c2d0e54
children d647b92e541f
comparison
equal deleted inserted replaced
451:8a7b18b837a4 452:dfd9c62b3a39
457 457
458 *st++ = 0; 458 *st++ = 0;
459 while (*st && *st == ' ') 459 while (*st && *st == ' ')
460 st++; 460 st++;
461 461
462 // FIXME check id =~ jabber id 462 if (check_jid_syntax(id)) {
463 scr_LogPrint(LPRINT_LOGNORM, "Sending to <%s> /status %s", id, st); 463 scr_LogPrint(LPRINT_NORMAL, "<%s> is not a valid Jabber id", id);
464 setstatus(id, st); 464 } else {
465 mc_strtolower(id);
466 scr_LogPrint(LPRINT_LOGNORM, "Sending to <%s> /status %s", id, st);
467 setstatus(id, st);
468 }
469 g_free(id);
465 } 470 }
466 471
467 static void do_add(char *arg) 472 static void do_add(char *arg)
468 { 473 {
469 char *id, *nick; 474 char *id, *nick;
478 *nick++ = 0; 483 *nick++ = 0;
479 while (*nick && *nick == ' ') 484 while (*nick && *nick == ' ')
480 nick++; 485 nick++;
481 } 486 }
482 487
483 // FIXME check id =~ jabber id 488 if (check_jid_syntax(id)) {
484 // 2nd parameter = optional nickname 489 scr_LogPrint(LPRINT_NORMAL, "<%s> is not a valid Jabber id", id);
485 jb_addbuddy(id, nick, NULL); 490 } else {
486 scr_LogPrint(LPRINT_LOGNORM, "Sent presence notification request to <%s>", 491 mc_strtolower(id);
487 id); 492 // 2nd parameter = optional nickname
493 jb_addbuddy(id, nick, NULL);
494 scr_LogPrint(LPRINT_LOGNORM, "Sent presence notification request to <%s>",
495 id);
496 }
488 g_free(id); 497 g_free(id);
489 } 498 }
490 499
491 static void do_del(char *arg) 500 static void do_del(char *arg)
492 { 501 {
941 scr_LogPrint(LPRINT_NORMAL, "Missing parameter (nickname)"); 950 scr_LogPrint(LPRINT_NORMAL, "Missing parameter (nickname)");
942 g_free(roomname); 951 g_free(roomname);
943 return; 952 return;
944 } 953 }
945 // room syntax: "room@server/nick" 954 // room syntax: "room@server/nick"
946 // FIXME: check roomid is a jid
947 roomid = g_strdup_printf("%s/%s", roomname, nick); 955 roomid = g_strdup_printf("%s/%s", roomname, nick);
956 if (check_jid_syntax(roomid)) {
957 scr_LogPrint(LPRINT_NORMAL, "<%s> is not a valid Jabber room", roomid);
958 g_free(roomname);
959 g_free(roomid);
960 return;
961 }
962
963 mc_strtolower(roomid);
948 jb_room_join(roomid); 964 jb_room_join(roomid);
965
966 // We need to save the nickname for future use
949 roster_usr = roster_add_user(roomname, NULL, NULL, ROSTER_TYPE_ROOM); 967 roster_usr = roster_add_user(roomname, NULL, NULL, ROSTER_TYPE_ROOM);
950 if (roster_usr) 968 if (roster_usr)
951 buddy_setnickname(roster_usr->data, nick); 969 buddy_setnickname(roster_usr->data, nick);
970
952 g_free(roomname); 971 g_free(roomname);
953 g_free(roomid); 972 g_free(roomid);
954 buddylist_build(); 973 buddylist_build();
955 update_roster = TRUE; 974 update_roster = TRUE;
956 } else if (!strncasecmp(arg, "leave", 5)) { 975 } else if (!strncasecmp(arg, "leave", 5)) {