acf.c (46686) | acf.c (47695) |
---|---|
1/*- 2 * Copyright (c) 1999 Brian Somers <brian@Awfulhak.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * | 1/*- 2 * Copyright (c) 1999 Brian Somers <brian@Awfulhak.org> 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright --- 9 unchanged lines hidden (view full) --- 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24 * SUCH DAMAGE. 25 * |
26 * $Id:$ | 26 * $Id: acf.c,v 1.1 1999/05/08 11:05:57 brian Exp $ |
27 */ 28 29#include <sys/types.h> 30 31#include <stdio.h> 32#include <termios.h> 33 34#include "defs.h" --- 21 unchanged lines hidden (view full) --- 56} 57 58static struct mbuf * 59acf_LayerPush(struct bundle *b, struct link *l, struct mbuf *bp, 60 int pri, u_short *proto) 61{ 62 const u_char cp[2] = { HDLC_ADDR, HDLC_UI }; 63 | 27 */ 28 29#include <sys/types.h> 30 31#include <stdio.h> 32#include <termios.h> 33 34#include "defs.h" --- 21 unchanged lines hidden (view full) --- 56} 57 58static struct mbuf * 59acf_LayerPush(struct bundle *b, struct link *l, struct mbuf *bp, 60 int pri, u_short *proto) 61{ 62 const u_char cp[2] = { HDLC_ADDR, HDLC_UI }; 63 |
64 if (*proto == PROTO_LCP || l->lcp.his_acfcomp == 0) | 64 if (*proto == PROTO_LCP || l->lcp.his_acfcomp == 0) { |
65 bp = mbuf_Prepend(bp, cp, 2, 0); | 65 bp = mbuf_Prepend(bp, cp, 2, 0); |
66 mbuf_SetType(bp, MB_ACFOUT); 67 } |
|
66 67 return bp; 68} 69 70static struct mbuf * 71acf_LayerPull(struct bundle *b, struct link *l, struct mbuf *bp, u_short *proto) 72{ 73 struct physical *p = link2physical(l); --- 17 unchanged lines hidden (view full) --- 91 } 92 if (cp[1] != HDLC_UI) { 93 p->hdlc.lqm.SaveInErrors++; 94 p->hdlc.stats.badcommand++; 95 log_Printf(LogDEBUG, "acf_LayerPull: control 0x%02x\n", cp[1]); 96 mbuf_Free(bp); 97 return NULL; 98 } | 68 69 return bp; 70} 71 72static struct mbuf * 73acf_LayerPull(struct bundle *b, struct link *l, struct mbuf *bp, u_short *proto) 74{ 75 struct physical *p = link2physical(l); --- 17 unchanged lines hidden (view full) --- 93 } 94 if (cp[1] != HDLC_UI) { 95 p->hdlc.lqm.SaveInErrors++; 96 p->hdlc.stats.badcommand++; 97 log_Printf(LogDEBUG, "acf_LayerPull: control 0x%02x\n", cp[1]); 98 mbuf_Free(bp); 99 return NULL; 100 } |
101 mbuf_SetType(bp, MB_ACFIN); |
|
99 } else if (cp[0] == HDLC_ADDR && cp[1] == HDLC_UI) { 100 /* 101 * We can receive compressed packets, but the peer still sends 102 * uncompressed packets (or maybe this is a PROTO_LCP packet) ! 103 */ 104 bp = mbuf_Read(bp, cp, 2); | 102 } else if (cp[0] == HDLC_ADDR && cp[1] == HDLC_UI) { 103 /* 104 * We can receive compressed packets, but the peer still sends 105 * uncompressed packets (or maybe this is a PROTO_LCP packet) ! 106 */ 107 bp = mbuf_Read(bp, cp, 2); |
108 mbuf_SetType(bp, MB_ACFIN); |
|
105 } 106 } 107 108 return bp; 109} 110 111struct layer acflayer = { LAYER_ACF, "acf", acf_LayerPush, acf_LayerPull }; | 109 } 110 } 111 112 return bp; 113} 114 115struct layer acflayer = { LAYER_ACF, "acf", acf_LayerPush, acf_LayerPull }; |