Deleted Added
full compact
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 };