static void lookup_by_addr_callback (GObject *source, GAsyncResult *result, gpointer user_data) { const char *phys = user_data; GError *error = NULL; char *name; name = g_resolver_lookup_by_address_finish (resolver, result, &error); print_resolved_name (phys, name, error); }
static VALUE rg_lookup_by_address_finish(VALUE self, VALUE result) { GError *error = NULL; gchar *hostname; hostname = g_resolver_lookup_by_address_finish(_SELF(self), RVAL2GASYNCRESULT(result), &error); if (hostname == NULL) rbgio_raise_error(error); return CSTR2RVAL_FREE(hostname); }
static void dns_addr_callback (GObject *obj, GAsyncResult *result, gpointer user_data) { GResolver *resolver = G_RESOLVER(obj); session *sess = (session*)user_data; gchar *addr; g_return_if_fail (is_session(sess)); addr = g_resolver_lookup_by_address_finish (resolver, result, NULL); if (addr) PrintTextf (sess, _("Resolved to %s"), addr); else PrintText (sess, _("Not found")); }
static void lookup_resolved (GObject *source, GAsyncResult *result, gpointer user_data) { GResolver *resolver = G_RESOLVER (source); SoupAddressResolveAsyncData *res_data = user_data; SoupAddress *addr = res_data->addr; SoupAddressPrivate *priv = SOUP_ADDRESS_GET_PRIVATE (addr); GError *error = NULL; guint status; if (!priv->sockaddr) { GList *addrs; addrs = g_resolver_lookup_by_name_finish (resolver, result, &error); status = update_addrs (addr, addrs, error); g_resolver_free_addresses (addrs); } else if (!priv->name) { char *name; name = g_resolver_lookup_by_address_finish (resolver, result, &error); status = update_name (addr, name, error); g_free (name); } else status = SOUP_STATUS_OK; /* For the enumerator impl, below */ g_object_ref (addr); g_object_set_data (G_OBJECT (addr), "async-resolved-error", error); complete_resolve_async (res_data, status); g_object_set_data (G_OBJECT (addr), "async-resolved-error", NULL); g_object_unref (addr); if (error) g_error_free (error); }