# HG changeset patch # User Mikael Hallendal # Date 1215987268 -7200 # Node ID 0cd193ceddaa02a9bda89dd09d4e985afd649a70 # Parent 9eeae02afc187045b51afd7752999157c4c7d1bd Added LmBlockingResolver which will handle the case when we do not have libasyncns. The blocking resolver will be blocking while waiting for response from a web server. diff -r 9eeae02afc18 -r 0cd193ceddaa loudmouth/Makefile.am --- a/loudmouth/Makefile.am Mon Jul 14 00:02:50 2008 +0200 +++ b/loudmouth/Makefile.am Mon Jul 14 00:14:28 2008 +0200 @@ -49,6 +49,8 @@ lm-resolver.h \ lm-asyncns-resolver.c \ lm-asyncns-resolver.h \ + lm-blocking-resolver.c \ + lm-blocking-resolver.h \ \ lm-internals.h \ lm-sha.c \ diff -r 9eeae02afc18 -r 0cd193ceddaa loudmouth/lm-blocking-resolver.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loudmouth/lm-blocking-resolver.c Mon Jul 14 00:14:28 2008 +0200 @@ -0,0 +1,81 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2008 Imendio AB + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include + +#include "lm-marshal.h" +#include "lm-blocking-resolver.h" + +#define GET_PRIV(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), LM_TYPE_BLOCKING_RESOLVER, LmBlockingResolverPriv)) + +typedef struct LmBlockingResolverPriv LmBlockingResolverPriv; +struct LmBlockingResolverPriv { + gint my_prop; +}; + +static void blocking_resolver_finalize (GObject *object); +static void blocking_resolver_lookup (LmResolver *resolver); +static void blocking_resolver_cancel (LmResolver *resolver); + +G_DEFINE_TYPE (LmBlockingResolver, lm_blocking_resolver, LM_TYPE_RESOLVER) + +static void +lm_blocking_resolver_class_init (LmBlockingResolverClass *class) +{ + GObjectClass *object_class = G_OBJECT_CLASS (class); + LmResolverClass *resolver_class = LM_RESOLVER_CLASS (class); + + object_class->finalize = blocking_resolver_finalize; + + resolver_class->lookup = blocking_resolver_lookup; + resolver_class->cancel = blocking_resolver_cancel; + + g_type_class_add_private (object_class, sizeof (LmBlockingResolverPriv)); +} + +static void +lm_blocking_resolver_init (LmBlockingResolver *blocking_resolver) +{ + LmBlockingResolverPriv *priv; + + priv = GET_PRIV (blocking_resolver); + +} + +static void +blocking_resolver_finalize (GObject *object) +{ + LmBlockingResolverPriv *priv; + + priv = GET_PRIV (object); + + (G_OBJECT_CLASS (lm_blocking_resolver_parent_class)->finalize) (object); +} + +static void +blocking_resolver_lookup (LmResolver *resolver) +{ +} + +static void +blocking_resolver_cancel (LmResolver *resolver) +{ +} + diff -r 9eeae02afc18 -r 0cd193ceddaa loudmouth/lm-blocking-resolver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/loudmouth/lm-blocking-resolver.h Mon Jul 14 00:14:28 2008 +0200 @@ -0,0 +1,53 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* + * Copyright (C) 2008 Imendio AB + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __LM_BLOCKING_RESOLVER_H__ +#define __LM_BLOCKING_RESOLVER_H__ + +#include + +#include "lm-resolver.h" + +G_BEGIN_DECLS + +#define LM_TYPE_BLOCKING_RESOLVER (lm_blocking_resolver_get_type ()) +#define LM_BLOCKING_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LM_TYPE_BLOCKING_RESOLVER, LmBlockingResolver)) +#define LM_BLOCKING_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), LM_TYPE_BLOCKING_RESOLVER, LmBlockingResolverClass)) +#define LM_IS_BLOCKING_RESOLVER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LM_TYPE_BLOCKING_RESOLVER)) +#define LM_IS_BLOCKING_RESOLVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LM_TYPE_BLOCKING_RESOLVER)) +#define LM_BLOCKING_RESOLVER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), LM_TYPE_BLOCKING_RESOLVER, LmBlockingResolverClass)) + +typedef struct LmBlockingResolver LmBlockingResolver; +typedef struct LmBlockingResolverClass LmBlockingResolverClass; + +struct LmBlockingResolver { + LmResolver parent; +}; + +struct LmBlockingResolverClass { + LmResolverClass parent_class; +}; + +GType lm_blocking_resolver_get_type (void); + +G_END_DECLS + +#endif /* __LM_BLOCKING_RESOLVER_H__ */ +