Mercurial > pidgin
view libgaim/protocols/bonjour/dns_sd.h @ 14195:902c3aa4950a
[gaim-migrate @ 16867]
Revamped the QQ proxy code.
Fixed an infinite loop that was occurring if we hit qq_input_pending() with an unexpected value of cond.
Rewrote part of qq_proxy.c so that we use Gaim's non-blocking dns lookups.
Quieted some warnings created by new code in proxy.c and passed appropriate error messages to _qq_got_login().
Added some extra error handling to qq_proxy_write().
I was beginning to do major clean-up on this this code when I realized that once that clean-up is done, I will have duplicated a very large amount of code from proxy.c. Therefore, I am submitting this working code now and will later submit a patch to gaim-devel that will add support for UDP proxying in proxy.c, thus eliminating the need for such code in the individual prpls.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Huetsch <markhuetsch> |
---|---|
date | Sat, 19 Aug 2006 02:32:55 +0000 |
parents | 60b1bc8dbf37 |
children |
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_DNS_SD #define _BONJOUR_DNS_SD #include <howl.h> #include <glib.h> #include "account.h" #define ICHAT_SERVICE "_presence._tcp." /** * Data to be used by the dns-sd connection. */ typedef struct _BonjourDnsSd { sw_discovery session; sw_discovery_oid session_id; GaimAccount *account; gchar *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; /** * Allocate space for the dns-sd data. */ BonjourDnsSd *bonjour_dns_sd_new(void); /** * Deallocate the space of the dns-sd data. */ void bonjour_dns_sd_free(BonjourDnsSd *data); /** * Send a new dns-sd packet updating our status. */ void bonjour_dns_sd_send_status(BonjourDnsSd *data, const char *status, const char *status_message); /** * Advertise our presence within the dns-sd daemon and start * browsing for other bonjour peers. */ gboolean bonjour_dns_sd_start(BonjourDnsSd *data); /** * Unregister the "_presence._tcp" service at the mDNS daemon. */ void bonjour_dns_sd_stop(BonjourDnsSd *data); #endif