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