Debian Bug report logs - #562647
gidentd: Does not work with ipv4 after recent change in netbase

version graph

Package: gidentd; Maintainer for gidentd is (unknown);

Reported by: Kurt Roeckx <kurt@roeckx.be>

Date: Sat, 26 Dec 2009 18:27:05 UTC

Severity: serious

Tags: sid, squeeze

Found in version gidentd/0.4.5+dfsg1-0.2

Fixed in version 0.4.5+dfsg1-0.2+rm

Done: Sandro Tosi <morph@debian.org>

Bug is archived. No further changes may be made.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Martin Loschwitz <madkiss@debian.org>:
Bug#562647; Package gidentd. (Sat, 26 Dec 2009 18:27:08 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kurt Roeckx <kurt@roeckx.be>:
New Bug report received and forwarded. Copy sent to Martin Loschwitz <madkiss@debian.org>. (Sat, 26 Dec 2009 18:27:08 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Kurt Roeckx <kurt@roeckx.be>
To: submit@bugs.debian.org
Subject: gidentd: Does not work with ipv4 after recent change in netbase
Date: Sat, 26 Dec 2009 19:23:37 +0100
Package: gidentd
Version: 0.4.5+dfsg1-0.2
Severity: serious

Hi,

netbase has recently changed the default of the setsockopt()
IPV6_V6ONLY to 1 so that it behaves the same as on most other
OS's.  It seems that your application doesn't work with ipv4
anymore now:

$ telnet 127.0.0.1 113
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
$ netstat -tan |grep 113
tcp6       0      0 :::113                  :::*                    LISTEN

Before this change the socket allowed both ipv4 and ipv6
connections where ipv4 would get mapped to an ipv6 address.  The
change disabled that.

You need to open a socket for both ipv4 and ipv6, and call
setsockopt() with IPV6_V6ONLY set to 1 for the ipv6 socket.


Kurt





Added tag(s) pending. Request was from Thorsten Glaser <tg@mirbsd.de> to control@bugs.debian.org. (Thu, 31 Dec 2009 23:03:06 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Martin Loschwitz <madkiss@debian.org>:
Bug#562647; Package gidentd. (Thu, 31 Dec 2009 23:12:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thorsten Glaser <tg@mirbsd.de>:
Extra info received and forwarded to list. Copy sent to Martin Loschwitz <madkiss@debian.org>. (Thu, 31 Dec 2009 23:12:03 GMT) Full text and rfc822 format available.

Message #12 received at 562647@bugs.debian.org (full text, mbox):

From: Thorsten Glaser <tg@mirbsd.de>
To: 562647@bugs.debian.org
Cc: control@bugs.debian.org
Subject: gidentd: diff for NMU version 0.4.5+dfsg1-0.3
Date: Thu, 31 Dec 2009 22:57:20 +0000 (UTC)
[Message part 1 (text/plain, inline)]
tags 562647 + pending
thanks

Dear Martin,

I have prepared an NMU for gidentd (version 0.4.5+dfsg1-0.3) to fix
the RC bug #562647 (Does not work with ipv4 after recent change in
netbase) as well as a number of other problems with the package, for
example lintian’s complaints and that configure was run multiple ti-
mes during the build process. I have also raised the debhelper com-
pat to 5 and bumped Standards-Version accordingly.

I will ask my AM to upload it to DELAYED/5, according to devref §5.11.1.
Please find the diff attached.

bye,
//mirabilos
-- 
Solange man keine schmutzigen Tricks macht, und ich meine *wirklich*
schmutzige Tricks, wie bei einer doppelt verketteten Liste beide
Pointer XORen und in nur einem Word speichern, funktioniert Boehm ganz
hervorragend.		-- Andreas Bogk über boehm-gc in d.a.s.r
[gidentd_0.4.5+dfsg1-0.3.debdiff (text/plain, attachment)]

Information forwarded to debian-bugs-dist@lists.debian.org, Martin Loschwitz <madkiss@debian.org>:
Bug#562647; Package gidentd. (Sat, 02 Jan 2010 21:12:08 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thorsten Glaser <tg@mirbsd.de>:
Extra info received and forwarded to list. Copy sent to Martin Loschwitz <madkiss@debian.org>. (Sat, 02 Jan 2010 21:12:08 GMT) Full text and rfc822 format available.

Message #17 received at 562647@bugs.debian.org (full text, mbox):

From: Thorsten Glaser <tg@mirbsd.de>
To: 552791@bugs.debian.org, 562647@bugs.debian.org
Subject: updated patches coming soon
Date: Sat, 2 Jan 2010 20:59:25 +0000 (UTC)
Hi,

updated patches coming soon, as I was asked to split between
the RC and other urgent fixes (like ftp rejects) and the other
fixes, which will go into separate bugreports.

Of course, if you're faster, feel free to make a new upload
with my patches.




Information forwarded to debian-bugs-dist@lists.debian.org, Martin Loschwitz <madkiss@debian.org>:
Bug#562647; Package gidentd. (Sun, 03 Jan 2010 16:12:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thorsten Glaser <tg@mirbsd.de>:
Extra info received and forwarded to list. Copy sent to Martin Loschwitz <madkiss@debian.org>. (Sun, 03 Jan 2010 16:12:06 GMT) Full text and rfc822 format available.

Message #22 received at 562647@bugs.debian.org (full text, mbox):

From: Thorsten Glaser <tg@mirbsd.de>
To: 562647@bugs.debian.org
Subject: gidentd: diff for NMU version 0.4.5+dfsg1-0.3
Date: Sun, 3 Jan 2010 16:07:53 +0000 (UTC)
[Message part 1 (text/plain, inline)]
Hi,

Hi,

same as last time, but this time, only fixing this particular bug.
Will ask my AM to upload to DELAYED/5.

//mirabilos
-- 
Sometimes they [people] care too much: pretty printers [and syntax highligh-
ting, d.A.] mechanically produce pretty output that accentuates irrelevant
detail in the program, which is as sensible as putting all the prepositions
in English text in bold font.	-- Rob Pike in "Notes on Programming in C"
[gidentd_0.4.5+dfsg1-0.3.debdiff (text/plain, ATTACHMENT)]
diff -u gidentd-0.4.5+dfsg1/debian/changelog gidentd-0.4.5+dfsg1/debian/changelog
--- gidentd-0.4.5+dfsg1/debian/changelog
+++ gidentd-0.4.5+dfsg1/debian/changelog
@@ -1,3 +1,10 @@
+gidentd (0.4.5+dfsg1-0.3) unstable; urgency=low
+
+  * Non-maintainer upload.
+  * Overhaul IPv4/IPv6 handling. (Closes: #562647)
+
+ -- Thorsten Glaser <tg@mirbsd.de>  Thu, 31 Dec 2009 22:48:49 +0000
+
 gidentd (0.4.5+dfsg1-0.2) unstable; urgency=low
 
   * Non-maintainer upload.
diff -u gidentd-0.4.5+dfsg1/debian/gidentd.8 gidentd-0.4.5+dfsg1/debian/gidentd.8
--- gidentd-0.4.5+dfsg1/debian/gidentd.8
+++ gidentd-0.4.5+dfsg1/debian/gidentd.8
@@ -32,11 +32,11 @@
 
 .TP
 .B "\-4"
-Run \fBgidentd\fP in IPv4 mode, don't use IPv6.
+Run \fBgidentd\fP in IPv4 only mode, don't use IPv6.
 
 .TP
 .B "\-6"
-Run \fBgidentd\fP in IPv6 mode.
+Run \fBgidentd\fP in IPv6 only mode, don't use IPv4.
 
 .TP
 .B "\-a"
diff -u gidentd-0.4.5+dfsg1/debian/patches/00list gidentd-0.4.5+dfsg1/debian/patches/00list
--- gidentd-0.4.5+dfsg1/debian/patches/00list
+++ gidentd-0.4.5+dfsg1/debian/patches/00list
@@ -3,0 +4 @@
+04_562647.dpatch
only in patch2:
unchanged:
--- gidentd-0.4.5+dfsg1.orig/debian/patches/04_562647.dpatch
+++ gidentd-0.4.5+dfsg1/debian/patches/04_562647.dpatch
@@ -0,0 +1,327 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 562647.dpatch by  Thorsten Glaser <tg@mirbsd.de>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: Overhaup IPv4/IPv6 handling
+
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+case "$1" in
+    -patch) patch -f --no-backup-if-mismatch -p1 < $0;;
+    -unpatch) patch -f --no-backup-if-mismatch -R -p1 < $0;;
+    *)
+        echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+        exit 1;;
+esac
+
+exit 0
+
+diff -pruN gidentd-0.4.5+dfsg1.prepatch/config.c gidentd-0.4.5+dfsg1.postpatch/config.c
+--- gidentd-0.4.5+dfsg1.prepatch/config.c	2009-12-31 21:36:19.000000000 +0000
++++ gidentd-0.4.5+dfsg1.postpatch/config.c	2009-12-31 22:12:49.000000000 +0000
+@@ -15,15 +15,15 @@ static void defaultconfig(void)
+ 	config.logfile="/var/log/gidentd.log";
+ 	config.pidfile="/var/run/gidentd.pid";
+ 	config.port=113;
+-	config.forcev4=0;
++	config.forceproto=0;
+ 	config.inetd=0;
+ }
+ 
+ static void display_help(char *prog)
+ {
+ 	printf("Usage: %s [-46adhi] [-c configfile] [-l logfile] [-p port]\n", prog);
+-	printf("-4 --ipv4		: do not use ipv6\n");
+-	printf("-6 --ipv6		: use ipv6 if available, fallback to ipv4\n");
++	printf("-4 --ipv4		: use IPv4 only, do not use IPv6\n");
++	printf("-6 --ipv6		: use IPv6 only, do not use IPv4\n");
+ 	printf("-a --auto		: auto detect inetd\n");
+ 	printf("-c --config <file>	: use configfile <file>\n");
+ 	printf("-d --daemon		: force daemon mode\n");
+@@ -60,11 +60,11 @@ void GetConfig(int argc, char **argv)
+ 	while((c=getopt_long(argc, argv, "46acdhil:P:p:", long_options, &option_index))>=0) {
+ 		switch(c) {
+ 		case '4':
+-			config.forcev4=1;
++			config.forceproto=4;
+ 			break;
+ 
+ 		case '6':
+-			config.forcev4=0;
++			config.forceproto=6;
+ 			break;
+ 
+ 		case 'a':
+diff -pruN gidentd-0.4.5+dfsg1.prepatch/config.h gidentd-0.4.5+dfsg1.postpatch/config.h
+--- gidentd-0.4.5+dfsg1.prepatch/config.h	2009-12-31 21:36:19.000000000 +0000
++++ gidentd-0.4.5+dfsg1.postpatch/config.h	2009-12-31 22:12:49.000000000 +0000
+@@ -2,7 +2,7 @@ typedef struct {
+ 	char *logfile;
+ 	char *pidfile;
+ 	int port;
+-	int forcev4;
++	int forceproto;
+ 	int inetd; // 0: auto  1: inetd  2: daemon
+ } IdentdConf;
+ extern IdentdConf config;
+diff -pruN gidentd-0.4.5+dfsg1.prepatch/gidentd.c gidentd-0.4.5+dfsg1.postpatch/gidentd.c
+--- gidentd-0.4.5+dfsg1.prepatch/gidentd.c	2009-12-31 21:36:19.000000000 +0000
++++ gidentd-0.4.5+dfsg1.postpatch/gidentd.c	2009-12-31 22:12:49.000000000 +0000
+@@ -47,7 +47,7 @@ int main(int argc, char **argv)
+  	} else {
+ 		Log("gidentd v%s started in daemon mode.", VERSION);
+ 		BgProcess(); // close open files && become daemon
+-		OpenListenSock(config.port, config.forcev4); // open listening sock
++		OpenListenSock(config.port, config.forceproto); // open listening sock
+  
+  		if (open_proc_files() < 0)
+  			return 1;
+diff -pruN gidentd-0.4.5+dfsg1.prepatch/request.c gidentd-0.4.5+dfsg1.postpatch/request.c
+--- gidentd-0.4.5+dfsg1.prepatch/request.c	2009-12-31 21:36:19.000000000 +0000
++++ gidentd-0.4.5+dfsg1.postpatch/request.c	2009-12-31 22:19:46.000000000 +0000
+@@ -1,3 +1,4 @@
++#include <string.h>
+ #include "parse.h"
+ #include "socket.h"
+ #include "request.h"
+@@ -15,7 +16,7 @@ int Handle_Request(char *line)
+ 		return(-1);
+ 	}
+ 		
+-	switch(ipversion) {
++	switch(ipversion_child) {
+ 	case 4:
+ 		req.uid=tcp4();
+ 		break;
+diff -pruN gidentd-0.4.5+dfsg1.prepatch/socket.c gidentd-0.4.5+dfsg1.postpatch/socket.c
+--- gidentd-0.4.5+dfsg1.prepatch/socket.c	2009-12-31 21:36:19.000000000 +0000
++++ gidentd-0.4.5+dfsg1.postpatch/socket.c	2009-12-31 22:23:47.000000000 +0000
+@@ -9,6 +9,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <errno.h>
++#include <poll.h>
+ #include <string.h>
+ 
+ #include "log.h"
+@@ -17,11 +18,15 @@
+ 
+ #define TIMEOUT 120
+ 
++#ifndef INFTIM
++#define INFTIM (-1)
++#endif
++
+ int inetd;
+-int ipversion;
++int ipversion_child;
+ Conn_Struct conn;
+ 
+-static int s;
++static int s, s4 = -1, s6 = -1;
+ 
+ void SetInetdSocket()
+ {
+@@ -31,42 +36,75 @@ void SetInetdSocket()
+ 
+ int NewConn(void)
+ {
+-	struct sockaddr_in6 sa;
+-	socklen_t slt=sizeof(sa);
+-	int s2;
++	union {
++		struct sockaddr sa;
++		struct sockaddr_in sin;
++		struct sockaddr_in6 sin6;
++	} su;
++	socklen_t slt=sizeof(su);
++	int s0, s2, ipversion;
+ 	char rmt[40], loc[40];
+ 	
+ 	if(inetd) {
+-		if(getpeername(s, (struct sockaddr *)&sa, &slt))
++		if(getpeername(s, &su.sa, &slt))
+ 			LogError("getpeername");
+-		ipversion=((struct sockaddr *)&sa)->sa_family==AF_INET?4:6;
++		ipversion=su.sa.sa_family==AF_INET?4:6;
+ 	} else {
+-		if((s2=accept(s, (struct sockaddr *)&sa, &slt))<0)
++		if (s4 != -1 && s6 != -1) {
++			struct pollfd pfds[2];
++			int i;
++
++			pfds[0].fd = s4;
++			pfds[1].fd = s6;
++			pfds[0].events = POLLIN;
++			pfds[1].events = POLLIN;
++
++			for (;;) {
++				if (poll(pfds, 2, INFTIM) < 0) {
++					if (errno == EINTR || errno == EAGAIN)
++						continue;
++					LogError("poll");
++				}
++				for (i = 0; i < 2; ++i)
++					if (pfds[i].revents & POLLIN) {
++						s0 = pfds[i].fd;
++						break;
++					}
++			}
++		} else
++			s0 = s4 == -1 ? s6 : s4;
++
++		ipversion = s0 == s4 ? 4 : 6;
++		if((s2=accept(s0, &su.sa, &slt))<0)
+ 			LogError("accept");
+ 		if(fork()) {
+ 			close(s2);
+ 			return(1);
+ 		}
+-		close(s);
++		if (s4 != -1)
++			close(s4);
++		if (s6 != -1)
++			close(s6);
+ 		s=s2;
++		ipversion_child = ipversion;
+ 	}
+ 	if(ipversion==6) {
+-		conn.rh=sa.sin6_addr;
+-		conn.rp=htons(sa.sin6_port);
++		conn.rh=su.sin6.sin6_addr;
++		conn.rp=htons(su.sin6.sin6_port);
+ 	} else {
+-		conn.rh.s6_addr32[3]=((struct sockaddr_in *)&sa)->sin_addr.s_addr;
+-		conn.rp=htons(((struct sockaddr_in *)&sa)->sin_port);
++		conn.rh.s6_addr32[3]=su.sin.sin_addr.s_addr;
++		conn.rp=htons(su.sin.sin_port);
+ 	}
+ 	
+-	if(getsockname(s, (struct sockaddr *)&sa, &slt))
++	if(getsockname(s, &su.sa, &slt))
+ 		LogError("getsockname");
+ 
+ 	if(ipversion==6) {
+-		conn.lh=sa.sin6_addr;
+-		conn.lp=htons(sa.sin6_port);
++		conn.lh=su.sin6.sin6_addr;
++		conn.lp=htons(su.sin6.sin6_port);
+ 	} else {
+-		conn.lh.s6_addr32[3]=((struct sockaddr_in *)&sa)->sin_addr.s_addr;
+-		conn.lp=htons(((struct sockaddr_in *)&sa)->sin_port);
++		conn.lh.s6_addr32[3]=su.sin.sin_addr.s_addr;
++		conn.lp=htons(su.sin.sin_port);
+ 	}
+ 	
+ 	// Log
+@@ -76,7 +114,7 @@ int NewConn(void)
+ 	return(0);
+ }
+ 
+-static void BindListen(int port)
++static void BindListen(int port, int ipversion)
+ {
+ 	socklen_t slt;
+ 	struct sockaddr *sa;
+@@ -100,39 +138,48 @@ static void BindListen(int port)
+ 	}
+ 	
+ 	
+-	if(bind(s, sa, slt))
++	if(bind(ipversion==4?s4:s6, sa, slt))
+ 		LogError("bind");
+-	if(listen(s,3))
++	if(listen(ipversion==4?s4:s6,3))
+ 		LogError("listen");
+ 	Log("Using IPv%i", ipversion);
+ }
+ 
+-void OpenListenSock(int port, int forcev4)
++void OpenListenSock(int port, int forceproto)
+ {
+ 	int one=1;
+-	
+-	if (!forcev4) {
+-		if((s = socket(PF_INET6, SOCK_STREAM, 0)) < 0) { 
++
++	if (forceproto != 4) {
++		if((s6 = socket(PF_INET6, SOCK_STREAM, 0)) < 0) { 
+ 			if(errno!=EAFNOSUPPORT)
+ 				LogError("socket");
+ 			else
+ 				Log("IPv6 not available");
+ 		} else {
+-			if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&one,sizeof(one)))
++			if(setsockopt(s6,SOL_SOCKET,SO_REUSEADDR,&one,sizeof(one)))
+ 				LogError("setsockopt");
+-			ipversion=6;
+-			return(BindListen(port));
++#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY)
++			if(setsockopt(s6,IPPROTO_IPV6,IPV6_V6ONLY,&one,sizeof(one)))
++				LogError("setsockopt");
++#endif
++			BindListen(port, 6);
+ 		}
+ 	}
+ 	
+-	if ((s = socket(PF_INET, SOCK_STREAM, 0)) < 0)
+-		LogError("socket");
+-	
+-	if(setsockopt(s,SOL_SOCKET,SO_REUSEADDR,&one,sizeof(one)))
+-		LogError("setsockopt");
++	if (forceproto != 6) {
++		if ((s4 = socket(PF_INET, SOCK_STREAM, 0)) < 0)
++			LogError("socket");
++		
++		if(setsockopt(s4,SOL_SOCKET,SO_REUSEADDR,&one,sizeof(one)))
++			LogError("setsockopt");
++
++		BindListen(port, 4);
++	}
+ 
+-	ipversion=4;
+-	return(BindListen(port));
++	if (s4 == -1 && s6 == -1) {
++		Log("No listen socket available");
++		exit(1);
++	}
+ }
+ 
+ char *ReadLine(void)
+diff -pruN gidentd-0.4.5+dfsg1.prepatch/socket.h gidentd-0.4.5+dfsg1.postpatch/socket.h
+--- gidentd-0.4.5+dfsg1.prepatch/socket.h	2009-12-31 21:36:19.000000000 +0000
++++ gidentd-0.4.5+dfsg1.postpatch/socket.h	2009-12-31 22:18:41.000000000 +0000
+@@ -1,8 +1,8 @@
+ #include <netinet/in.h>
+ 
+-extern int ipversion;
++extern int ipversion_child;
+ extern int inetd;
+-void OpenListenSock(int port, int forcev4);
++void OpenListenSock(int port, int forceproto);
+ char *ReadLine(void);
+ void SetInetdSocket();
+ int NewConn(void);
+diff -pruN gidentd-0.4.5+dfsg1.prepatch/system.c gidentd-0.4.5+dfsg1.postpatch/system.c
+--- gidentd-0.4.5+dfsg1.prepatch/system.c	2009-12-31 21:36:19.000000000 +0000
++++ gidentd-0.4.5+dfsg1.postpatch/system.c	2009-12-31 22:12:49.000000000 +0000
+@@ -88,6 +88,9 @@ void BgProcess(void)
+ // signal handler
+ static void sighandler(int s)
+ {
++	int e;
++
++	e = errno;
+ 	switch(s) {
+ 		case SIGCHLD:
+ 			while(waitpid(-1, NULL, WNOHANG)>0);
+@@ -96,6 +99,7 @@ static void sighandler(int s)
+ 			Log("received SIGTERM, exiting");
+ 			exit(0);
+ 	}
++	errno = e;
+ }
+ 
+ // install signal handler for signal sig

Information forwarded to debian-bugs-dist@lists.debian.org, Martin Loschwitz <madkiss@debian.org>:
Bug#562647; Package gidentd. (Sun, 03 Jan 2010 16:48:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Julien Cristau <jcristau@debian.org>:
Extra info received and forwarded to list. Copy sent to Martin Loschwitz <madkiss@debian.org>. (Sun, 03 Jan 2010 16:48:03 GMT) Full text and rfc822 format available.

Message #27 received at 562647@bugs.debian.org (full text, mbox):

From: Julien Cristau <jcristau@debian.org>
To: Thorsten Glaser <tg@mirbsd.de>, 562647@bugs.debian.org
Subject: Re: Bug#562647: gidentd: diff for NMU version 0.4.5+dfsg1-0.3
Date: Sun, 3 Jan 2010 16:41:15 +0000
On Sun, Jan  3, 2010 at 16:07:53 +0000, Thorsten Glaser wrote:

> Hi,
> 
> same as last time, but this time, only fixing this particular bug.
> Will ask my AM to upload to DELAYED/5.
> 
Shouldn't we remove this package instead?  It has had exactly one upload
by its current maintainer, in 2003, and I'm sure we have other ident
daemons.

Cheers,
Julien




Information forwarded to debian-bugs-dist@lists.debian.org, Martin Loschwitz <madkiss@debian.org>:
Bug#562647; Package gidentd. (Sun, 03 Jan 2010 16:54:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Thorsten Glaser <tg@mirbsd.de>:
Extra info received and forwarded to list. Copy sent to Martin Loschwitz <madkiss@debian.org>. (Sun, 03 Jan 2010 16:54:06 GMT) Full text and rfc822 format available.

Message #32 received at 562647@bugs.debian.org (full text, mbox):

From: Thorsten Glaser <tg@mirbsd.de>
To: Julien Cristau <jcristau@debian.org>
Cc: 562647@bugs.debian.org
Subject: Re: Bug#562647: gidentd: diff for NMU version 0.4.5+dfsg1-0.3
Date: Sun, 3 Jan 2010 16:51:16 +0000 (UTC)
Julien Cristau dixit:

>Shouldn't we remove this package instead?  It has had exactly one upload
>by its current maintainer, in 2003, and I'm sure we have other ident
>daemons.

Well, it *does* have some users:
http://qa.debian.org/popcon.php?package=gidentd

However, its original author said he doesn’t even really want to
look at the source code any more and would do things in a diffe-
rent way today.

If you find another ident dæmon with the same functionality, no
objections from me (although this doesn’t count for much anyway).
This is a good textbook example of how to fix IPv6 bugs though ☺
and the code is simple and clean enough for that, and it looks,
except for the signal handler, good enough to me on first look.
I think if there is interest (not me) one could take this over.

Interestingly enough, the Debian pool is taken as upstream dist-
file source for Gentoo GNU/Linux… so popcon is not all.

bye,
//mirabilos
-- 
Sometimes they [people] care too much: pretty printers [and syntax highligh-
ting, d.A.] mechanically produce pretty output that accentuates irrelevant
detail in the program, which is as sensible as putting all the prepositions
in English text in bold font.	-- Rob Pike in "Notes on Programming in C"




Reply sent to Sandro Tosi <morph@debian.org>:
You have taken responsibility. (Mon, 04 Jan 2010 21:51:58 GMT) Full text and rfc822 format available.

Notification sent to Kurt Roeckx <kurt@roeckx.be>:
Bug acknowledged by developer. (Mon, 04 Jan 2010 21:52:01 GMT) Full text and rfc822 format available.

Message #37 received at 562647-done@bugs.debian.org (full text, mbox):

From: Sandro Tosi <morph@debian.org>
To: 523830-done@bugs.debian.org, 374252-done@bugs.debian.org, 563525-done@bugs.debian.org, 368643-done@bugs.debian.org, 562647-done@bugs.debian.org, 522695-done@bugs.debian.org, 189504-done@bugs.debian.org, 320135-done@bugs.debian.org, 437652-done@bugs.debian.org, 203221-done@bugs.debian.org, 377891-done@bugs.debian.org
Subject: Package removed from Debian unstable
Date: Mon, 4 Jan 2010 22:48:50 +0100
Version: 0.4.5+dfsg1-0.2+rm

Package removed from Debian unstable: http://bugs.debian.org/563580

-- 
Sandro Tosi (aka morph, morpheus, matrixhasu)
My website: http://matrixhasu.altervista.org/
Me at Debian: http://wiki.debian.org/SandroTosi




Added tag(s) sid and squeeze. Request was from Gerfried Fuchs <rhonda@debian.at> to control@bugs.debian.org. (Fri, 12 Mar 2010 10:27:12 GMT) Full text and rfc822 format available.

Bug archived. Request was from Debbugs Internal Request <owner@bugs.debian.org> to internal_control@bugs.debian.org. (Mon, 07 Feb 2011 08:05:24 GMT) Full text and rfc822 format available.

Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Sun Apr 20 21:04:22 2014; Machine Name: beach.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.