From owner-freebsd-gnome@FreeBSD.ORG Wed Nov 14 05:33:28 2007 Return-Path: Delivered-To: freebsd-gnome@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7554D16A417 for ; Wed, 14 Nov 2007 05:33:28 +0000 (UTC) (envelope-from prvs=dleigh=8318104ab@cs.rmit.edu.au) Received: from mail-ext2.rmit.edu.au (mail-ext2.rmit.edu.au [131.170.21.12]) by mx1.freebsd.org (Postfix) with ESMTP id B049813C458 for ; Wed, 14 Nov 2007 05:33:27 +0000 (UTC) (envelope-from prvs=dleigh=8318104ab@cs.rmit.edu.au) X-SBRS: None X-IronPort-AV: E=Sophos;i="4.21,413,1188741600"; d="diff'?scan'208";a="41027661" Received: from wombat.cs.rmit.edu.au ([131.170.24.41]) by mail-int2.rmit.edu.au with ESMTP; 14 Nov 2007 16:23:07 +1100 Received: from yallara.cs.rmit.edu.au (yallara.cs.rmit.edu.au [131.170.24.42]) by wombat.cs.rmit.edu.au (8.12.10/8.12.10/cshub) with ESMTP id lAE5N51h028179 for ; Wed, 14 Nov 2007 16:23:08 +1100 (EST) Received: from yallara.cs.rmit.edu.au (localhost [127.0.0.1]) by yallara.cs.rmit.edu.au (8.13.8+Sun/8.13.4/csnode) with ESMTP id lAE5N1DM027848 for ; Wed, 14 Nov 2007 16:23:03 +1100 (EST) Received: (from dleigh@localhost) by yallara.cs.rmit.edu.au (8.13.8+Sun/8.13.8/Submit) id lAE5Mw3p027843 for freebsd-gnome@freebsd.org; Wed, 14 Nov 2007 16:22:58 +1100 (EST) Date: Wed, 14 Nov 2007 16:22:58 +1100 From: Dylan Leigh To: freebsd-gnome@freebsd.org Message-ID: <20071114052258.GA27807@cs.rmit.edu.au> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="fUYQa+Pmc3FrFX/N" Content-Disposition: inline X-PGP-Fingerprint: B761 12AA 50E6 9EEA 7F82 D78A 56FE 679B 0934 99E1 X-PGP-Secure-Key-Storage: No X-RMIT-Student-Number: 3017239 X-Author-Webpage: http://yallara.cs.rmit.edu.au/~dleigh X-Quote: 519 of 1155 User-Agent: Mutt/1.5.13 (2006-08-11) Subject: GDM XDMCP Patch (Was: GDM XDCMP logins doesn`t work) X-BeenThere: freebsd-gnome@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: GNOME for FreeBSD -- porting and maintaining List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Nov 2007 05:33:28 -0000 --fUYQa+Pmc3FrFX/N Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Frank Mayhar: > I just found a reference to this problem here: > http://www.nabble.com/remaining-issues-with-gnome-2.20-t4721430.html > I'm not yet sure what, if anything, to do about it. This patch (from Robert Nelson, GNOME bugs #494817 and #495623) fixed the problem for me. -- Dylan Leigh - http://yallara.cs.rmit.edu.au/~dleigh/ >> I've never been all that classy. > You must be a primitive type, then. --fUYQa+Pmc3FrFX/N Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="gdmpatch.diff" --- gdm-2.20.1-orig/common/gdm-common.c 2007-10-15 14:42:43.000000000 -0700 +++ gdm-2.20.1/common/gdm-common.c 2007-11-07 03:47:39.743191000 -0800 @@ -107,7 +107,7 @@ host [0] = '\0'; serv [0] = '\0'; getnameinfo ((const struct sockaddr *)ss, - sizeof (struct sockaddr_storage), + gdm_sockaddr_len(ss), host, sizeof (host), serv, sizeof (serv), NI_NUMERICHOST | NI_NUMERICSERV); --- gdm-2.20.1-orig/common/gdm-common.h 2007-10-15 14:42:43.000000000 -0700 +++ gdm-2.20.1/common/gdm-common.h 2007-11-07 03:39:21.170717000 -0800 @@ -38,6 +38,7 @@ G_BEGIN_DECLS +#define gdm_sockaddr_len(sa) (((struct sockaddr *)sa)->sa_family == AF_INET6 ? sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in)) gboolean gdm_address_equal (struct sockaddr_storage *sa, struct sockaddr_storage *sb); --- gdm-2.20.1-orig/daemon/gdm-xdmcp-manager.c 2007-10-15 14:43:04.000000000 -0700 +++ gdm-2.20.1/daemon/gdm-xdmcp-manager.c 2007-11-07 03:39:02.292252000 -0800 @@ -762,7 +762,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); g_free (status.data); } @@ -805,7 +805,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); last_time = time (NULL); } @@ -907,7 +907,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr) sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); g_free (port.data); g_free (address.data); @@ -1435,7 +1435,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); g_free (address.data); } @@ -1507,7 +1507,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); } static void @@ -1655,7 +1655,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); /* Send MANAGED_FORWARD to indicate that the connection * reached some sort of resolution */ @@ -1805,7 +1805,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); gdm_address_get_info (clnt_sa, &host, NULL); g_debug ("XDMCP: Sending ACCEPT to %s with SessionID=%ld", @@ -2107,7 +2107,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); } static void @@ -2131,7 +2131,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); /* * This was from a forwarded query quite apparently so @@ -2384,7 +2384,7 @@ XdmcpFlush (manager->priv->socket_fd, &manager->priv->buf, (XdmcpNetaddr)clnt_sa, - (int)sizeof (struct sockaddr_storage)); + (int)gdm_sockaddr_len(clnt_sa)); } static void --- gdm-2.20.1-orig/daemon/misc.c 2007-10-15 14:43:04.000000000 -0700 +++ gdm-2.20.1/daemon/misc.c 2007-11-07 05:43:51.117408000 -0800 @@ -899,7 +899,6 @@ static GList *the_list = NULL; static time_t last_time = 0; char hostbuf[BUFSIZ]; - struct addrinfo hints; struct addrinfo *result; struct addrinfo *res; @@ -920,13 +919,7 @@ snprintf (hostbuf, BUFSIZ-1, "localhost"); } - memset (&hints, 0, sizeof (hints)); - hints.ai_family = AF_INET; -#ifdef ENABLE_IPV6 - hints.ai_family |= AF_INET6; -#endif - - if (getaddrinfo (hostbuf, NULL, &hints, &result) != 0) { + if (getaddrinfo (hostbuf, NULL, NULL, &result) != 0) { gdm_debug ("%s: Could not get address from hostname!", "gdm_peek_local_address_list"); return NULL; --fUYQa+Pmc3FrFX/N--