diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-11-28 03:58:46 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-11-28 03:58:46 +0000 |
commit | b63ad0882a16a5d28003e57f2b0b81dee3fb322b (patch) | |
tree | 0a343ce219e2b8b38a5d702d66032c57b83d9720 /net/x25/x25_in.c | |
parent | a9d7bff9a84dba79609a0002e5321b74c4d64c64 (diff) |
Merge with 2.4.0-test11.
Diffstat (limited to 'net/x25/x25_in.c')
-rw-r--r-- | net/x25/x25_in.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/net/x25/x25_in.c b/net/x25/x25_in.c index 5110d327a..bcb5f1cf4 100644 --- a/net/x25/x25_in.c +++ b/net/x25/x25_in.c @@ -16,8 +16,10 @@ * X.25 001 Jonathan Naylor Started coding. * X.25 002 Jonathan Naylor Centralised disconnection code. * New timer architecture. - * mar/20/00 Daniela Squassoni Disabling/enabling of facilities + * 2000-03-20 Daniela Squassoni Disabling/enabling of facilities * negotiation. + * 2000-11-10 Henner Eisen Check and reset for out-of-sequence + * i-frames. */ #include <linux/config.h> @@ -216,7 +218,8 @@ static int x25_state3_machine(struct sock *sk, struct sk_buff *skb, int frametyp case X25_DATA: /* XXX */ sk->protinfo.x25->condition &= ~X25_COND_PEER_RX_BUSY; - if (!x25_validate_nr(sk, nr)) { + if ((ns!=sk->protinfo.x25->vr) || + !x25_validate_nr(sk, nr)) { x25_clear_queues(sk); x25_write_internal(sk, X25_RESET_REQUEST); x25_start_t22timer(sk); @@ -357,4 +360,14 @@ int x25_process_rx_frame(struct sock *sk, struct sk_buff *skb) return queued; } +int x25_backlog_rcv(struct sock *sk, struct sk_buff *skb) +{ + int queued; + + queued = x25_process_rx_frame(sk,skb); + if(!queued) kfree_skb(skb); + + return 0; +} + #endif |