Esempio n. 1
0
void
msn_userlist_add_buddy(MsnUserList *userlist,
					   const char *who, int list_id,
					   const char *group_name)
{
	MsnUser *user;
	int group_id;
	const char *list;
	const char *friendly_name;

	group_id = -1;

	if (!purple_email_is_valid(who))
	{
		/* only notify the user about problems adding to the friends list
		 * maybe we should do something else for other lists, but it probably
		 * won't cause too many problems if we just ignore it */
		if (list_id == MSN_LIST_FL)
		{
			char *str = g_strdup_printf(_("Unable to add \"%s\"."), who);
			purple_notify_error(NULL, NULL, str,
							  _("The username specified is invalid."));
			g_free(str);
		}

		return;
	}

	if (group_name != NULL)
	{
		group_id = msn_userlist_find_group_id(userlist, group_name);

		if (group_id < 0)
		{
			/* Whoa, we must add that group first. */
			msn_request_add_group(userlist, who, NULL, group_name);
			return;
		}
	}

	user = msn_userlist_find_user(userlist, who);

	/* First we're going to check if it's already there. */
	if (user_is_there(user, list_id, group_id))
	{
		list = lists[list_id];
		purple_debug_error("msn", "User '%s' is already there: %s\n", who, list);
		return;
	}

	friendly_name = (user != NULL) ? get_friendly_name(user) : who;

	/* Then request the add to the server. */
	list = lists[list_id];

	msn_notification_add_buddy(userlist->session->notification, list, who,
							   friendly_name, group_id);
}
Esempio n. 2
0
END_TEST

START_TEST(test_util_email_is_valid)
{
	fail_unless(purple_email_is_valid("*****@*****.**"));
	fail_if(purple_email_is_valid("purple-devel@@lists.sf.net"));
	fail_if(purple_email_is_valid("purple@[email protected]"));
	fail_if(purple_email_is_valid("*****@*****.**"));
	fail_if(purple_email_is_valid("purple-devel"));
	fail_if(purple_email_is_valid("purple-devel@"));
	fail_if(purple_email_is_valid("@lists.sf.net"));
	fail_if(purple_email_is_valid(""));
	fail_if(purple_email_is_valid("totally bogus"));
}
Esempio n. 3
0
gboolean
msn_email_is_valid(const char *passport)
{
    if (purple_email_is_valid(passport)) {
        /* Special characters aren't allowed in domains, so only go to '@' */
        while (*passport != '@') {
            if (*passport == '/')
                return FALSE;
            else if (*passport == '?')
                return FALSE;
            else if (*passport == '=')
                return FALSE;
            /* MSN also doesn't like colons, but that's checked already */

            passport++;
        }

        return TRUE;
    }

    return FALSE;
}