Exemplo n.º 1
0
static PyObject *PyServer_mask_match_address(PyServer *self, PyObject *args, PyObject *kwds)
{
    static char *kwlist[] = {"mask", "nick", "address", NULL};
    char *mask = "";
    char *nick = "";
    char *address = "";

    RET_NULL_IF_INVALID(self->data);

    if (!PyArg_ParseTupleAndKeywords(args, kwds, "sss", kwlist, 
           &mask, &nick, &address))
        return NULL;

    return PyBool_FromLong(mask_match_address(self->data, mask, nick, address));
}
Exemplo n.º 2
0
Arquivo: nicklist.c Projeto: GPF/irssi
static NICK_REC *nicklist_find_wildcards(CHANNEL_REC *channel,
					 const char *mask)
{
	GSList *nicks, *tmp;
	NICK_REC *nick;

	nicks = nicklist_getnicks(channel);
	nick = NULL;
	for (tmp = nicks; tmp != NULL; tmp = tmp->next) {
		nick = tmp->data;

		if (mask_match_address(channel->server, mask,
				       nick->nick, nick->host))
			break;
	}
	g_slist_free(nicks);
	return tmp == NULL ? NULL : nick;
}
Exemplo n.º 3
0
Arquivo: nicklist.c Projeto: GPF/irssi
GSList *nicklist_find_multiple(CHANNEL_REC *channel, const char *mask)
{
	GSList *nicks, *tmp, *next;

	g_return_val_if_fail(IS_CHANNEL(channel), NULL);
	g_return_val_if_fail(mask != NULL, NULL);

	nicks = nicklist_getnicks(channel);
	for (tmp = nicks; tmp != NULL; tmp = next) {
		NICK_REC *nick = tmp->data;

		next = tmp->next;
		if (!mask_match_address(channel->server, mask,
					nick->nick, nick->host))
                        nicks = g_slist_remove(nicks, tmp->data);
	}

	return nicks;
}
Exemplo n.º 4
0
static int botuser_find_mask(USER_REC *user, const char *nick, const char *host)
{
	GSList *tmp;

	g_return_val_if_fail(user != NULL, FALSE);
	g_return_val_if_fail(nick != NULL, FALSE);
	g_return_val_if_fail(host != NULL, FALSE);

	/* Check that masks match */
	for (tmp = user->masks; tmp != NULL; tmp = tmp->next) {
		USER_MASK_REC *rec = tmp->data;

		if (mask_match_address(NULL, rec->mask, nick, host)) {
			user->not_flags = rec->not_flags;
			return TRUE;
		}
	}

	return FALSE;
}