GList *friends;
};
+static struct cache *ucache;
+
+struct friend *friend_get_by_address(GInetAddress *address)
+{
+ GList *l;
+ for (l = g_list_first(ucache->friends); l != NULL; l = g_list_next(l)) {
+ struct friend *friend = l->data;
+ if (g_inet_address_equal(g_inet_socket_address_get_address(friend->saddr), address))
+ return friend;
+ }
+ return NULL;
+}
+
int create_cache(struct cache **cache)
{
- *cache = g_slice_new0(struct cache);
+ ucache = *cache = g_slice_new0(struct cache);
(*cache)->friends = NULL;
return 0;
}