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; }
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; }