Пример #1
0
int sock_av_get_addr_index(struct sock_av *av, struct sockaddr_in *addr)
{
	int i;
	struct sock_av_addr *av_addr;

	for (i = 0; i < av->table_hdr->stored; i++) {
		av_addr = &av->table[i];
		if (sock_compare_addr(addr, (struct sockaddr_in *)&av_addr->addr))
			return i;
	}
	SOCK_LOG_DBG("failed to get index in AV\n");
	return -1;
}
Пример #2
0
fi_addr_t sock_av_lookup_key(struct sock_av *av, int key)
{
	int i;
	struct sock_av_addr *av_addr;
	struct sock_conn_map *cmap;

	cmap = av->cmap;
	for (i = 0; i < av->table_hdr->stored; i++) {
		av_addr = &av->table[i];
		if (sock_compare_addr(&cmap->table[key].addr, 
				      (struct sockaddr_in*)&av_addr->addr)) {
			SOCK_LOG_DBG("LOOKUP: (%d->%d)\n", key, i);
			return i;
		}
	}
	
	SOCK_LOG_DBG("Reverse-LOOKUP failed: %d, %s:%d\n", key,
		       inet_ntoa(cmap->table[key].addr.sin_addr),
		       ntohs(cmap->table[key].addr.sin_port));
	return FI_ADDR_NOTAVAIL;
}