Mercurial > pidgin
view libpurple/protocols/bonjour/mdns_types.h @ 17495:d7b50cac1c7a
This is a patch from Chris Davies to make Bonjour work on Windows using the Apple Bonjour framework. It turns out that the actual DNS-SD library is (3 clause) BSD licensed, so we can use it.
There are a few changes by me, mainly to fix the howl implementation.
Fixes #1117 .
There appear to be a few bugs, but I believe that they were also present previously. I'm hoping to do some more tweaking before the next release.
The howl implementation will eventually be supersceded by a native avahi implementation, so I opted for a somewhat dirty hack to enable it instead of doing something with config.h.
author | Daniel Atallah <daniel.atallah@gmail.com> |
---|---|
date | Tue, 05 Jun 2007 03:38:22 +0000 |
parents | |
children | c96b085ddf5c |
line wrap: on
line source
/* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU 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 Library General Public License for more details. * * You should have received a copy of the GNU 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 _BONJOUR_MDNS_TYPES #define _BONJOUR_MDNS_TYPES #include <glib.h> #include "account.h" #include "config.h" #ifdef USE_BONJOUR_APPLE #include "dns_sd_proxy.h" #else /* USE_BONJOUR_HOWL */ #include <howl.h> #endif #define ICHAT_SERVICE "_presence._tcp." /** * Data to be used by the dns-sd connection. */ typedef struct _BonjourDnsSd { #ifdef USE_BONJOUR_APPLE DNSServiceRef advertisement; DNSServiceRef browser; int advertisement_fd; /* hack... windows bonjour is broken, so we have to have this */ #else /* USE_BONJOUR_HOWL */ sw_discovery session; sw_discovery_oid session_id; #endif PurpleAccount *account; const char *name; gchar *txtvers; gchar *version; gchar *first; gchar *last; gint port_p2pj; gchar *phsh; gchar *status; gchar *email; gchar *vc; gchar *jid; gchar *AIM; gchar *msg; GHashTable *buddies; } BonjourDnsSd; typedef enum _PublishType { PUBLISH_START, PUBLISH_UPDATE } PublishType; #endif