On Tue, 1 May 2007 05:20:10 +0200 Stefan Wenk <[EMAIL PROTECTED]> wrote:

> > What is more interesting is that the pppd server log is logging errors.
> > There are LCP EchoReq and EchoRep. Later a LCP ProtoRej messages occurs and
> > then the connection is broken. I have attached a pppdump file of the client
> > side if it helps. This file can be read e.g. by wireshark.
> 
> I should have mentioned that I have made some other modifications in order to 
> see the kernel logging. This was because I could not find the documentation 
> how to turn debugging on for ppp_deflate and because I'm only seeing printk 
> of type KERN_ERR and not those with KERN_DEBUG. So I might be missing some 
> additional KERN_DEBUG loggings. If somebody can point me to the documentation 
> how to get KERN_DEBUG to the log file I can make the test again.

>From the commend line: `dmesg -n 8'.

The really big fix is to boot with the ignore_loglevel boot option.  This will
turn on all messages and will defeat any userspace attempt to turn the
loglevel down.

> Here is the full diff 

Thanks for persisting with this.  The problem is rather serious.

> --- ppp_deflate.c.orig  2007-04-23 20:47:08.000000000 +0200
> +++ ppp_deflate.c       2007-04-30 19:38:19.000000000 +0200
> @@ -174,7 +174,7 @@ static int z_comp_init(void *arg, unsign
> 
>         state->seqno = 0;
>         state->unit  = unit;
> -       state->debug = debug;
> +       state->debug = 1;
> 
>         zlib_deflateReset(&state->strm);
> 
> @@ -393,7 +393,7 @@ static int z_decomp_init(void *arg, unsi
> 
>         state->seqno = 0;
>         state->unit  = unit;
> -       state->debug = debug;
> +       state->debug = 1;
>         state->mru   = mru;
> 
>         zlib_inflateReset(&state->strm);
> @@ -487,12 +487,18 @@ int z_decompress(void *arg, unsigned cha
>          */
>         for (;;) {
>                 r = zlib_inflate(&state->strm, Z_PACKET_FLUSH);
> -               if (r != Z_OK) {
> +//             if (r != Z_OK) {
> +                if ((r != Z_OK) && (r != Z_BUF_ERROR)) {
>                         if (state->debug)
> -                               printk(KERN_DEBUG "z_decompress%d: inflate 
> returned %d (%s)\n",
> +                               printk(KERN_ERR "z_decompress%d: inflate 
> returned %d (%s)\n",
>                                        state->unit, r, (state->strm.msg? 
> state->strm.msg: ""));
>                         return DECOMP_FATALERROR;
>                 }
> +                if (r == Z_BUF_ERROR) {
> +                             printk(KERN_ERR "z_decompress%d: Would have 
> triggered an error as inflate returned %d (%s)\n",
> +                             state->unit, r, (state->strm.msg? 
> state->strm.msg: ""));
> +                }
> 

(that was wordwrapped).

What does it do?

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to