diff options
author | Gian Mario Tagliaretti <gianmt@gnome.org> | 2009-12-30 11:11:32 +0100 |
---|---|---|
committer | Gian Mario Tagliaretti <gianmt@gnome.org> | 2009-12-30 11:11:32 +0100 |
commit | 9d56ce775f56fff1b1ef3c75843c0583e39f75c3 (patch) | |
tree | 35f727c02cb1ba39d1889c8630cd504fff3fece6 /gio | |
parent | 7fc71f490494dae73a5264869a97a9d30814930e (diff) | |
download | pygobject-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.override | 42 |
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; + } +} |