pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/33926 (rp-pppoe report asyncReadFromPPP error on NetBSD-3.0)
I am very very sorry: till now, I am able to test your modify.
1)
I don't know how to apply the file `patch-ah` you provided.
I try to add patch-ah into distinfo, but I am afraid of checksum
calculating.
for example, to verify it, i test it on patch-aa
serv01: [water] {46} sha1 patch-aa
SHA1 (patch-aa) = 65d518f2eeede695ec2827f1a55d6cbbb87bd8ae
but in distinfo:
SHA1 (patch-aa) = 3f806e96d3c89d9d0850d6692fd8b14778bc46c4
what's wrong?
2)
So, when make is done, I apply your patch-ah line by line manually,
re-compile ppp.o, re-link pppoe and copy it to /usr/pkg/sbin/
below is /var/log/messages:
Sep 1 17:55:38 au1550 pppd[28940]: Using interface ppp0
Sep 1 17:55:38 au1550 pppd[28940]: Connect: ppp0 <--> /dev/ttyp1
Sep 1 17:55:38 au1550 pppoe[24931]: Interface=aumac1
HWaddr=00:00:1A:19:1C:26 D
evice=/dev/bpf0 Buffer size=32768
Sep 1 17:56:09 au1550 pppd[28940]: LCP: timeout sending Config-Requests
Sep 1 17:56:09 au1550 pppd[28940]: Connection terminated.
Sep 1 17:56:09 au1550 pppd[28940]: read: Bad file descriptor
Sep 1 17:56:09 au1550 pppd[28940]: Exit.
Sep 1 17:56:09 au1550 pppoe-server[23339]: Session 3 closed for client
00:00:f0
:7e:d3:24 (192.168.13.12) on aumac1
Sep 1 17:56:09 au1550 pppoe[23916]: Unexpected packet code 167
Sep 1 17:56:09 au1550 pppoe-server[23339]: Sent PADT
----- Original Message -----
From: "Martin Husemann" <martin%duskware.de@localhost>
To: <martin%NetBSD.org@localhost>; <gnats-admin%NetBSD.org@localhost>; <pkgsrc-bugs%NetBSD.org@localhost>;
<water%infor-trans.com@localhost>
Sent: Saturday, August 05, 2006 10:15 PM
Subject: Re: pkg/33926 (rp-pppoe report asyncReadFromPPP error on
NetBSD-3.0)
The following reply was made to PR pkg/33926; it has been noted by GNATS.
From: Martin Husemann <martin%duskware.de@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: pkg/33926 (rp-pppoe report asyncReadFromPPP error on
NetBSD-3.0)
Date: Sat, 5 Aug 2006 16:12:43 +0200
--RASg3xLB4tUQ4RcS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
The package seems broken in multiple ways. The patches patch-ac and
patch-ad (both noops and unecessary) should be removed.
The patch below fixes the obvious EINVAL problem reported in this PR, but
it does not make the package work - to me it seems after restructuring
rp-pppoe completely there has been no testing on OSes using BPF.
If noone volunteers to debug the package all way through we should either
mark it broken or consider downgrading it.
Martin
--RASg3xLB4tUQ4RcS
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename=patch-ah
--- src/ppp.c.orig 2002-07-08 16:38:24.000000000 +0200
+++ src/ppp.c 2006-08-05 15:49:46.000000000 +0200
@@ -164,13 +164,27 @@
void
asyncReadFromPPP(PPPoEConnection *conn, PPPoEPacket *packet)
{
- unsigned char buf[READ_CHUNK];
- unsigned char *ptr = buf;
+ unsigned char *ptr;
unsigned char c;
+ extern int bpfLength;
+ static int readLength = 0;
+ unsigned char *buf = NULL;
int r;
- r = read(0, buf, READ_CHUNK);
+ if (readLength == 0) {
+ /*
+ * We need to read everything from BPF in the size the kernel
+ * told us (bpfLength), if we are using BPF.
+ * Otherwise just use READ_CHUNK.
+ */
+ if (bpfLength == 0)
+ readLength = READ_CHUNK;
+ else
+ readLength = bpfLength;
+ }
+ ptr = buf = malloc(readLength);
+ r = read(0, buf, readLength);
if (r < 0) {
fatalSys("read (asyncReadFromPPP)");
}
@@ -193,7 +207,7 @@
}
/* Still waiting... */
- if (PPPState == STATE_WAITFOR_FRAME_ADDR) return;
+ if (PPPState == STATE_WAITFOR_FRAME_ADDR) goto done;
while(r && PPPState == STATE_DROP_PROTO) {
--r;
@@ -202,7 +216,7 @@
}
}
- if (PPPState == STATE_DROP_PROTO) return;
+ if (PPPState == STATE_DROP_PROTO) goto done;
/* Start building frame */
while(r && PPPState == STATE_BUILDING_PACKET) {
@@ -234,6 +248,8 @@
}
}
}
+done:
+ free(buf);
}
/**********************************************************************
--RASg3xLB4tUQ4RcS--
Home |
Main Index |
Thread Index |
Old Index