From owner-freebsd-isdn Fri Jun 19 14:20:07 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id OAA07678 for freebsd-isdn-outgoing; Fri, 19 Jun 1998 14:20:07 -0700 (PDT) (envelope-from owner-freebsd-isdn@FreeBSD.ORG) Received: from peedub.muc.de (newpc.muc.ditec.de [194.120.126.33]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id OAA07577 for ; Fri, 19 Jun 1998 14:19:49 -0700 (PDT) (envelope-from garyj@peedub.muc.de) Received: from peedub.muc.de (localhost [127.0.0.1]) by peedub.muc.de (8.8.8/8.6.9) with ESMTP id XAA00496; Fri, 19 Jun 1998 23:01:18 +0200 (CEST) Message-Id: <199806192101.XAA00496@peedub.muc.de> X-Mailer: exmh version 2.0.1 12/23/97 To: balu@dva.in-berlin.de (Boris Staeblow) cc: freebsd-isdn@FreeBSD.ORG Subject: Re: ifconfig iprX down -> disconnect? Reply-To: Gary Jennejohn In-reply-to: Your message of "Fri, 19 Jun 1998 21:22:40 +0200." Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Fri, 19 Jun 1998 23:01:18 +0200 From: Gary Jennejohn Sender: owner-freebsd-isdn@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org Boris Staeblow writes: >Gary Jennejohn writes: > >> Sorry, I didn't test it with 0.62. I thought it used to work with older >> versions, but now that I look at the code I don't see how it ever could >> have. I must have confused ipr with isppp. I _know_ that isppp works. >> >> Try this (untested except for compiling) patch and report back to the list. >> This is basically the same code used by isppp. > >It didn't work. Same behaviour as before. :-( > >Did another one tested this patch with success? > Hellmuth subsequently wrote that he's implemented a fix, but didn't post any diffs. Since I've now had more time to look at the code more carefully and actually do some testing I can now post a patch I know works. *** driver/i4b_ipr.c.orig Fri Jun 19 10:01:42 1998 --- driver/i4b_ipr.c Fri Jun 19 22:53:28 1998 *************** *** 464,469 **** --- 464,470 ---- struct ifaddr *ifa = (struct ifaddr *)data; int s; int error = 0; + call_desc_t *cd = sc->sc_cdp; s = SPLI4B(); *************** *** 481,490 **** case SIOCSIFFLAGS: /* set interface flags */ if((!(ifr->ifr_flags & IFF_UP)) && ! (sc->sc_if.if_flags & IFF_RUNNING)) { /* DISCONNECT */ ! /* sc->sc_if.if_flags &= ~IFF_RUNNING; */ } microtime(&sc->sc_if.if_lastchange); break; --- 482,494 ---- case SIOCSIFFLAGS: /* set interface flags */ if((!(ifr->ifr_flags & IFF_UP)) && ! (sc->sc_state == ST_CONNECTED)) { /* DISCONNECT */ ! /* this is the way Helle does it in the timeout routine */ ! (*ctrl_desc[cd->controller].N_DISCONNECT_REQUEST)(cd->cdid, CAUSE_NORMAL); ! /* should be generalized, not just disconn due to timeouts */ ! i4b_l4_idle_timeout_ind(cd); } microtime(&sc->sc_if.if_lastchange); break; --- Gary Jennejohn Home - garyj@muc.de Work - garyj@fkr.dec.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-isdn" in the body of the message