NetBSD Problem Report #25810

Received: (qmail 800 invoked by uid 605); 3 Jun 2004 21:01:54 -0000
Message-Id: <200406032101.i53L1irP012796@chassiron.antioche.eu.org>
Date: Thu, 3 Jun 2004 23:01:47 +0200 (MEST)
From: bouyer@antioche.eu.org (Manuel Bouyer)
Sender: gnats-bugs-owner@NetBSD.org
Reply-To: bouyer@antioche.eu.org (Manuel Bouyer)
To: gnats-bugs@gnats.NetBSD.org
Subject: ipf4 ftp proxy has problems with long 221- lines
X-Send-Pr-Version: 3.95

>Number:         25810
>Category:       kern
>Synopsis:       ipf4 ftp proxy has problems with long 221- lines
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    ipf-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Thu Jun 03 21:02:00 +0000 2004
>Closed-Date:    
>Last-Modified:  Thu Nov 11 07:00:03 +0000 2010
>Originator:     Manuel Bouyer
>Release:        NetBSD 2.0_BETA, includes the last ipf-related pullups
>Organization:
>Environment:
System: NetBSD chassiron.antioche.eu.org 2.0_BETA NetBSD 2.0_BETA (CHASSIRON) #2: Mon May 31 17:22:50 CEST 2004 bouyer@pop.lip6.fr:/local/pop1/bouyer/tmp/sparc/obj/local/pop1/bouyer/netbsd-2-0/src/sys/arch/sparc/compile/CHASSIRON sparc
Architecture: sparc
Machine: sparc
>Description:
	This sparc box is running as ipf/ipnat gateway.
	There is a minor problem since I upgraded to 2.0_BETA with the ipnat
	ftp proxy:
rochebonne:~> ftp -a asim.lip6.fr
Connected to asim.lip6.fr.
220-

            Bienvenue au departement [A]rchitecture des
                                     [S]ystemes
                                     [I]ntegres et
                                     [M]icro-electronique

                                  du [L]aboratoire
                                  d' [I]nformatique
                                  de [P]aris
                                     [6]

220 asim.lip6.fr FTP server (NetBSD-ftpd 20020615) ready.
331 Guest login ok, type your name as password.
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221-
[hang here, and after some time]
421 Service not available, remote server timed out. Connection closed
After the quit I should get:
221-
    Data traffic for this session was 0 bytes in 0 files.
    Total traffic for this session was 902 bytes in 0 transfers.
221 Thank you for using the FTP service on asim.lip6.fr.

With another ftp server:
rochebonne:~> ftp -a ftp.lip6.fr
Connected to nephtys.lip6.fr.
220-
220-        -- BIENVENUE SUR LE NOUVEAU SERVEUR FTP LIP6/JUSSIEU --
220-Utilisez le compte `anonymous' avec votre adresse e-mail comme mot de passe
220-    Merci de signaler les problèmes éventuels à ftpmaint@lip6.fr.
220-
220-    -- WELCOME ON THE NEW LIP6/JUSSIEU FTP SERVER --
220-    Please login as `anonymous' with your e-mail address as password
220-            Please report problems to ftpmaint@lip6.fr.
220-
220-
220 ftp.lip6.fr FTP server ready.
331 Guest login ok, send your complete e-mail address as password.
[...]
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> quit
221-You have transferred 0 bytes in 0 files.
221-Total traffic for this session was 1842 bytes in 0 transfers.
221-Thank you for using the FTP service on ftp.lip6.fr.
221 Goodbye.

I don't know what is the root cause - the \n in the 221- anserw, or the
lenght of the anserw.

>How-To-Repeat:
	ftp to asim.lip6.fr, or ftp.fr.netbsd.org, from a box behind a
	2.0_BETA NAT box.
>Fix:
	Unkown
>Release-Note:
>Audit-Trail:
Responsible-Changed-From-To: kern-bug-people->darrenr 
Responsible-Changed-By: darrenr 
Responsible-Changed-When: Fri Jun 4 17:03:44 UTC 2004 
Responsible-Changed-Why:  

From: "Darren Reed" <darrenr@netbsd.org>
To: bouyer@antioche.eu.org
Cc: gnats-bugs@gnats.NetBSD.org
Subject: Re: kern/25810
Date: 19 Jun 2004 14:45:52 -0000

 Try this patch.

 And if this doesn't work, try adding "#define PROXY_DEBUG 1" at the top
 of ip_proxy.c and defining IPF_FTP_DEBUG in ip_ftp_pxy.c to generate lots
 of debugging output from parsing the FTP connection.

 Darren
 Index: ip_ftp_pxy.c
 ===================================================================
 RCS file: /devel/CVS/IP-Filter/ip_ftp_pxy.c,v
 retrieving revision 2.88
 retrieving revision 2.88.2.3
 diff -c -r2.88 -r2.88.2.3
 *** ip_ftp_pxy.c	2004/02/02 18:23:38	2.88
 --- ip_ftp_pxy.c	2004/05/24 14:01:47	2.88.2.3
 ***************
 *** 135,142 ****
   	tcphdr_t *tcp, tcph, *tcp2 = &tcph;
   	char newbuf[IPF_FTPBUFSZ], *s;
   	struct in_addr swip, swip2;
 - 	int inc, off = 0, flags;
   	u_int a1, a2, a3, a4;
   	u_short a5, a6, sp;
   	size_t nlen, olen;
   	fr_info_t fi;
 --- 135,142 ----
   	tcphdr_t *tcp, tcph, *tcp2 = &tcph;
   	char newbuf[IPF_FTPBUFSZ], *s;
   	struct in_addr swip, swip2;
   	u_int a1, a2, a3, a4;
 + 	int inc, off, flags;
   	u_short a5, a6, sp;
   	size_t nlen, olen;
   	fr_info_t fi;
 ***************
 *** 145,151 ****

   	m = fin->fin_m;
   	tcp = (tcphdr_t *)fin->fin_dp;
 ! 	off = (char *)tcp - MTOD(m, char *) + (TCP_OFF(tcp) << 2);

   	/*
   	 * Check for client sending out PORT message.
 --- 145,151 ----

   	m = fin->fin_m;
   	tcp = (tcphdr_t *)fin->fin_dp;
 ! 	off = (char *)tcp - (char *)ip + (TCP_OFF(tcp) << 2) + fin->fin_ipoff;

   	/*
   	 * Check for client sending out PORT message.
 ***************
 *** 166,179 ****
   	a1 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:ippr_ftp_atoi(1) failed\n");
   #endif
   		return 0;
   	}
   	a2 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:ippr_ftp_atoi(2) failed\n");
   #endif
   		return 0;
   	}
 --- 166,179 ----
   	a1 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:ippr_ftp_atoi(%d) failed\n", 1);
   #endif
   		return 0;
   	}
   	a2 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:ippr_ftp_atoi(%d) failed\n", 2);
   #endif
   		return 0;
   	}
 ***************
 *** 188,194 ****
   	    ((nat->nat_dir == NAT_INBOUND) &&
   	     (a1 != ntohl(nat->nat_oip.s_addr)))) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:a1 != nat->nat_inip\n");
   #endif
   		return APR_ERR(1);
   	}
 --- 188,194 ----
   	    ((nat->nat_dir == NAT_INBOUND) &&
   	     (a1 != ntohl(nat->nat_oip.s_addr)))) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:%s != nat->nat_inip\n", "a1");
   #endif
   		return APR_ERR(1);
   	}
 ***************
 *** 196,202 ****
   	a5 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:ippr_ftp_atoi(3) failed\n");
   #endif
   		return 0;
   	}
 --- 196,202 ----
   	a5 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:ippr_ftp_atoi(%d) failed\n", 3);
   #endif
   		return 0;
   	}
 ***************
 *** 213,219 ****
   		a6 = a5 & 0xff;
   	} else {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:missing cr-lf\n");
   #endif
   		return 0;
   	}
 --- 213,219 ----
   		a6 = a5 & 0xff;
   	} else {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_port:missing %s\n", "cr-lf");
   #endif
   		return 0;
   	}
 ***************
 *** 474,480 ****
   	} else if (strncmp(f->ftps_rptr,
   			   "227 Entering Passive Mod", PASV_REPLEN)) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:227 reply wrong\n");
   #endif
   		return 0;
   	}
 --- 474,480 ----
   	} else if (strncmp(f->ftps_rptr,
   			   "227 Entering Passive Mod", PASV_REPLEN)) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:%d reply wrong\n", 227);
   #endif
   		return 0;
   	}
 ***************
 *** 491,504 ****
   	a1 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:ippr_ftp_atoi(1) failed\n");
   #endif
   		return 0;
   	}
   	a2 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:ippr_ftp_atoi(2) failed\n");
   #endif
   		return 0;
   	}
 --- 491,504 ----
   	a1 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:ippr_ftp_atoi(%d) failed\n", 1);
   #endif
   		return 0;
   	}
   	a2 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:ippr_ftp_atoi(%d) failed\n", 2);
   #endif
   		return 0;
   	}
 ***************
 *** 515,521 ****
   	    ((nat->nat_dir == NAT_OUTBOUND) &&
   	     (a1 != ntohl(nat->nat_oip.s_addr)))) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:a1 != nat->nat_oip\n");
   #endif
   		return 0;
   	}
 --- 515,521 ----
   	    ((nat->nat_dir == NAT_OUTBOUND) &&
   	     (a1 != ntohl(nat->nat_oip.s_addr)))) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:%s != nat->nat_oip\n", "a1");
   #endif
   		return 0;
   	}
 ***************
 *** 523,529 ****
   	a5 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:ippr_ftp_atoi(3) failed\n");
   #endif
   		return 0;
   	}
 --- 523,529 ----
   	a5 = ippr_ftp_atoi(&s);
   	if (s == NULL) {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:ippr_ftp_atoi(%d) failed\n", 3);
   #endif
   		return 0;
   	}
 ***************
 *** 541,547 ****
   		s += 2;
   	} else {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:missing cr-lf\n");
   #endif
   		return 0;
   	}
 --- 541,547 ----
   		s += 2;
   	} else {
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_pasv:missing %s", "cr-lf\n");
   #endif
   		return 0;
   	}
 ***************
 *** 594,600 ****

   	m = fin->fin_m;
   	tcp = (tcphdr_t *)fin->fin_dp;
 ! 	off = (char *)tcp - MTOD(m, char *) + (TCP_OFF(tcp) << 2);

   	data_addr.s_addr = data_ip;
   	tcp2 = &tcph;
 --- 594,600 ----

   	m = fin->fin_m;
   	tcp = (tcphdr_t *)fin->fin_dp;
 ! 	off = (char *)tcp - (char *)ip + (TCP_OFF(tcp) << 2) + fin->fin_ipoff;

   	data_addr.s_addr = data_ip;
   	tcp2 = &tcph;
 ***************
 *** 734,739 ****
 --- 734,741 ----
   	rptr = f->ftps_rptr;
   	wptr = f->ftps_wptr;

 + 	if (*rptr == ' ')
 + 		goto server_cmd_ok;
   	if (!isdigit(*rptr) || !isdigit(*(rptr + 1)) || !isdigit(*(rptr + 2)))
   		return 0;
   	if (ftp->ftp_passok == FTPXY_GO) {
 ***************
 *** 769,774 ****
 --- 771,777 ----
   			}
   		}
   	}
 + server_cmd_ok:
   	ftp->ftp_incok = 0;

   	while ((*rptr++ != '\n') && (rptr < wptr))
 ***************
 *** 828,835 ****
   	} else {
   bad_client_command:
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_client_valid:bad cmd:len %d i %d c 0x%x\n",
 ! 			(int)i, (int)len, c);
   #endif
   		return 1;
   	}
 --- 831,838 ----
   	} else {
   bad_client_command:
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_client_valid:bad:junk %d len %d/%d c 0x%x buf [%*.*s]\n",
 ! 			ftps->ftps_junk, (int)len, (int)i, c, (int)len, (int)len, buf);
   #endif
   		return 1;
   	}
 ***************
 *** 868,873 ****
 --- 871,879 ----
   	cmd = 0;
   	i--;

 + 	if (c == ' ')
 + 		goto search_eol;
 + 
   	if (isdigit(c)) {
   		cmd = (c - '0') * 100;
   		c = *s++;
 ***************
 *** 889,900 ****
   	} else {
   bad_server_command:
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_server_valid:bad cmd:len %d i %d c 0x%x\n",
 ! 			(int)i, (int)len, c);
   #endif
   		return 1;
   	}
 ! 
   	for (; i; i--) {
   		c = *s++;
   		if (c == '\n') {
 --- 895,906 ----
   	} else {
   bad_server_command:
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 		printf("ippr_ftp_server_valid:bad:junk %d len %d/%d c 0x%x buf [%*.*s]\n",
 ! 			ftps->ftps_junk, (int)len, (int)i, c, (int)len, (int)len, buf);
   #endif
   		return 1;
   	}
 ! search_eol:
   	for (; i; i--) {
   		c = *s++;
   		if (c == '\n') {
 ***************
 *** 902,908 ****
   			return 0;
   		}
   	}
 ! #if !defined(_KERNEL)
   	printf("ippr_ftp_server_valid:junk after cmd[%s]\n", buf);
   #endif
   	return 2;
 --- 908,914 ----
   			return 0;
   		}
   	}
 ! #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
   	printf("ippr_ftp_server_valid:junk after cmd[%s]\n", buf);
   #endif
   	return 2;
 ***************
 *** 954,967 ****
   	m = fin->fin_m;
   	ip = fin->fin_ip;
   	tcp = (tcphdr_t *)fin->fin_dp;
 ! 	off = (char *)tcp - MTOD(m, char *) + (TCP_OFF(tcp) << 2);

   	f = &ftp->ftp_side[rv];
   	t = &ftp->ftp_side[1 - rv];
   	thseq = ntohl(tcp->th_seq);
   	thack = ntohl(tcp->th_ack);

   	mlen = MSGDSIZE(m) - off;
   	if (mlen <= 0) {
   		if ((tcp->th_flags & TH_OPENING) == TH_OPENING) {
   			f->ftps_seq[0] = thseq + 1;
 --- 960,977 ----
   	m = fin->fin_m;
   	ip = fin->fin_ip;
   	tcp = (tcphdr_t *)fin->fin_dp;
 ! 	off = (char *)tcp - (char *)ip + (TCP_OFF(tcp) << 2) + fin->fin_ipoff;

   	f = &ftp->ftp_side[rv];
   	t = &ftp->ftp_side[1 - rv];
   	thseq = ntohl(tcp->th_seq);
   	thack = ntohl(tcp->th_ack);

 + #ifdef __sgi
 + 	mlen = fin->fin_plen - off;
 + #else
   	mlen = MSGDSIZE(m) - off;
 + #endif
   	if (mlen <= 0) {
   		if ((tcp->th_flags & TH_OPENING) == TH_OPENING) {
   			f->ftps_seq[0] = thseq + 1;
 ***************
 *** 1003,1010 ****
   		}
   	}
   #if PROXY_DEBUG
 ! 	printf("%s: %x seq %x/%d ack %x/%d len %d\n", rv ? "IN" : "OUT",
 ! 		tcp->th_flags, thseq, seqoff, thack, ackoff, mlen);
   	printf("sel %d seqmin %x/%x offset %d/%d\n", sel,
   		aps->aps_seqmin[sel], aps->aps_seqmin[sel2],
   		aps->aps_seqoff[sel], aps->aps_seqoff[sel2]);
 --- 1013,1020 ----
   		}
   	}
   #if PROXY_DEBUG
 ! 	printf("%s: %x seq %x/%d ack %x/%d len %d off %d\n", rv ? "IN" : "OUT",
 ! 		tcp->th_flags, thseq, seqoff, thack, ackoff, mlen, off);
   	printf("sel %d seqmin %x/%x offset %d/%d\n", sel,
   		aps->aps_seqmin[sel], aps->aps_seqmin[sel2],
   		aps->aps_seqoff[sel], aps->aps_seqoff[sel2]);
 ***************
 *** 1052,1058 ****

   #if PROXY_DEBUG
   	if (!ok)
 ! 		printf("not ok\n");
   #endif

   	if (!mlen) {
 --- 1062,1068 ----

   #if PROXY_DEBUG
   	if (!ok)
 ! 		printf("%s ok\n", "not");
   #endif

   	if (!mlen) {
 ***************
 *** 1123,1139 ****
   		mlen -= len;
   		off += len;
   		wptr += len;
   		f->ftps_wptr = wptr;
   		if (f->ftps_junk == 2)
   			f->ftps_junk = ippr_ftp_valid(ftp, rv, rptr,
   						      wptr - rptr);

   		while ((f->ftps_junk == 0) && (wptr > rptr)) {
 ! 			f->ftps_junk = ippr_ftp_valid(ftp, rv, rptr,
 ! 						      wptr - rptr);
   			if (f->ftps_junk == 0) {
 - 				f->ftps_cmds++;
 - 				len = wptr - rptr;
   				f->ftps_rptr = rptr;
   				if (rv)
   					inc += ippr_ftp_server(fin, ip, nat,
 --- 1133,1156 ----
   		mlen -= len;
   		off += len;
   		wptr += len;
 + #if defined(IPF_FTP_DEBUG)
 + 		printf("ippr_ftp_process:len %d/%d off %d wptr %lx junk %d\n",
 + 			len, mlen, off, wptr, f->ftps_junk);
 + #endif
   		f->ftps_wptr = wptr;
   		if (f->ftps_junk == 2)
   			f->ftps_junk = ippr_ftp_valid(ftp, rv, rptr,
   						      wptr - rptr);

   		while ((f->ftps_junk == 0) && (wptr > rptr)) {
 ! 			len = wptr - rptr;
 ! 			f->ftps_junk = ippr_ftp_valid(ftp, rv, rptr, len);
 ! #if defined(IPF_FTP_DEBUG)
 ! 			printf("ippr_ftp_valid=%d len %d rv %d ptr %lx/%lx\n",
 ! 				f->ftps_junk, len, rv, rptr, wptr);
 ! 			printf("buf [%*.*s]\n", len, len, rptr);
 ! #endif
   			if (f->ftps_junk == 0) {
   				f->ftps_rptr = rptr;
   				if (rv)
   					inc += ippr_ftp_server(fin, ip, nat,
 ***************
 *** 1153,1159 ****
   		if ((f->ftps_cmds == 0) && (f->ftps_junk == 1)) {
   			/* f->ftps_seq[1] += inc; */
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 			printf("ippr_ftp_process:cmds == 0 junk == 1\n");
   #endif
   			return APR_ERR(2);
   		}
 --- 1170,1176 ----
   		if ((f->ftps_cmds == 0) && (f->ftps_junk == 1)) {
   			/* f->ftps_seq[1] += inc; */
   #if !defined(_KERNEL) || defined(IPF_FTP_DEBUG)
 ! 			printf("ippr_ftp_process:cmds == 0 junk == %d\n", 1);
   #endif
   			return APR_ERR(2);
   		}
 ***************
 *** 1199,1205 ****
 --- 1216,1226 ----
   	if (tcp->th_flags & TH_FIN)
   		f->ftps_seq[1]++;
   #if PROXY_DEBUG
 + # ifdef __sgi
 + 	mlen = fin->fin_plen;
 + # else
   	mlen = MSGDSIZE(m);
 + # endif
   	mlen -= off;
   	printf("ftps_seq[1] = %x inc %d len %d\n", f->ftps_seq[1], inc, mlen);
   #endif
State-Changed-From-To: open->feedback 
State-Changed-By: darrenr 
State-Changed-When: Tue Jun 22 21:00:50 UTC 2004 
State-Changed-Why:  
patch supplied 

From: "Darren Reed" <darrenr@netbsd.org>
To: bouyer@antioche.eu.org
Cc: gnats-bugs@gnats.NetBSD.org
Subject: Re: kern/25810
Date: 22 Jun 2004 21:00:46 -0000

 The patch below should fix this problem.

 Darren
 Index: ip_compat.h
 ===================================================================
 RCS file: /devel/CVS/IP-Filter/ip_compat.h,v
 retrieving revision 2.142.2.14
 diff -c -r2.142.2.14 ip_compat.h
 *** ip_compat.h	2004/06/20 10:26:40	2.142.2.14
 --- ip_compat.h	2004/06/22 20:35:29
 ***************
 *** 668,674 ****
   					    ((c) > 4096) ? M_WAITOK : M_NOWAIT)
   #  define	KFREE(x)	FREE((x), M_PFILT)
   #  define	KFREES(x,s)	FREE((x), M_PFILT)
 ! #  define	MSGDSIZE(x)	(x)->m_pkthdr.len
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	GETKTIME(x)	microtime((struct timeval *)x)
 --- 668,674 ----
   					    ((c) > 4096) ? M_WAITOK : M_NOWAIT)
   #  define	KFREE(x)	FREE((x), M_PFILT)
   #  define	KFREES(x,s)	FREE((x), M_PFILT)
 ! #  define	MSGDSIZE(x)	mbufchainlen(x)
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	GETKTIME(x)	microtime((struct timeval *)x)
 ***************
 *** 729,735 ****
   # endif

   # ifdef _KERNEL
 ! #  define	MSGDSIZE(x)	(x)->m_pkthdr.len
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	GETKTIME(x)	microtime((struct timeval *)x)
 --- 729,735 ----
   # endif

   # ifdef _KERNEL
 ! #  define	MSGDSIZE(x)	mbufchainlen(x)
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	GETKTIME(x)	microtime((struct timeval *)x)
 ***************
 *** 786,792 ****
    * When #define'd, the 5.2.1 kernel panics when used with the ftp proxy.
    * There may be other, safe, kernels but this is not extensively tested yet.
    */
 ! #   undef HAVE_M_PULLDOWN
   #  endif
   #  if !defined(IPFILTER_LKM) && (__FreeBSD_version >= 300000)
   #   include "opt_ipfilter.h"
 --- 786,792 ----
    * When #define'd, the 5.2.1 kernel panics when used with the ftp proxy.
    * There may be other, safe, kernels but this is not extensively tested yet.
    */
 ! #   define HAVE_M_PULLDOWN
   #  endif
   #  if !defined(IPFILTER_LKM) && (__FreeBSD_version >= 300000)
   #   include "opt_ipfilter.h"
 ***************
 *** 866,872 ****
   #   define	SPL_IMP(x)	;
   extern	int	in_cksum __P((struct mbuf *, int));
   #  endif /* __FreeBSD_version >= 500043 */
 ! #  define	MSGDSIZE(x)	(x)->m_pkthdr.len
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	IPF_PANIC(x,y)	if (x) { printf y; panic("ipf_panic"); }
 --- 866,872 ----
   #   define	SPL_IMP(x)	;
   extern	int	in_cksum __P((struct mbuf *, int));
   #  endif /* __FreeBSD_version >= 500043 */
 ! #  define	MSGDSIZE(x)	mbufchainlen(x)
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	IPF_PANIC(x,y)	if (x) { printf y; panic("ipf_panic"); }
 ***************
 *** 924,930 ****
   #  define	BCOPYIN(a,b,c)	bcopy((caddr_t)(a), (caddr_t)(b), (c))
   #  define	BCOPYOUT(a,b,c)	bcopy((caddr_t)(a), (caddr_t)(b), (c))
   #  define	GETKTIME(x)	microtime((struct timeval *)x)
 ! #  define	MSGDSIZE(x)	(x)->m_pkthdr.len
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	IPF_PANIC(x,y)	if (x) { printf y; panic("ipf_panic"); }
 --- 924,930 ----
   #  define	BCOPYIN(a,b,c)	bcopy((caddr_t)(a), (caddr_t)(b), (c))
   #  define	BCOPYOUT(a,b,c)	bcopy((caddr_t)(a), (caddr_t)(b), (c))
   #  define	GETKTIME(x)	microtime((struct timeval *)x)
 ! #  define	MSGDSIZE(x)	mbufchainlen(x)
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	IPF_PANIC(x,y)	if (x) { printf y; panic("ipf_panic"); }
 ***************
 *** 962,968 ****

   # ifdef _KERNEL
   #  define	GETKTIME(x)	microtime((struct timeval *)x)
 ! #  define	MSGDSIZE(x)	(x)->m_pkthdr.len
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	CACHE_HASH(x)	((IFNAME(fin->fin_ifp)[0] + \
 --- 962,968 ----

   # ifdef _KERNEL
   #  define	GETKTIME(x)	microtime((struct timeval *)x)
 ! #  define	MSGDSIZE(x)	mbufchainlen(x)
   #  define	M_LEN(x)	(x)->m_len
   #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
   #  define	CACHE_HASH(x)	((IFNAME(fin->fin_ifp)[0] + \
 Index: ip_fil_netbsd.c
 ===================================================================
 RCS file: /devel/CVS/IP-Filter/ip_fil_netbsd.c,v
 retrieving revision 2.55.2.10
 diff -c -r2.55.2.10 ip_fil_netbsd.c
 *** ip_fil_netbsd.c	2004/06/20 10:26:39	2.55.2.10
 --- ip_fil_netbsd.c	2004/06/22 20:45:18
 ***************
 *** 1611,1613 ****
 --- 1611,1630 ----
   # endif
   }
   #endif /* USE_INET6 */
 + 
 + 
 + size_t mbufchainlen(m0)
 + struct mbuf *m0;
 + {
 + 	size_t len;
 + 
 + 	if ((m0->m_flags & M_PKTHDR) != 0) {
 + 		len = m0->m_pkthdr.len;
 + 	} else {
 + 		struct mbuf *m;
 + 
 + 		for (m = m0, len = 0; m != NULL; m = m->m_next)
 + 			len += m->m_len;
 + 	}
 + 	return len;
 + }

From: Manuel Bouyer <bouyer@antioche.eu.org>
To: Darren Reed <darrenr@netbsd.org>
Cc: gnats-bugs@gnats.NetBSD.org
Subject: Re: kern/25810
Date: Wed, 23 Jun 2004 00:26:40 +0200

 --x+6KMIRAuhnl3hBn
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline

 On Tue, Jun 22, 2004 at 09:00:46PM -0000, Darren Reed wrote:
 > 
 > The patch below should fix this problem.

 Doesn't change the problem for me. Attached is the patch I used (your patch
 doesn't apply cleanly to the 2.0 branch, and I didn't find where
 HAVE_M_PULLDOWN is used).

 I added #define IPF_FTP_DEBUG 1 in ip_ftp_pxy.c, and #define PROXY_DEBUG 1
 in ip_proxy.c, attached is the kernel output.

 -- 
 Manuel Bouyer <bouyer@antioche.eu.org>
      NetBSD: 26 ans d'experience feront toujours la difference
 --

 --x+6KMIRAuhnl3hBn
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename=diff

 Index: sys/netinet/ip_compat.h
 ===================================================================
 RCS file: /cvsroot/src/sys/netinet/ip_compat.h,v
 retrieving revision 1.35.2.3
 diff -u -r1.35.2.3 ip_compat.h
 --- sys/netinet/ip_compat.h	30 May 2004 11:21:53 -0000	1.35.2.3
 +++ sys/netinet/ip_compat.h	22 Jun 2004 21:55:25 -0000
 @@ -668,7 +668,7 @@
  #  define	KMALLOCS(a, b, c)	MALLOC((a), b, (c), M_PFILT, M_NOWAIT)
  #  define	KFREE(x)	FREE((x), M_PFILT)
  #  define	KFREES(x,s)	FREE((x), M_PFILT)
 -#  define	MSGDSIZE(x)	(x)->m_pkthdr.len
 +#  define	MSGDSIZE(x)	mbufchainlen(x)
  #  define	M_LEN(x)	(x)->m_len
  #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
  #  define	GETKTIME(x)	microtime((struct timeval *)x)
 @@ -724,7 +724,7 @@
  # endif

  # ifdef _KERNEL
 -#  define	MSGDSIZE(x)	(x)->m_pkthdr.len
 +#  define	MSGDSIZE(x)	mbufchainlen(x)
  #  define	M_LEN(x)	(x)->m_len
  #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
  #  define	GETKTIME(x)	microtime((struct timeval *)x)
 @@ -846,7 +846,7 @@
  #   define	SPL_IMP(x)	;
  extern	int	in_cksum __P((struct mbuf *, int));
  #  endif /* __FreeBSD_version >= 500043 */
 -#  define	MSGDSIZE(x)	(x)->m_pkthdr.len
 +#  define	MSGDSIZE(x)	mbufchainlen(x)
  #  define	M_LEN(x)	(x)->m_len
  #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
  #  define	IPF_PANIC(x,y)	if (x) { printf y; panic("ipf_panic"); }
 @@ -897,7 +897,7 @@
  #   endif
  #  endif
  #  define	GETKTIME(x)	microtime((struct timeval *)x)
 -#  define	MSGDSIZE(x)	(x)->m_pkthdr.len
 +#  define	MSGDSIZE(x)	mbufchainlen(x)
  #  define	M_LEN(x)	(x)->m_len
  #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
  #  define	IPF_PANIC(x,y)	if (x) { printf y; panic("ipf_panic"); }
 @@ -935,7 +935,7 @@

  # ifdef _KERNEL
  #  define	GETKTIME(x)	microtime((struct timeval *)x)
 -#  define	MSGDSIZE(x)	(x)->m_pkthdr.len
 +#  define	MSGDSIZE(x)	mbufchainlen(x)
  #  define	M_LEN(x)	(x)->m_len
  #  define	M_DUPLICATE(x)	m_copy((x), 0, M_COPYALL)
  #  define	CACHE_HASH(x)	((IFNAME(fin->fin_ifp)[0] + \
 Index: sys/netinet/ip_fil_netbsd.c
 ===================================================================
 RCS file: /cvsroot/src/sys/netinet/ip_fil_netbsd.c,v
 retrieving revision 1.3.2.7
 diff -u -r1.3.2.7 ip_fil_netbsd.c
 --- sys/netinet/ip_fil_netbsd.c	18 Jun 2004 10:07:37 -0000	1.3.2.7
 +++ sys/netinet/ip_fil_netbsd.c	22 Jun 2004 21:55:25 -0000
 @@ -1609,3 +1609,20 @@
  # endif
  }
  #endif /* USE_INET6 */
 +
 +
 +size_t mbufchainlen(m0)
 +struct mbuf *m0;
 +{
 +	size_t len;
 +
 +	if ((m0->m_flags & M_PKTHDR) != 0) {
 +		len = m0->m_pkthdr.len;
 +	} else {
 +		struct mbuf *m;
 +
 +		for (m = m0, len = 0; m != NULL; m = m->m_next)
 +			len += m->m_len;
 +	}
 +	return len;
 +}

 --x+6KMIRAuhnl3hBn
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename="ipf.debug"

 [ftp -a asim.lip6.fr]
 appr_fixseqack: seq b1852fc6 ack 0
 appr_fixseqack: seq b1852fc6 ack 0
 appr_fixseqack: seq fb853ec1 ack b1852fc7
 appr_fixseqack: seq fb853ec1 ack b1852fc7
 appr_fixseqack: seq b1852fc7 ack fb853ec2
 appr_fixseqack: seq b1852fc7 ack fb853ec2
 seqoff -1 thseq fb853ec2 ackmin 0
 seqoff -1 thseq fb853ec2 ackmin 0
 ackoff -1 thack b1852fc7 seqmin 0
 ackoff -1 thack b1852fc7 seqmin 0
 IN: 18 seq fb853ec2/0 ack b1852fc7/0 len 6
 IN: 18 seq fb853ec2/0 ack b1852fc7/0 len 6
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852fc7 seq[1] 0 0/0
 rv 1 t:seq[0] b1852fc7 seq[1] 0 0/0
 ftps_seq[1] = fb853ec8 inc 0 len 0
 ftps_seq[1] = fb853ec8 inc 0 len 0
 appr_fixseqack: seq fb853ec2 ack b1852fc7
 appr_fixseqack: seq fb853ec2 ack b1852fc7
 appr_fixseqack: seq b1852fc7 ack fb853ec8
 appr_fixseqack: seq b1852fc7 ack fb853ec8
 seqoff -1 thseq fb853ec8 ackmin 0
 seqoff -1 thseq fb853ec8 ackmin 0
 ackoff -1 thack b1852fc7 seqmin 0
 ackoff -1 thack b1852fc7 seqmin 0
 IN: 18 seq fb853ec8/0 ack b1852fc7/0 len 487
 IN: 18 seq fb853ec8/0 ack b1852fc7/0 len 487
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852fc7 seq[1] 0 0/0
 rv 1 t:seq[0] b1852fc7 seq[1] 0 0/0
 ftps_seq[1] = fb8540af inc 0 len 0
 ftps_seq[1] = fb8540af inc 0 len 0
 appr_fixseqack: seq fb853ec8 ack b1852fc7
 appr_fixseqack: seq fb853ec8 ack b1852fc7
 OUT: 18 seq b1852fc7/0 ack fb8540af/0 len 16
 OUT: 18 seq b1852fc7/0 ack fb8540af/0 len 16
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 0 t:seq[0] fb853ec8 seq[1] fb8540af 0/0
 rv 0 t:seq[0] fb853ec8 seq[1] fb8540af 0/0
 ftps_seq[1] = b1852fd7 inc 0 len 0
 ftps_seq[1] = b1852fd7 inc 0 len 0
 appr_fixseqack: seq b1852fc7 ack fb8540af
 appr_fixseqack: seq b1852fc7 ack fb8540af
 seqoff -1 thseq fb8540af ackmin 0
 seqoff -1 thseq fb8540af ackmin 0
 ackoff -1 thack b1852fd7 seqmin 0
 ackoff -1 thack b1852fd7 seqmin 0
 IN: 18 seq fb8540af/0 ack b1852fd7/0 len 49
 IN: 18 seq fb8540af/0 ack b1852fd7/0 len 49
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852fc7 seq[1] b1852fd7 0/0
 rv 1 t:seq[0] b1852fc7 seq[1] b1852fd7 0/0
 ftps_seq[1] = fb8540e0 inc 0 len 0
 ftps_seq[1] = fb8540e0 inc 0 len 0
 appr_fixseqack: seq fb8540af ack b1852fd7
 appr_fixseqack: seq fb8540af ack b1852fd7
 OUT: 18 seq b1852fd7/0 ack fb8540e0/0 len 14
 OUT: 18 seq b1852fd7/0 ack fb8540e0/0 len 14
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 0 t:seq[0] fb8540af seq[1] fb8540e0 0/0
 rv 0 t:seq[0] fb8540af seq[1] fb8540e0 0/0
 ftps_seq[1] = b1852fe5 inc 0 len 0
 ftps_seq[1] = b1852fe5 inc 0 len 0
 appr_fixseqack: seq b1852fd7 ack fb8540e0
 appr_fixseqack: seq b1852fd7 ack fb8540e0
 seqoff -1 thseq fb8540e0 ackmin 0
 seqoff -1 thseq fb8540e0 ackmin 0
 ackoff -1 thack b1852fe5 seqmin 0
 ackoff -1 thack b1852fe5 seqmin 0
 IN: 18 seq fb8540e0/0 ack b1852fe5/0 len 48
 IN: 18 seq fb8540e0/0 ack b1852fe5/0 len 48
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852fd7 seq[1] b1852fe5 0/0
 rv 1 t:seq[0] b1852fd7 seq[1] b1852fe5 0/0
 ftps_seq[1] = fb854110 inc 0 len 0
 ftps_seq[1] = fb854110 inc 0 len 0
 appr_fixseqack: seq fb8540e0 ack b1852fe5
 appr_fixseqack: seq fb8540e0 ack b1852fe5
 OUT: 18 seq b1852fe5/0 ack fb854110/0 len 6
 OUT: 18 seq b1852fe5/0 ack fb854110/0 len 6
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 0 t:seq[0] fb8540e0 seq[1] fb854110 0/0
 rv 0 t:seq[0] fb8540e0 seq[1] fb854110 0/0
 ftps_seq[1] = b1852feb inc 0 len 0
 ftps_seq[1] = b1852feb inc 0 len 0
 appr_fixseqack: seq b1852fe5 ack fb854110
 appr_fixseqack: seq b1852fe5 ack fb854110
 seqoff -1 thseq fb854110 ackmin 0
 seqoff -1 thseq fb854110 ackmin 0
 ackoff -1 thack b1852feb seqmin 0
 ackoff -1 thack b1852feb seqmin 0
 IN: 18 seq fb854110/0 ack b1852feb/0 len 49
 IN: 18 seq fb854110/0 ack b1852feb/0 len 49
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852fe5 seq[1] b1852feb 0/0
 rv 1 t:seq[0] b1852fe5 seq[1] b1852feb 0/0
 ftps_seq[1] = fb854141 inc 0 len 0
 ftps_seq[1] = fb854141 inc 0 len 0
 appr_fixseqack: seq fb854110 ack b1852feb
 appr_fixseqack: seq fb854110 ack b1852feb
 OUT: 18 seq b1852feb/0 ack fb854141/0 len 6
 OUT: 18 seq b1852feb/0 ack fb854141/0 len 6
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 0 t:seq[0] fb854110 seq[1] fb854141 0/0
 rv 0 t:seq[0] fb854110 seq[1] fb854141 0/0
 ftps_seq[1] = b1852ff1 inc 0 len 0
 ftps_seq[1] = b1852ff1 inc 0 len 0
 appr_fixseqack: seq b1852feb ack fb854141
 appr_fixseqack: seq b1852feb ack fb854141
 seqoff -1 thseq fb854141 ackmin 0
 seqoff -1 thseq fb854141 ackmin 0
 ackoff -1 thack b1852ff1 seqmin 0
 ackoff -1 thack b1852ff1 seqmin 0
 IN: 18 seq fb854141/0 ack b1852ff1/0 len 24
 IN: 18 seq fb854141/0 ack b1852ff1/0 len 24
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852feb seq[1] b1852ff1 0/0
 rv 1 t:seq[0] b1852feb seq[1] b1852ff1 0/0
 ftps_seq[1] = fb854159 inc 0 len 0
 ftps_seq[1] = fb854159 inc 0 len 0
 appr_fixseqack: seq fb854141 ack b1852ff1
 appr_fixseqack: seq fb854141 ack b1852ff1
 appr_fixseqack: seq b1852ff1 ack fb854159
 appr_fixseqack: seq b1852ff1 ack fb854159
 seqoff -1 thseq fb854159 ackmin 0
 seqoff -1 thseq fb854159 ackmin 0
 ackoff -1 thack b1852ff1 seqmin 0
 ackoff -1 thack b1852ff1 seqmin 0
 IN: 18 seq fb854159/0 ack b1852ff1/0 len 86
 IN: 18 seq fb854159/0 ack b1852ff1/0 len 86
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852ff1 seq[1] b1852ff1 0/0
 rv 1 t:seq[0] b1852ff1 seq[1] b1852ff1 0/0
 ftps_seq[1] = fb8541af inc 0 len 0
 ftps_seq[1] = fb8541af inc 0 len 0
 appr_fixseqack: seq fb854159 ack b1852ff1
 appr_fixseqack: seq fb854159 ack b1852ff1
 OUT: 18 seq b1852ff1/0 ack fb8541af/0 len 5
 OUT: 18 seq b1852ff1/0 ack fb8541af/0 len 5
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 0 t:seq[0] fb854159 seq[1] fb8541af 0/0
 rv 0 t:seq[0] fb854159 seq[1] fb8541af 0/0
 ftps_seq[1] = b1852ff6 inc 0 len 0
 ftps_seq[1] = b1852ff6 inc 0 len 0
 appr_fixseqack: seq b1852ff1 ack fb8541af
 appr_fixseqack: seq b1852ff1 ack fb8541af
 seqoff -1 thseq fb8541af ackmin 0
 seqoff -1 thseq fb8541af ackmin 0
 ackoff -1 thack b1852ff6 seqmin 0
 ackoff -1 thack b1852ff6 seqmin 0
 IN: 18 seq fb8541af/0 ack b1852ff6/0 len 35
 IN: 18 seq fb8541af/0 ack b1852ff6/0 len 35
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852ff1 seq[1] b1852ff6 0/0
 rv 1 t:seq[0] b1852ff1 seq[1] b1852ff6 0/0
 ftps_seq[1] = fb8541d2 inc 0 len 0
 ftps_seq[1] = fb8541d2 inc 0 len 0
 appr_fixseqack: seq fb8541af ack b1852ff6
 appr_fixseqack: seq fb8541af ack b1852ff6
 appr_fixseqack: seq b1852ff6 ack fb8541d2
 appr_fixseqack: seq b1852ff6 ack fb8541d2
 [quit]
 OUT: 18 seq b1852ff6/0 ack fb8541d2/0 len 6
 OUT: 18 seq b1852ff6/0 ack fb8541d2/0 len 6
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 0 t:seq[0] fb8541af seq[1] fb8541d2 0/0
 rv 0 t:seq[0] fb8541af seq[1] fb8541d2 0/0
 ftps_seq[1] = b1852ffc inc 0 len 0
 ftps_seq[1] = b1852ffc inc 0 len 0
 appr_fixseqack: seq b1852ff6 ack fb8541d2
 appr_fixseqack: seq b1852ff6 ack fb8541d2
 seqoff -1 thseq fb8541d2 ackmin 0
 seqoff -1 thseq fb8541d2 ackmin 0
 ackoff -1 thack b1852ffc seqmin 0
 ackoff -1 thack b1852ffc seqmin 0
 IN: 18 seq fb8541d2/0 ack b1852ffc/0 len 6
 IN: 18 seq fb8541d2/0 ack b1852ffc/0 len 6
 sel 0 seqmin 0/0 offset 0/0
 sel 0 seqmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 sel 0 ackmin 0/0 offset 0/0
 rv 1 t:seq[0] b1852ff6 seq[1] b1852ffc 0/0
 rv 1 t:seq[0] b1852ff6 seq[1] b1852ffc 0/0
 ftps_seq[1] = fb8541d8 inc 0 len 0
 ftps_seq[1] = fb8541d8 inc 0 len 0
 appr_fixseqack: seq fb8541d2 ack b1852ffc
 appr_fixseqack: seq fb8541d2 ack b1852ffc
 appr_fixseqack: seq b1852ffc ack fb8541d8
 [hang]
 Jun 23 00:09:06 chassiron.localhost last message repeated 2 times
 appr_fixseqack: seq b1852ffc ack fb8541d8
 appr_fixseqack: seq fb854290 ack b1852ffd

 --x+6KMIRAuhnl3hBn--

From: Darren Reed <darrenr@NetBSD.org>
To: Manuel Bouyer <bouyer@antioche.eu.org>
Cc: gnats-bugs@gnats.NetBSD.org
Subject: Re: kern/25810
Date: Sat, 26 Jun 2004 05:14:00 +0000

 [this email is just to document steps in debugging these sorts of problems]

 In response to the traces you provided, I tcpdump -x'd them, added
 "[in,pppoe0]" or "[out,pppoe0]" to each packet, stripped off the
 leading white space to make it line:

 #03:45:37.467983 PPPoE  [ses 0x1e49] IP 62: 99.999.99.99.65492 > 132.227.86.2.21
 : S 3154579199:3154579199(0) win 32768 <mss 1452,nop,wscale 0,nop,nop,timestamp
 0 0> (DF)
 [out,pppoe0]
 4500 003c 5ad0 4000 3f06 6706 9999 9999
 84e3 5602 ffd4 0015 bc07 0eff 0000 0000
 a002 8000 8639 0000 0204 05ac 0103 0300
 0101 080a 0000 0000 0000 0000

 for each packet.

 Then created a dummy NAT rule file like this:
 map pppoe0 0/0 -> 0/0 proxy port ftp ftp/tcp

 and finally processed it all:
 ipftest -b -F hex -N ftp.nat -i tr.nat.X 

 This revealed the following:
 ippr_ftp_server_valid:junk after cmd[221 Thank you for using the FTP ser]
 ip 235(20) 6 132.227.86.2,21 > 99.999.99.99,65492 FPA
 ippr_ftp_server_valid:junk after cmd[    Total traffic for this session was 902
 bytes in 0 transfers.
 221 Thank you for using the FTP ser]
 ippr_ftp_server_valid:junk after cmd[221 Thank you for using the FTP ser]
 ip 235(20) 6 132.227.86.2,21 > 99.999.99.99,65492 FPA
 ip 40(20) 6 132.227.86.2,21 > 99.999.99.99,65529 RA
 ip 52(20) 6 99.999.99.99,65529 > 132.227.86.2,21 A
 inc 1542485920 sel 0 rv 1
 th_seq 5bf077a0 ftps_seq 0/0
 ackmin 0 ackoff 0
 seqmin 0 seqoff 0
 0:proxy says bad packet received (10000)
 ip 40(20) 6 132.227.86.2,21 > 99.999.99.99,65529 R

 and so it all falls apart.  Next I'll need to work out why that packet
 was decreed to be "bad"...

 Darren
State-Changed-From-To: feedback->open 
State-Changed-By: chs 
State-Changed-When: Fri Aug 20 13:23:37 UTC 2004 
State-Changed-Why:  
submitter reports that the suggested patch does not fix the problem. 

From: Pavel Cahyna <pcah8322@artax.karlin.mff.cuni.cz>
To: gnats-bugs@NetBSD.org
Cc: bouyer@antioche.eu.org
Subject: Re: kern/25810 ipf4 ftp proxy has problems with long 221- lines
Date: Fri, 3 Sep 2004 09:25:46 +0200

 I have a 2.0_BETA firewall/nat with IPF 4.1.3 and I can't repeat this:

 >	Connected to asim.lip6.fr.
 >	220-
 >	    
 >		    Bienvenue au departement [A]rchitecture des
 >					     [S]ystemes
 >					     [I]ntegres et
 >					     [M]icro-electronique
 >	    
 >					  du [L]aboratoire
 >					  d' [I]nformatique
 >					  de [P]aris
 >					     [6]
 >	    
 >	220 asim.lip6.fr FTP server (NetBSD-ftpd 20040809) ready.
 >	331 Guest login ok, type your name as password.
 >	230 Guest login ok, access restrictions apply.
 >	Remote system type is UNIX.
 >	Using binary mode to transfer files.
 >	ftp> quit
 >	221-
 >	    Data traffic for this session was 0 bytes in 0 files.
 >	    Total traffic for this session was 901 bytes in 0 transfers.
 >	221 Thank you for using the FTP service on asim.lip6.fr.

 Maybe it is a sparc/sparc64 specific problem? My firewall is i386. See also
 http://mail-index.netbsd.org/current-users/2004/09/01/0009.html
 which describes the problem on sparc64.

 I'm also using IPv4 only, if this is important.

From: Chuck Silvers <chuq@chuq.com>
To: darrenr@netbsd.org
Cc: bouyer@netbsd.org, gnats-bugs@gnats.NetBSD.org
Subject: Re: kern/25810: ipf4 ftp proxy has problems with long 221- lines
Date: Tue, 7 Sep 2004 20:15:06 -0700

 hi darren,

 here's some more info on PR 25810, the problem with the ftp proxy on
 some machines.  like manuel, I can only get the problem to occur using
 a sparc as the NAT machine and not an x86.  I haven't tried other hardware.

 my test network looks like:

 x86	<->	sparc (NAT,ftp-proxy)	<->	gateway (NAT)
 3.1.1.2		3.1.1.1		1.1.2.1		1.1.1.1		24.x.x.x

 the IPF config files on the sparc are:

 # cat /etc/ipf.conf 
 pass in quick on hme0 proto tcp from 1.1.1.1 to any
 pass in quick on hme0 proto tcp from any to 1.1.1.1
 pass in quick log on hme0 all
 pass in quick log on hme1 all
 # cat /etc/ipnat.conf 
 map hme0 3.0.0.0/8 -> 0/32 proxy port ftp ftp/tcp
 map hme0 3.0.0.0/8 -> 0/32 portmap tcp/udp 1025:65000
 # 


 on "x86", I do "ftp -a ftp.netbsd.org" and immediately "quit".
 x86 never gets the response to the "quit" back from nbftp.

 I have two tcpdump traces, one on each interface of the sparc.
 they're at ftp.netbsd.org:/pub/NetBSD/misc/chs/tcpdump.hme*

 the bit where it goes wrong is from the 3.1.1.1 interface (hme1):

 08:49:44.880303 3.1.1.2.65527 > 204.152.190.13.21: P 45:51(6) ack 2484 win 33580 <nop,nop,timestamp 10 3> (DF) [tos 0x10] 
 08:49:44.952223 204.152.190.13.21 > 3.1.1.2.65527: P 2484:2490(6) ack 51 win 32850 <nop,nop,timestamp 9 10> (DF) [tos 0x10] 
 08:49:44.973289 204.152.190.13.21 > 1.1.2.1.65527: FP 3445139058:3445139244(186) ack 1650793366 win 32850 <nop,nop,timestamp 9 10> (DF) [tos 0x10] 

 the packet being sent to nbftp is the "quit" command.
 the first packet received back is NATed correctly,
 but the second one is passed through without being translated.

 is there any other info I could collect that would be helpful?

 -Chuck
From: Manuel Bouyer <bouyer@antioche.eu.org>
To: Darren Reed <darrenr@netbsd.org>
Cc: Chuck Silvers <chuq@chuq.com>, gnats-bugs@netbsd.org
Subject: Re: kern/25810
Date: Sun, 27 Nov 2005 18:22:33 +0100

 Hi,
 I've updated my router to 3.0_RC3, and I still see problems with
 long 221- lines in ftp servers replies.

 -- 
 Manuel Bouyer <bouyer@antioche.eu.org>
      NetBSD: 26 ans d'experience feront toujours la difference
 --

From: Martti Kuparinen <martti.kuparinen@iki.fi>
To: bouyer@antioche.eu.org
Cc: gnats-bugs@netbsd.org
Subject: Re: kern/25810
Date: Wed, 5 Apr 2006 07:44:09 +0300 (EEST)

 Could you please try with the latest IPF (4.1.13) and see if that fixes
 your problems?

 Martti

Responsible-Changed-From-To: darrenr->kern-bug-people
Responsible-Changed-By: wiz@netbsd.org
Responsible-Changed-When: Sun, 03 Sep 2006 01:08:14 +0000
Responsible-Changed-Why:
Back to role account, darrenr doesn't have commit access any longer.


Responsible-Changed-From-To: kern-bug-people->ipf-bug-people
Responsible-Changed-By: wiz@netbsd.org
Responsible-Changed-When: Tue, 05 Sep 2006 23:08:56 +0000
Responsible-Changed-Why:
New role account for IPF bugs.


From: jnemeth@cornerstoneservice.ca (John Nemeth)
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/25810
Date: Tue, 28 Nov 2006 00:02:13 -0800

      This is the result of a 3.1 i386 box running as NAT proxy and
 -current (20061124) sparc64 box acting as client.  This is being
 appended to the PR as per darrenr's request.  The commands executed
 were "ftp ftp.netbsd.org" followed immediately by "quit".  The
 final lines from ftp were:

 -----
 230 Guest login ok, access restrictions apply.
 Remote system type is UNIX.
 Using binary mode to transfer files.
 ftp> quit
 221-
 [long pause at this point]

 421 Service not available, remote server timed out. Connection closed.
 -----

 The version of ipf on 3.1 is:

 -----
 ipf: IP Filter: v4.1.8 (396)
 Kernel: IP Filter: v4.1.8
 Running: yes
 Log Flags: 0 = none set
 Default: pass all, Logging: available
 Active list: 0
 Feature mask: 0x10a
 -----

 The contents of /etc/ipnat.conf is:

 -----
 # basic NAT settings
 map we1 192.168.1.250/24 ->  0/32 proxy port ftp ftp/tcp
 map we1 192.168.1.250/24 ->  0/32 portmap tcp/udp 40000:60000
 map we1 192.168.1.250/24 ->  0/32

 # incoming PAT settings
 #   send FTP to
 rdr we0 0/0 port 21 -> 192.168.1.10 port 21 tcp
 -----

 Nov 27 23:39:26 server /netbsd: ippr_ftp_process: mlen 0
 Nov 27 23:39:27 server last message repeated 2 times
 Nov 27 23:39:27 server /netbsd: ippr_ftp_process: mlen 61
 Nov 27 23:39:27 server /netbsd: seqoff 0 thseq 246fc188 ackmin 0
 Nov 27 23:39:27 server /netbsd: ackoff 0 thack 27d4196f seqmin 0
 Nov 27 23:39:27 server /netbsd: IN: 18 seq 246fc188/0 ack 27d4196f/0 len 61/113 off 52
 Nov 27 23:39:27 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:27 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:27 server /netbsd: rv 1 t:seq[0] 27d4196f seq[1] 0 0/0
 Nov 27 23:39:27 server /netbsd: ippr_ftp_process:len 61/0 off 113 wptr c0c16cfd junk 0 [220 ftp.NetBSD.org FTP server (NetBSD-ftpd 20060923) ready.
 Nov 27 23:39:27 server /netbsd: ]
 Nov 27 23:39:27 server /netbsd: ippr_ftp_valid=0 len 61 rv 1 ptr c0c16cc0/c0c16cfd buf [220 ftp.NetBSD.org FTP server (NetBSD-ftpd 20060923) ready.
 Nov 27 23:39:27 server /netbsd: ]
 Nov 27 23:39:27 server /netbsd: ftps_seq[1] = 246fc1c5 inc 0 len 0
 Nov 27 23:39:27 server /netbsd: ippr_ftp_process: mlen 0
 Nov 27 23:39:29 server /netbsd: ippr_ftp_process: mlen 16
 Nov 27 23:39:29 server /netbsd: OUT: 18 seq 27d4196f/0 ack 246fc1c5/0 len 16/68 off 52
 Nov 27 23:39:29 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:29 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:29 server /netbsd: rv 0 t:seq[0] 246fc188 seq[1] 246fc1c5 0/0
 Nov 27 23:39:29 server /netbsd: ippr_ftp_process:len 16/0 off 68 wptr c0c16c38 junk 0 [USER anonymous
 Nov 27 23:39:29 server /netbsd: ]
 Nov 27 23:39:29 server /netbsd: ippr_ftp_valid=0 len 16 rv 0 ptr c0c16c28/c0c16c38 buf [USER anonymous
 Nov 27 23:39:29 server /netbsd: ]
 Nov 27 23:39:29 server /netbsd: ftps_seq[1] = 27d4197f inc 0 len 0
 Nov 27 23:39:29 server /netbsd: ippr_ftp_process: mlen 49
 Nov 27 23:39:29 server /netbsd: seqoff 0 thseq 246fc1c5 ackmin 0
 Nov 27 23:39:29 server /netbsd: ackoff 0 thack 27d4197f seqmin 0
 Nov 27 23:39:29 server /netbsd: IN: 18 seq 246fc1c5/0 ack 27d4197f/0 len 49/101 off 52
 Nov 27 23:39:29 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:29 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:29 server /netbsd: rv 1 t:seq[0] 27d4196f seq[1] 27d4197f 0/0
 Nov 27 23:39:29 server /netbsd: ippr_ftp_process:len 49/0 off 101 wptr c0c16cf1 junk 0 [331 Guest login ok, type your name as password.
 Nov 27 23:39:29 server /netbsd: ]
 Nov 27 23:39:29 server /netbsd: ippr_ftp_valid=0 len 49 rv 1 ptr c0c16cc0/c0c16cf1 buf [331 Guest login ok, type your name as password.
 Nov 27 23:39:29 server /netbsd: ]
 Nov 27 23:39:29 server /netbsd: ftps_seq[1] = 246fc1f6 inc 0 len 0
 Nov 27 23:39:29 server /netbsd: ippr_ftp_process: mlen 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process: mlen 15
 Nov 27 23:39:31 server /netbsd: OUT: 18 seq 27d4197f/0 ack 246fc1f6/0 len 15/67 off 52
 Nov 27 23:39:31 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:31 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:31 server /netbsd: rv 0 t:seq[0] 246fc1c5 seq[1] 246fc1f6 0/0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 15/0 off 67 wptr c0c16c37 junk 0 [PASS jnemeth@
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 15 rv 0 ptr c0c16c28/c0c16c37 buf [PASS jnemeth@
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ftps_seq[1] = 27d4198e inc 0 len 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process: mlen 6
 Nov 27 23:39:31 server /netbsd: seqoff 0 thseq 246fc1f6 ackmin 0
 Nov 27 23:39:31 server /netbsd: ackoff 0 thack 27d4198e seqmin 0
 Nov 27 23:39:31 server /netbsd: IN: 18 seq 246fc1f6/0 ack 27d4198e/0 len 6/58 off 52
 Nov 27 23:39:31 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:31 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:31 server /netbsd: rv 1 t:seq[0] 27d4197f seq[1] 27d4198e 0/0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 6/0 off 58 wptr c0c16cc6 junk 0 [230-
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 6 rv 1 ptr c0c16cc0/c0c16cc6 buf [230-
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ftps_seq[1] = 246fc1fc inc 0 len 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process: mlen 1448
 Nov 27 23:39:31 server /netbsd: seqoff 0 thseq 246fc1fc ackmin 0
 Nov 27 23:39:31 server /netbsd: ackoff 0 thack 27d4198e seqmin 0
 Nov 27 23:39:31 server /netbsd: IN: 18 seq 246fc1fc/0 ack 27d4198e/0 len 1448/1500 off 52
 Nov 27 23:39:31 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:31 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:31 server /netbsd: rv 1 t:seq[0] 27d4198e seq[1] 27d4198e 0/0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 120/1328 off 172 wptr c0c16d38 junk 0 [    The NetBSD Project FTP Server located in Redwood City, CA, USA
 Nov 27 23:39:31 server /netbsd: 100 Mbps connectivity courtesy of               ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    The NetBSD Project FTP Server located in Redwood City, CA, USA
 Nov 27 23:39:31 server /netbsd: 100 Mbps connectivity courtesy of               ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    100 Mbps connectivity courtesy of               ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 52 rv 1 ptr c0c16d04/c0c16d38 buf [    100 Mbps connectivity courtesy of               ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 68/1260 off 240 wptr c0c16d38 junk 2 [    100 Mbps connectivity courtesy of                      ,        ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    100 Mbps connectivity courtesy of                      ,        ,
 Nov 27 23:39:31 server /netbsd: The Internet Systems Consortium           WEL]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    The Internet Systems Consortium           WEL]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 49 rv 1 ptr c0c16d07/c0c16d38 buf [    The Internet Systems Consortium           WEL]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 71/1189 off 311 wptr c0c16d38 junk 2 [    The Internet Systems Consortium           WELCOME!    /(        )`]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    The Internet Systems Consortium           WELCOME!    /(        )`
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[                                                ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 48 rv 1 ptr c0c16d08/c0c16d38 buf [                                                ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 72/1117 off 383 wptr c0c16d38 junk 2 [                                                          \ \___   / |
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [                                                          \ \___   / |
 Nov 27 23:39:31 server /netbsd: +--- Currently Supported Platforms ----+    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    +--- Currently Supported Platforms ----+    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 48 rv 1 ptr c0c16d08/c0c16d38 buf [    +--- Currently Supported Platforms ----+    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 72/1045 off 455 wptr c0c16d38 junk 2 [    +--- Currently Supported Platforms ----+              /- _  `-/  '
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    +--- Currently Supported Platforms ----+              /- _  `-/  '
 Nov 27 23:39:31 server /netbsd: |  acorn[26,32], algor, alpha, amd64,  |    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |  acorn[26,32], algor, alpha, amd64,  |    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 48 rv 1 ptr c0c16d08/c0c16d38 buf [    |  acorn[26,32], algor, alpha, amd64,  |    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 72/973 off 527 wptr c0c16d38 junk 2 [    |  acorn[26,32], algor, alpha, amd64,  |             (/\/ \ \   /\
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |  acorn[26,32], algor, alpha, amd64,  |             (/\/ \ \   /\
 Nov 27 23:39:31 server /netbsd: |   amiga[,ppc], arc, atari, bebox,    |  Re]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |   amiga[,ppc], arc, atari, bebox,    |  Re]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 48 rv 1 ptr c0c16d08/c0c16d38 buf [    |   amiga[,ppc], arc, atari, bebox,    |  Re]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 72/901 off 599 wptr c0c16d38 junk 2 [    |   amiga[,ppc], arc, atari, bebox,    |  Release:   / /   | `    \]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |   amiga[,ppc], arc, atari, bebox,    |  Release:   / /   | `    \
 Nov 27 23:39:31 server /netbsd: |   cats, cesfic, cobalt, dreamcast,   |  3]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |   cats, cesfic, cobalt, dreamcast,   |  3]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 47 rv 1 ptr c0c16d09/c0c16d38 buf [    |   cats, cesfic, cobalt, dreamcast,   |  3]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 73/828 off 672 wptr c0c16d38 junk 2 [    |   cats, cesfic, cobalt, dreamcast,   |  3.0        O O   ) /    |
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |   cats, cesfic, cobalt, dreamcast,   |  3.0        O O   ) /    |
 Nov 27 23:39:31 server /netbsd: |      evb[arm,mips,ppc,sh3,sh5],      |   ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |      evb[arm,mips,ppc,sh3,sh5],      |   ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 47 rv 1 ptr c0c16d09/c0c16d38 buf [    |      evb[arm,mips,ppc,sh3,sh5],      |   ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 73/755 off 745 wptr c0c16d38 junk 2 [    |      evb[arm,mips,ppc,sh3,sh5],      |             `-^--'`<     '
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |      evb[arm,mips,ppc,sh3,sh5],      |             `-^--'`<     '
 Nov 27 23:39:31 server /netbsd: | hp[300,700], hpc[arm,mips,sh], i386, |   ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    | hp[300,700], hpc[arm,mips,sh], i386, |   ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 47 rv 1 ptr c0c16d09/c0c16d38 buf [    | hp[300,700], hpc[arm,mips,sh], i386, |   ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 73/682 off 818 wptr c0c16d38 junk 2 [    | hp[300,700], hpc[arm,mips,sh], i386, |            (_.)  _  )   /
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    | hp[300,700], hpc[arm,mips,sh], i386, |            (_.)  _  )   /
 Nov 27 23:39:31 server /netbsd: |       ibmnws, iyonix, luna68k,       |    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |       ibmnws, iyonix, luna68k,       |    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 48 rv 1 ptr c0c16d08/c0c16d38 buf [    |       ibmnws, iyonix, luna68k,       |    ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 72/610 off 890 wptr c0c16d38 junk 2 [    |       ibmnws, iyonix, luna68k,       |              .___/`    /
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |       ibmnws, iyonix, luna68k,       |              .___/`    /
 Nov 27 23:39:31 server /netbsd: |     mac[m68k,ppc], mipsco, mmeye,    |     ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |     mac[m68k,ppc], mipsco, mmeye,    |     ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 49 rv 1 ptr c0c16d07/c0c16d38 buf [    |     mac[m68k,ppc], mipsco, mmeye,    |     ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 71/539 off 961 wptr c0c16d38 junk 2 [    |     mac[m68k,ppc], mipsco, mmeye,    |               `-----' /
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |     mac[m68k,ppc], mipsco, mmeye,    |               `-----' /
 Nov 27 23:39:31 server /netbsd: |       mvme[m68k,ppc], netwinder      |  <---]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |       mvme[m68k,ppc], netwinder      |  <---]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 50 rv 1 ptr c0c16d06/c0c16d38 buf [    |       mvme[m68k,ppc], netwinder      |  <---]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 70/469 off 1031 wptr c0c16d38 junk 2 [    |       mvme[m68k,ppc], netwinder      |  <----.     __ / __   \
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |       mvme[m68k,ppc], netwinder      |  <----.     __ / __   \
 Nov 27 23:39:31 server /netbsd: |       news[m68k,mips], next68k,      |  <---]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |       news[m68k,mips], next68k,      |  <---]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 50 rv 1 ptr c0c16d06/c0c16d38 buf [    |       news[m68k,mips], next68k,      |  <---]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 70/399 off 1101 wptr c0c16d38 junk 2 [    |       news[m68k,mips], next68k,      |  <----|====O)))==) \) /==]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |       news[m68k,mips], next68k,      |  <----|====O)))==) \) /====
 Nov 27 23:39:31 server /netbsd: |   ofppc, pc532, playstation2, pmax,  |  ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |   ofppc, pc532, playstation2, pmax,  |  ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 46 rv 1 ptr c0c16d0a/c0c16d38 buf [    |   ofppc, pc532, playstation2, pmax,  |  ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 74/325 off 1175 wptr c0c16d38 junk 2 [    |   ofppc, pc532, playstation2, pmax,  |  <----'    `--' `.__,' \
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |   ofppc, pc532, playstation2, pmax,  |  <----'    `--' `.__,' \
 Nov 27 23:39:31 server /netbsd: |    pmppc, prep, sandpoint, sbmips,   |     ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |    pmppc, prep, sandpoint, sbmips,   |     ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_valid=2 len 49 rv 1 ptr c0c16d07/c0c16d38 buf [    |    pmppc, prep, sandpoint, sbmips,   |     ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:len 71/254 off 1246 wptr c0c16d38 junk 2 [    |    pmppc, prep, sandpoint, sbmips,   |               |        |
 Nov 27 23:39:31 server /netbsd: ]
 Nov 27 23:39:31 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |    pmppc, prep, sandpoint, sbmips,   |               |        |
 Nov 27 23:39:32 server /netbsd: |      sgimips, shark, sparc[,64],     |     ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |      sgimips, shark, sparc[,64],     |     ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 49 rv 1 ptr c0c16d07/c0c16d38 buf [    |      sgimips, shark, sparc[,64],     |     ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 71/183 off 1317 wptr c0c16d38 junk 2 [    |      sgimips, shark, sparc[,64],     |               \       /
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |      sgimips, shark, sparc[,64],     |               \       /
 Nov 27 23:39:32 server /netbsd: |       sun[2,3], vax, x68k, xen       |      ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    |       sun[2,3], vax, x68k, xen       |      ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 50 rv 1 ptr c0c16d06/c0c16d38 buf [    |       sun[2,3], vax, x68k, xen       |      ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 70/113 off 1387 wptr c0c16d38 junk 2 [    |       sun[2,3], vax, x68k, xen       |          ______( (_  / \_]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    |       sun[2,3], vax, x68k, xen       |          ______( (_  / \_____
 Nov 27 23:39:32 server /netbsd: +--------------------------------------+]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    +--------------------------------------+]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 44 rv 1 ptr c0c16d0c/c0c16d38 buf [    +--------------------------------------+]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 76/37 off 1463 wptr c0c16d38 junk 2 [    +--------------------------------------+        ,'  ,-----'   |       \]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    +--------------------------------------+        ,'  ,-----'   |       \
 Nov 27 23:39:32 server /netbsd: See our website at http://www.NetBSD.or]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    See our website at http://www.NetBSD.or]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 43 rv 1 ptr c0c16d0d/c0c16d38 buf [    See our website at http://www.NetBSD.or]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 37/0 off 1500 wptr c0c16d10 junk 2 [    See our website at http://www.Net]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 80 rv 1 ptr c0c16cc0/c0c16d10 buf [    See our website at http://www.NetBSD.org/       `--{__________)  (FL) \/
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_servert_valid:i(2) < 5
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 2 rv 1 ptr c0c16d0e/c0c16d10 buf [  ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 246fc7a4 inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 781
 Nov 27 23:39:32 server /netbsd: seqoff 0 thseq 246fc7a4 ackmin 0
 Nov 27 23:39:32 server /netbsd: ackoff 0 thack 27d4198e seqmin 0
 Nov 27 23:39:32 server /netbsd: IN: 18 seq 246fc7a4/0 ack 27d4198e/0 len 781/833 off 52
 Nov 27 23:39:32 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: rv 1 t:seq[0] 27d4198e seq[1] 27d4198e 0/0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 118/663 off 170 wptr c0c16d38 junk 2 [     We log all FTP transfers and commands.   
 Nov 27 23:39:32 server /netbsd: 230-
 Nov 27 23:39:32 server /netbsd: EXPORT NOTICE
 Nov 27 23:39:32 server /netbsd: 
 Nov 27 23:39:32 server /netbsd: Please note that portions of this F]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [     We log all FTP transfers and commands.   
 Nov 27 23:39:32 server /netbsd: 230-
 Nov 27 23:39:32 server /netbsd: EXPORT NOTICE
 Nov 27 23:39:32 server /netbsd: 
 Nov 27 23:39:32 server /netbsd: Please note that portions of this FTP]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 72 rv 1 ptr c0c16cf0/c0c16d38 buf [230-
 Nov 27 23:39:32 server /netbsd: EXPORT NOTICE
 Nov 27 23:39:32 server /netbsd: 
 Nov 27 23:39:32 server /netbsd: Please note that portions of this FTP]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 66 rv 1 ptr c0c16cf6/c0c16d38 buf [    EXPORT NOTICE
 Nov 27 23:39:32 server /netbsd: 
 Nov 27 23:39:32 server /netbsd: Please note that portions of this FTP]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 47 rv 1 ptr c0c16d09/c0c16d38 buf [    
 Nov 27 23:39:32 server /netbsd: Please note that portions of this FTP]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    Please note that portions of this FTP]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 41 rv 1 ptr c0c16d0f/c0c16d38 buf [    Please note that portions of this FTP]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 79/584 off 249 wptr c0c16d38 junk 2 [    Please note that portions of this FTP site contain cryptographic
 Nov 27 23:39:32 server /netbsd: softw]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Please note that portions of this FTP site contain cryptographic
 Nov 27 23:39:32 server /netbsd: software controlled under the Export Administr]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    software controlled under the Export Administr]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 50 rv 1 ptr c0c16d06/c0c16d38 buf [    software controlled under the Export Administr]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 70/514 off 319 wptr c0c16d38 junk 2 [    software controlled under the Export Administration Regulations (E]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    software controlled under the Export Administration Regulations (EAR).
 Nov 27 23:39:32 server /netbsd: 
 Nov 27 23:39:32 server /netbsd: None of this software may be downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 44 rv 1 ptr c0c16d0c/c0c16d38 buf [    
 Nov 27 23:39:32 server /netbsd: None of this software may be downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    None of this software may be downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 38 rv 1 ptr c0c16d12/c0c16d38 buf [    None of this software may be downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 82/432 off 401 wptr c0c16d38 junk 2 [    None of this software may be downloaded or otherwise exported or
 Nov 27 23:39:32 server /netbsd: re-expor]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    None of this software may be downloaded or otherwise exported or
 Nov 27 23:39:32 server /netbsd: re-exported into (or to a national or resident]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    re-exported into (or to a national or resident]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 50 rv 1 ptr c0c16d06/c0c16d38 buf [    re-exported into (or to a national or resident]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 70/362 off 471 wptr c0c16d38 junk 2 [    re-exported into (or to a national or resident of) Cuba, Iraq, Lib]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    re-exported into (or to a national or resident of) Cuba, Iraq, Libya,
 Nov 27 23:39:32 server /netbsd: Sudan, North Korea, Iran, Syria or any ot]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    Sudan, North Korea, Iran, Syria or any ot]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 45 rv 1 ptr c0c16d0b/c0c16d38 buf [    Sudan, North Korea, Iran, Syria or any ot]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 75/287 off 546 wptr c0c16d38 junk 2 [    Sudan, North Korea, Iran, Syria or any other country to which the
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Sudan, North Korea, Iran, Syria or any other country to which the
 Nov 27 23:39:32 server /netbsd: U.S. has embargoed goods.
 Nov 27 23:39:32 server /netbsd: 
 Nov 27 23:39:32 server /netbsd: By downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 49 rv 1 ptr c0c16d07/c0c16d38 buf [    U.S. has embargoed goods.
 Nov 27 23:39:32 server /netbsd: 
 Nov 27 23:39:32 server /netbsd: By downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 18 rv 1 ptr c0c16d26/c0c16d38 buf [    
 Nov 27 23:39:32 server /netbsd: By downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    By downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 12 rv 1 ptr c0c16d2c/c0c16d38 buf [    By downl]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 108/179 off 654 wptr c0c16d38 junk 2 [    By downloading or using said software, you are agreeing to the
 Nov 27 23:39:32 server /netbsd: foregoing and you are representing a]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    By downloading or using said software, you are agreeing to the
 Nov 27 23:39:32 server /netbsd: foregoing and you are representing and warrantin]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    foregoing and you are representing and warrantin]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 52 rv 1 ptr c0c16d04/c0c16d38 buf [    foregoing and you are representing and warrantin]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 68/111 off 722 wptr c0c16d38 junk 2 [    foregoing and you are representing and warranting that you are n]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    foregoing and you are representing and warranting that you are not
 Nov 27 23:39:32 server /netbsd: located in, under the control of, or a natio]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[    located in, under the control of, or a natio]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 48 rv 1 ptr c0c16d08/c0c16d38 buf [    located in, under the control of, or a natio]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 72/39 off 794 wptr c0c16d38 junk 2 [    located in, under the control of, or a national or resident of any
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    located in, under the control of, or a national or resident of any
 Nov 27 23:39:32 server /netbsd: such country or on any such list.
 Nov 27 23:39:32 server /netbsd: 230 Guest]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 48 rv 1 ptr c0c16d08/c0c16d38 buf [    such country or on any such list.
 Nov 27 23:39:32 server /netbsd: 230 Guest]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_server_valid:junk after cmd[230 Guest]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=2 len 9 rv 1 ptr c0c16d2f/c0c16d38 buf [230 Guest]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 39/0 off 833 wptr c0c16cf0 junk 2 [230 Guest login ok, access restrictions]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 48 rv 1 ptr c0c16cc0/c0c16cf0 buf [230 Guest login ok, access restrictions apply.
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 246fcab1 inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 6
 Nov 27 23:39:32 server /netbsd: OUT: 18 seq 27d4198e/0 ack 246fcab1/0 len 6/58 off 52
 Nov 27 23:39:32 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: rv 0 t:seq[0] 246fc7a4 seq[1] 246fcab1 0/0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 6/0 off 58 wptr c0c16c2e junk 0 [SYST
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 6 rv 0 ptr c0c16c28/c0c16c2e buf [SYST
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 27d41994 inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 49
 Nov 27 23:39:32 server /netbsd: seqoff 0 thseq 246fcab1 ackmin 0
 Nov 27 23:39:32 server /netbsd: ackoff 0 thack 27d41994 seqmin 0
 Nov 27 23:39:32 server /netbsd: IN: 18 seq 246fcab1/0 ack 27d41994/0 len 49/101 off 52
 Nov 27 23:39:32 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: rv 1 t:seq[0] 27d4198e seq[1] 27d41994 0/0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 49/0 off 101 wptr c0c16cf1 junk 0 [215 UNIX Type: L8 Version: NetBSD-ftpd 20060923
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 49 rv 1 ptr c0c16cc0/c0c16cf1 buf [215 UNIX Type: L8 Version: NetBSD-ftpd 20060923
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 246fcae2 inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 6
 Nov 27 23:39:32 server /netbsd: OUT: 18 seq 27d41994/0 ack 246fcae2/0 len 6/58 off 52
 Nov 27 23:39:32 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: rv 0 t:seq[0] 246fcab1 seq[1] 246fcae2 0/0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 6/0 off 58 wptr c0c16c2e junk 0 [FEAT
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 6 rv 0 ptr c0c16c28/c0c16c2e buf [FEAT
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 27d4199a inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 24
 Nov 27 23:39:32 server /netbsd: seqoff 0 thseq 246fcae2 ackmin 0
 Nov 27 23:39:32 server /netbsd: ackoff 0 thack 27d4199a seqmin 0
 Nov 27 23:39:32 server /netbsd: IN: 18 seq 246fcae2/0 ack 27d4199a/0 len 24/76 off 52
 Nov 27 23:39:32 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: rv 1 t:seq[0] 27d41994 seq[1] 27d4199a 0/0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 24/0 off 76 wptr c0c16cd8 junk 0 [211-Features supported
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 24 rv 1 ptr c0c16cc0/c0c16cd8 buf [211-Features supported
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 246fcafa inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 86
 Nov 27 23:39:32 server /netbsd: seqoff 0 thseq 246fcafa ackmin 0
 Nov 27 23:39:32 server /netbsd: ackoff 0 thack 27d4199a seqmin 0
 Nov 27 23:39:32 server /netbsd: IN: 18 seq 246fcafa/0 ack 27d4199a/0 len 86/138 off 52
 Nov 27 23:39:32 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: rv 1 t:seq[0] 27d4199a seq[1] 27d4199a 0/0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 86/0 off 138 wptr c0c16d16 junk 0 [ MDTM
 Nov 27 23:39:32 server /netbsd: MLST Type*;Size*;Modify*;Perm*;Unique*;
 Nov 27 23:39:32 server /netbsd: REST STREAM
 Nov 27 23:39:32 server /netbsd: SIZE
 Nov 27 23:39:32 server /netbsd: TVFS
 Nov 27 23:39:32 server /netbsd: 211 End
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 86 rv 1 ptr c0c16cc0/c0c16d16 buf [ MDTM
 Nov 27 23:39:32 server /netbsd: MLST Type*;Size*;Modify*;Perm*;Unique*;
 Nov 27 23:39:32 server /netbsd: REST STREAM
 Nov 27 23:39:32 server /netbsd: SIZE
 Nov 27 23:39:32 server /netbsd: TVFS
 Nov 27 23:39:32 server /netbsd: 211 End
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 79 rv 1 ptr c0c16cc7/c0c16d16 buf [ MLST Type*;Size*;Modify*;Perm*;Unique*;
 Nov 27 23:39:32 server /netbsd: REST STREAM
 Nov 27 23:39:32 server /netbsd: SIZE
 Nov 27 23:39:32 server /netbsd: TVFS
 Nov 27 23:39:32 server /netbsd: 211 End
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 37 rv 1 ptr c0c16cf1/c0c16d16 buf [ REST STREAM
 Nov 27 23:39:32 server /netbsd: SIZE
 Nov 27 23:39:32 server /netbsd: TVFS
 Nov 27 23:39:32 server /netbsd: 211 End
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 23 rv 1 ptr c0c16cff/c0c16d16 buf [ SIZE
 Nov 27 23:39:32 server /netbsd: TVFS
 Nov 27 23:39:32 server /netbsd: 211 End
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 16 rv 1 ptr c0c16d06/c0c16d16 buf [ TVFS
 Nov 27 23:39:32 server /netbsd: 211 End
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 9 rv 1 ptr c0c16d0d/c0c16d16 buf [211 End
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 246fcb50 inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 5
 Nov 27 23:39:32 server /netbsd: OUT: 18 seq 27d4199a/0 ack 246fcb50/0 len 5/57 off 52
 Nov 27 23:39:32 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: rv 0 t:seq[0] 246fcafa seq[1] 246fcb50 0/0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 5/0 off 57 wptr c0c16c2d junk 0 [PWD
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 5 rv 0 ptr c0c16c28/c0c16c2d buf [PWD
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 27d4199f inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 35
 Nov 27 23:39:32 server /netbsd: seqoff 0 thseq 246fcb50 ackmin 0
 Nov 27 23:39:32 server /netbsd: ackoff 0 thack 27d4199f seqmin 0
 Nov 27 23:39:32 server /netbsd: IN: 18 seq 246fcb50/0 ack 27d4199f/0 len 35/87 off 52
 Nov 27 23:39:32 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:32 server /netbsd: rv 1 t:seq[0] 27d4199a seq[1] 27d4199f 0/0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process:len 35/0 off 87 wptr c0c16ce3 junk 0 [257 "/" is the current directory.
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ippr_ftp_valid=0 len 35 rv 1 ptr c0c16cc0/c0c16ce3 buf [257 "/" is the current directory.
 Nov 27 23:39:32 server /netbsd: ]
 Nov 27 23:39:32 server /netbsd: ftps_seq[1] = 246fcb73 inc 0 len 0
 Nov 27 23:39:32 server /netbsd: ippr_ftp_process: mlen 0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process: mlen 6
 Nov 27 23:39:34 server /netbsd: OUT: 18 seq 27d4199f/0 ack 246fcb73/0 len 6/58 off 52
 Nov 27 23:39:34 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:34 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:34 server /netbsd: rv 0 t:seq[0] 246fcb50 seq[1] 246fcb73 0/0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process:len 6/0 off 58 wptr c0c16c2e junk 0 [QUIT
 Nov 27 23:39:34 server /netbsd: ]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_valid=0 len 6 rv 0 ptr c0c16c28/c0c16c2e buf [QUIT
 Nov 27 23:39:34 server /netbsd: ]
 Nov 27 23:39:34 server /netbsd: ftps_seq[1] = 27d419a5 inc 0 len 0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process: mlen 6
 Nov 27 23:39:34 server /netbsd: seqoff 0 thseq 246fcb73 ackmin 0
 Nov 27 23:39:34 server /netbsd: ackoff 0 thack 27d419a5 seqmin 0
 Nov 27 23:39:34 server /netbsd: IN: 18 seq 246fcb73/0 ack 27d419a5/0 len 6/58 off 52
 Nov 27 23:39:34 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:34 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:34 server /netbsd: rv 1 t:seq[0] 27d4199f seq[1] 27d419a5 0/0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process:len 6/0 off 58 wptr c0c16cc6 junk 0 [221-
 Nov 27 23:39:34 server /netbsd: ]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_valid=0 len 6 rv 1 ptr c0c16cc0/c0c16cc6 buf [221-
 Nov 27 23:39:34 server /netbsd: ]
 Nov 27 23:39:34 server /netbsd: ftps_seq[1] = 246fcb79 inc 0 len 0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process: mlen 186
 Nov 27 23:39:34 server /netbsd: seqoff 0 thseq 246fcb79 ackmin 0
 Nov 27 23:39:34 server /netbsd: ackoff 0 thack 27d419a5 seqmin 0
 Nov 27 23:39:34 server /netbsd: IN: 19 seq 246fcb79/0 ack 27d419a5/0 len 186/238 off 52
 Nov 27 23:39:34 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:34 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:34 server /netbsd: rv 1 t:seq[0] 27d419a5 seq[1] 27d419a5 0/0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process:len 120/66 off 172 wptr c0c16d38 junk 0 [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:34 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:34 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_server_valid:junk after cmd[    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_valid=2 len 61 rv 1 ptr c0c16cfb/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process:len 59/7 off 231 wptr c0c16d38 junk 2 [    Total traffic for this session was 2658 bytes in 0 tran]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transfers.
 Nov 27 23:39:34 server /netbsd: 221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_server_valid:junk after cmd[221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_valid=2 len 53 rv 1 ptr c0c16d03/c0c16d38 buf [221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process:len 7/0 off 238 wptr c0c16cfc junk 2 [221 Tha]
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_valid=0 len 60 rv 1 ptr c0c16cc0/c0c16cfc buf [221 Thank you for using the FTP service on ftp.NetBSD.org.
 Nov 27 23:39:34 server /netbsd: ]
 Nov 27 23:39:34 server /netbsd: ftps_seq[1] = 246fcc34 inc 0 len 0
 Nov 27 23:39:34 server /netbsd: ippr_ftp_process: mlen 0
 Nov 27 23:39:35 server /netbsd: ippr_ftp_process: mlen 186
 Nov 27 23:39:35 server /netbsd: seqoff 0 thseq 246fcb79 ackmin 0
 Nov 27 23:39:35 server /netbsd: ackoff 0 thack 27d419a5 seqmin 0
 Nov 27 23:39:35 server /netbsd: IN: 19 seq 246fcb79/0 ack 27d419a5/0 len 186/238 off 52
 Nov 27 23:39:35 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:35 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:35 server /netbsd: rv 1 t:seq[0] 27d419a5 seq[1] 27d419a5 0/0
 Nov 27 23:39:35 server /netbsd: ippr_ftp_process:len 120/66 off 172 wptr c0c16d38 junk 0 [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:35 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:35 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:35 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:35 server /netbsd: ippr_ftp_server_valid:junk after cmd[    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:35 server /netbsd: ippr_ftp_valid=2 len 61 rv 1 ptr c0c16cfb/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:35 server /netbsd: ippr_ftp_process:len 59/7 off 231 wptr c0c16d38 junk 2 [    Total traffic for this session was 2658 bytes in 0 tran]
 Nov 27 23:39:36 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:36 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transfers.
 Nov 27 23:39:36 server /netbsd: 221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:36 server /netbsd: ippr_ftp_server_valid:junk after cmd[221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:36 server /netbsd: ippr_ftp_valid=2 len 53 rv 1 ptr c0c16d03/c0c16d38 buf [221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:36 server /netbsd: ippr_ftp_process:len 7/0 off 238 wptr c0c16cfc junk 2 [221 Tha]
 Nov 27 23:39:36 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:36 server /netbsd: ippr_ftp_valid=0 len 60 rv 1 ptr c0c16cc0/c0c16cfc buf [221 Thank you for using the FTP service on ftp.NetBSD.org.
 Nov 27 23:39:36 server /netbsd: ]
 Nov 27 23:39:36 server /netbsd: ftps_seq[1] = 246fcc34 inc 0 len 0
 Nov 27 23:39:38 server /netbsd: ippr_ftp_process: mlen 186
 Nov 27 23:39:38 server /netbsd: seqoff 0 thseq 246fcb79 ackmin 0
 Nov 27 23:39:38 server /netbsd: ackoff 0 thack 27d419a5 seqmin 0
 Nov 27 23:39:38 server /netbsd: IN: 19 seq 246fcb79/0 ack 27d419a5/0 len 186/238 off 52
 Nov 27 23:39:38 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:38 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:38 server /netbsd: rv 1 t:seq[0] 27d419a5 seq[1] 27d419a5 0/0
 Nov 27 23:39:38 server /netbsd: ippr_ftp_process:len 120/66 off 172 wptr c0c16d38 junk 0 [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:38 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:38 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:38 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:38 server /netbsd: ippr_ftp_server_valid:junk after cmd[    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:38 server /netbsd: ippr_ftp_valid=2 len 61 rv 1 ptr c0c16cfb/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:38 server /netbsd: ippr_ftp_process:len 59/7 off 231 wptr c0c16d38 junk 2 [    Total traffic for this session was 2658 bytes in 0 tran]
 Nov 27 23:39:38 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:38 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transfers.
 Nov 27 23:39:38 server /netbsd: 221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:39 server /netbsd: ippr_ftp_server_valid:junk after cmd[221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:39 server /netbsd: ippr_ftp_valid=2 len 53 rv 1 ptr c0c16d03/c0c16d38 buf [221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:39 server /netbsd: ippr_ftp_process:len 7/0 off 238 wptr c0c16cfc junk 2 [221 Tha]
 Nov 27 23:39:39 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:39 server /netbsd: ippr_ftp_valid=0 len 60 rv 1 ptr c0c16cc0/c0c16cfc buf [221 Thank you for using the FTP service on ftp.NetBSD.org.
 Nov 27 23:39:39 server /netbsd: ]
 Nov 27 23:39:39 server /netbsd: ftps_seq[1] = 246fcc34 inc 0 len 0
 Nov 27 23:39:44 server /netbsd: ippr_ftp_process: mlen 186
 Nov 27 23:39:44 server /netbsd: seqoff 0 thseq 246fcb79 ackmin 0
 Nov 27 23:39:44 server /netbsd: ackoff 0 thack 27d419a5 seqmin 0
 Nov 27 23:39:44 server /netbsd: IN: 19 seq 246fcb79/0 ack 27d419a5/0 len 186/238 off 52
 Nov 27 23:39:44 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:44 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:44 server /netbsd: rv 1 t:seq[0] 27d419a5 seq[1] 27d419a5 0/0
 Nov 27 23:39:44 server /netbsd: ippr_ftp_process:len 120/66 off 172 wptr c0c16d38 junk 0 [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:44 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:44 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:44 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:44 server /netbsd: ippr_ftp_server_valid:junk after cmd[    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:44 server /netbsd: ippr_ftp_valid=2 len 61 rv 1 ptr c0c16cfb/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:44 server /netbsd: ippr_ftp_process:len 59/7 off 231 wptr c0c16d38 junk 2 [    Total traffic for this session was 2658 bytes in 0 tran]
 Nov 27 23:39:44 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:45 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transfers.
 Nov 27 23:39:45 server /netbsd: 221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:45 server /netbsd: ippr_ftp_server_valid:junk after cmd[221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:45 server /netbsd: ippr_ftp_valid=2 len 53 rv 1 ptr c0c16d03/c0c16d38 buf [221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:45 server /netbsd: ippr_ftp_process:len 7/0 off 238 wptr c0c16cfc junk 2 [221 Tha]
 Nov 27 23:39:45 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:45 server /netbsd: ippr_ftp_valid=0 len 60 rv 1 ptr c0c16cc0/c0c16cfc buf [221 Thank you for using the FTP service on ftp.NetBSD.org.
 Nov 27 23:39:45 server /netbsd: ]
 Nov 27 23:39:45 server /netbsd: ftps_seq[1] = 246fcc34 inc 0 len 0
 Nov 27 23:39:56 server /netbsd: ippr_ftp_process: mlen 186
 Nov 27 23:39:57 server /netbsd: seqoff 0 thseq 246fcb79 ackmin 0
 Nov 27 23:39:57 server /netbsd: ackoff 0 thack 27d419a5 seqmin 0
 Nov 27 23:39:57 server /netbsd: IN: 19 seq 246fcb79/0 ack 27d419a5/0 len 186/238 off 52
 Nov 27 23:39:57 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:39:57 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:39:57 server /netbsd: rv 1 t:seq[0] 27d419a5 seq[1] 27d419a5 0/0
 Nov 27 23:39:57 server /netbsd: ippr_ftp_process:len 120/66 off 172 wptr c0c16d38 junk 0 [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:57 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:39:57 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_server_valid:junk after cmd[    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_valid=2 len 61 rv 1 ptr c0c16cfb/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_process:len 59/7 off 231 wptr c0c16d38 junk 2 [    Total traffic for this session was 2658 bytes in 0 tran]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:57 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transfers.
 Nov 27 23:39:57 server /netbsd: 221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_server_valid:junk after cmd[221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_valid=2 len 53 rv 1 ptr c0c16d03/c0c16d38 buf [221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_process:len 7/0 off 238 wptr c0c16cfc junk 2 [221 Tha]
 Nov 27 23:39:57 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:39:57 server /netbsd: ippr_ftp_valid=0 len 60 rv 1 ptr c0c16cc0/c0c16cfc buf [221 Thank you for using the FTP service on ftp.NetBSD.org.
 Nov 27 23:39:57 server /netbsd: ]
 Nov 27 23:39:57 server /netbsd: ftps_seq[1] = 246fcc34 inc 0 len 0
 Nov 27 23:40:20 server /netbsd: ippr_ftp_process: mlen 186
 Nov 27 23:40:20 server /netbsd: seqoff 0 thseq 246fcb79 ackmin 0
 Nov 27 23:40:20 server /netbsd: ackoff 0 thack 27d419a5 seqmin 0
 Nov 27 23:40:20 server /netbsd: IN: 19 seq 246fcb79/0 ack 27d419a5/0 len 186/238 off 52
 Nov 27 23:40:20 server /netbsd: sel 0 seqmin 0/0 offset 0/0
 Nov 27 23:40:20 server /netbsd: sel 0 ackmin 0/0 offset 0/0
 Nov 27 23:40:20 server /netbsd: rv 1 t:seq[0] 27d419a5 seq[1] 27d419a5 0/0
 Nov 27 23:40:20 server /netbsd: ippr_ftp_process:len 120/66 off 172 wptr c0c16d38 junk 0 [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:40:20 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:40:20 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Data traffic for this session was 0 bytes in 0 files.
 Nov 27 23:40:20 server /netbsd: Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:40:20 server /netbsd: ippr_ftp_server_valid:junk after cmd[    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:40:20 server /netbsd: ippr_ftp_valid=2 len 61 rv 1 ptr c0c16cfb/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transf]
 Nov 27 23:40:20 server /netbsd: ippr_ftp_process:len 59/7 off 231 wptr c0c16d38 junk 2 [    Total traffic for this session was 2658 bytes in 0 tran]
 Nov 27 23:40:21 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:40:21 server /netbsd: ippr_ftp_valid=0 len 120 rv 1 ptr c0c16cc0/c0c16d38 buf [    Total traffic for this session was 2658 bytes in 0 transfers.
 Nov 27 23:40:21 server /netbsd: 221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:40:21 server /netbsd: ippr_ftp_server_valid:junk after cmd[221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:40:21 server /netbsd: ippr_ftp_valid=2 len 53 rv 1 ptr c0c16d03/c0c16d38 buf [221 Thank you for using the FTP service on ftp.NetBSD]
 Nov 27 23:40:21 server /netbsd: ippr_ftp_process:len 7/0 off 238 wptr c0c16cfc junk 2 [221 Tha]
 Nov 27 23:40:21 server /netbsd: ippr_ftp_process:junk 2 -> 0
 Nov 27 23:40:21 server /netbsd: ippr_ftp_valid=0 len 60 rv 1 ptr c0c16cc0/c0c16cfc buf [221 Thank you for using the FTP service on ftp.NetBSD.org.
 Nov 27 23:40:21 server /netbsd: ]
 Nov 27 23:40:21 server /netbsd: ftps_seq[1] = 246fcc34 inc 0 len 0
 Nov 27 23:40:34 server /netbsd: ippr_ftp_process: mlen 0
 Nov 27 23:40:34 server /netbsd: ippr_ftp_process: mlen 0

State-Changed-From-To: open->feedback
State-Changed-By: pavel@netbsd.org
State-Changed-When: Thu, 14 Jun 2007 19:59:55 +0000
State-Changed-Why:
Is it still a problem with the new ipf in 4.0_BETA2 ?


State-Changed-From-To: feedback->open
State-Changed-By: pavel@netbsd.org
State-Changed-When: Sun, 17 Jun 2007 21:48:50 +0000
State-Changed-Why:
Still there.


From: Manuel Bouyer <bouyer@antioche.eu.org>
To: gnats-bugs@NetBSD.org
Cc: ipf-bug-people@NetBSD.org, netbsd-bugs@NetBSD.org,
	gnats-admin@NetBSD.org, pavel@NetBSD.org
Subject: Re: kern/25810 (ipf4 ftp proxy has problems with long 221- lines)
Date: Sun, 17 Jun 2007 22:25:59 +0200

 On Thu, Jun 14, 2007 at 07:59:58PM +0000, pavel@NetBSD.org wrote:
 > Synopsis: ipf4 ftp proxy has problems with long 221- lines
 > 
 > State-Changed-From-To: open->feedback
 > State-Changed-By: pavel@netbsd.org
 > State-Changed-When: Thu, 14 Jun 2007 19:59:55 +0000
 > State-Changed-Why:
 > Is it still a problem with the new ipf in 4.0_BETA2 ?

 It's still there with ipf v4.1.23

 -- 
 Manuel Bouyer <bouyer@antioche.eu.org>
      NetBSD: 26 ans d'experience feront toujours la difference
 --

From: Manuel Bouyer <bouyer@antioche.eu.org>
To: gnats-bugs@NetBSD.org
Cc: ipf-bug-people@NetBSD.org, netbsd-bugs@NetBSD.org, gnats-admin@NetBSD.org
Subject: Re: kern/25810 (ipf4 ftp proxy has problems with long 221- lines)
Date: Sat, 24 May 2008 20:21:25 +0200

 I just tested with the latest imported ipf (4.1.29), it still hangs when the
 ftp server sends a long 221- line.

 -- 
 Manuel Bouyer <bouyer@antioche.eu.org>
      NetBSD: 26 ans d'experience feront toujours la difference
 --

From: Manuel Bouyer <bouyer@antioche.eu.org>
To: netbsd-bugs@NetBSD.org
Cc: 
Subject: kern/25810
Date: Sat, 24 May 2008 19:15:52 +0200

 Hi,
 I just tested with the latest imported ipf (4.1.29), it still hangs when the
 ftp server sends a long 221- line.

 -- 
 Manuel Bouyer <bouyer@antioche.eu.org>
      NetBSD: 26 ans d'experience feront toujours la difference
 --
From: Darren Reed <darrenr@netbsd.org>
To: Manuel Bouyer <bouyer@antioche.eu.org>
Cc: gnats-bugs@gnats.NetBSD.org
Subject: Re: kern/25810
Date: Thu, 23 Jul 2009 03:47:29 -0700

  ftp -a asim.lip6.fr
 Connected to asim.lip6.fr.
 220-

             Bienvenue au departement [A]rchitecture des
                                      [S]ystemes
                                      [I]ntegres et
                                      [M]icro-electronique

                                   du [L]aboratoire
                                   d' [I]nformatique
                                   de [P]aris
                                      [6]

 220 asim.lip6.fr FTP server (NetBSD-ftpd 20050303) ready.
 331 Guest login ok, type your name as password.
 230 Guest login ok, access restrictions apply.
 Remote system type is UNIX.
 Using binary mode to transfer files.
 ftp> quit
 221-
     Data traffic for this session was 0 bytes in 0 files.
     Total traffic for this session was 903 bytes in 0 transfers.
 221 Thank you for using the FTP service on asim.lip6.fr.

 And on my netbsd box, I'm running:

 # ipf -V
 ipf: IP Filter: v4.1.29 (396)
 Kernel: IP Filter: v4.1.29
 Running: yes
 Log Flags: 0 = none set
 Default: pass all, Logging: available
 Active list: 0
 Feature mask: 0x10e


From: Manuel Bouyer <bouyer@antioche.eu.org>
To: Darren Reed <darrenr@netbsd.org>
Cc: gnats-bugs@gnats.NetBSD.org
Subject: Re: kern/25810
Date: Sun, 26 Jul 2009 22:38:06 +0200

 On Thu, Jul 23, 2009 at 03:47:29AM -0700, Darren Reed wrote:
 > ftp -a asim.lip6.fr
 > Connected to asim.lip6.fr.
 > 220-
 >    
 >            Bienvenue au departement [A]rchitecture des
 >                                     [S]ystemes
 >                                     [I]ntegres et
 >                                     [M]icro-electronique
 >    
 >                                  du [L]aboratoire
 >                                  d' [I]nformatique
 >                                  de [P]aris
 >                                     [6]
 >    
 > 220 asim.lip6.fr FTP server (NetBSD-ftpd 20050303) ready.
 > 331 Guest login ok, type your name as password.
 > 230 Guest login ok, access restrictions apply.
 > Remote system type is UNIX.
 > Using binary mode to transfer files.
 > ftp> quit
 > 221-
 >    Data traffic for this session was 0 bytes in 0 files.
 >    Total traffic for this session was 903 bytes in 0 transfers.
 > 221 Thank you for using the FTP service on asim.lip6.fr.
 > 
 > And on my netbsd box, I'm running:
 > 
 > # ipf -V
 > ipf: IP Filter: v4.1.29 (396)
 > Kernel: IP Filter: v4.1.29
 > Running: yes
 > Log Flags: 0 = none set
 > Default: pass all, Logging: available
 > Active list: 0
 > Feature mask: 0x10e

 It worked for me on a i386 box too, but it was reproductible with a
 NetBSD/sparc box (endian problem ?). It's still there in NetBSD 5.0

 -- 
 Manuel Bouyer <bouyer@antioche.eu.org>
      NetBSD: 26 ans d'experience feront toujours la difference
 --

From: darrenr@NetBSD.org (Darren Reed)
To: bouyer@antioche.eu.org
Cc: gnats-bugs@NetBSD.org
Subject: Re: kern/25810
Date: Fri, 21 Aug 2009 08:27:44 +0000 (UTC)

 Has the recent ipfilter import and update to 4.1.33 fixed this?

From: "Aaron J. Grier" <agrier@poofygoof.com>
To: gnats-bugs@netbsd.org
Cc: 
Subject: Re: kern/25810: ipf4 ftp proxy has problems with long 221- lines
Date: Wed, 10 Nov 2010 22:57:39 -0800

 seeing this here on 5.1_RC4 sparc64:

 NetBSD grishnakh.poofy.goof.com 5.1_RC4 NetBSD 5.1_RC4 (GENERIC) #0: Tue
 Sep 14 02:04:42 UTC 2010 builds@b6.netbsd.org:/home/builds/ab/netbsd-5-1-RC4/sparc64/201009140238Z-obj/home/builds/ab/netbsd-5-1-RC4/src/sys/arch/sparc64/compile/GENERIC sparc64
 ipf: IP Filter: v4.1.29 (488)
 Kernel: IP Filter: v4.1.29

 the 221- messages don't even need to be very long to get it to hang.

 ftp proxy on NetBSD 1.6 sparc32 worked perfectly, with IP Filter 4.1.29
 (400).

 things get a little farther by disabling messages on the server
 (FTPPASS=-foo@bar ftp -a ...) but most servers still send a 221- message
 after a quit command, so things still hang.

 -- 
   Aaron J. Grier | "Not your ordinary poofy goof." | agrier@poofygoof.com

>Unformatted:

NetBSD Home
NetBSD PR Database Search

(Contact us) $NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007 The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.