summaryrefslogtreecommitdiffstats
path: root/gio
diff options
context:
space:
mode:
authorGian Mario Tagliaretti <gianmt@gnome.org>2009-12-30 11:11:32 +0100
committerGian Mario Tagliaretti <gianmt@gnome.org>2009-12-30 11:11:32 +0100
commit9d56ce775f56fff1b1ef3c75843c0583e39f75c3 (patch)
tree35f727c02cb1ba39d1889c8630cd504fff3fece6 /gio
parent7fc71f490494dae73a5264869a97a9d30814930e (diff)
downloadpygobject-9d56ce775f56fff1b1ef3c75843c0583e39f75c3.tar.gz
pygobject-9d56ce775f56fff1b1ef3c75843c0583e39f75c3.tar.xz
pygobject-9d56ce775f56fff1b1ef3c75843c0583e39f75c3.zip
Wrap gio.Resolver.lookup_service() and add a test
Diffstat (limited to 'gio')
-rw-r--r--gio/gresolver.override42
1 files changed, 42 insertions, 0 deletions
diff --git a/gio/gresolver.override b/gio/gresolver.override
index 17a0224..1930c67 100644
--- a/gio/gresolver.override
+++ b/gio/gresolver.override
@@ -183,3 +183,45 @@ _wrap_g_resolver_lookup_by_address_async(PyGObject *self,
pygio_notify_free(notify);
return NULL;
}
+%%
+override g_resolver_lookup_service kwargs
+static PyObject *
+_wrap_g_resolver_lookup_service(PyGObject *self,
+ PyObject *args,
+ PyObject *kwargs)
+{
+ static char *kwlist[] = { "service", "protocol",
+ "domain", "cancellable", NULL };
+ gchar *service, *protocol, *domain;
+ PyGObject *pycancellable = NULL;
+ GCancellable *cancellable;
+ GList *targets;
+ GError *error = NULL;
+ PyObject *ret;
+
+ if (!PyArg_ParseTupleAndKeywords(args, kwargs,
+ "sss|O:gio.Resolver.lookup_service",
+ kwlist,
+ &service,
+ &protocol,
+ &domain,
+ &pycancellable))
+ return NULL;
+
+ if (!pygio_check_cancellable(pycancellable, &cancellable))
+ return NULL;
+
+ targets = g_resolver_lookup_service(G_RESOLVER(self->obj),
+ service, protocol, domain,
+ cancellable, &error);
+
+ if (targets) {
+ PYLIST_FROMGLIST(ret, targets,
+ pyg_boxed_new(G_TYPE_SRV_TARGET, list_item, TRUE, TRUE),
+ g_resolver_free_targets, NULL);
+ return ret;
+ } else {
+ Py_INCREF(Py_None);
+ return Py_None;
+ }
+}