#include <linux/netdevice.h>
#include <linux/skbuff.h>
#include <net/sock.h>
-#include <net/tcp.h>
+#include <net/tcp_states.h>
#include <asm/uaccess.h>
#include <asm/system.h>
#include <linux/fcntl.h>
*/
void nr_clear_queues(struct sock *sk)
{
- nr_cb *nr = nr_sk(sk);
+ struct nr_sock *nr = nr_sk(sk);
skb_queue_purge(&sk->sk_write_queue);
skb_queue_purge(&nr->ack_queue);
*/
void nr_frames_acked(struct sock *sk, unsigned short nr)
{
- nr_cb *nrom = nr_sk(sk);
+ struct nr_sock *nrom = nr_sk(sk);
struct sk_buff *skb;
/*
if (skb_prev == NULL)
skb_queue_head(&sk->sk_write_queue, skb);
else
- skb_append(skb_prev, skb);
+ skb_append(skb_prev, skb, &sk->sk_write_queue);
skb_prev = skb;
}
}
*/
int nr_validate_nr(struct sock *sk, unsigned short nr)
{
- nr_cb *nrom = nr_sk(sk);
+ struct nr_sock *nrom = nr_sk(sk);
unsigned short vc = nrom->va;
while (vc != nrom->vs) {
*/
int nr_in_rx_window(struct sock *sk, unsigned short ns)
{
- nr_cb *nr = nr_sk(sk);
+ struct nr_sock *nr = nr_sk(sk);
unsigned short vc = nr->vr;
unsigned short vt = (nr->vl + nr->window) % NR_MODULUS;
*/
void nr_write_internal(struct sock *sk, int frametype)
{
- nr_cb *nr = nr_sk(sk);
+ struct nr_sock *nr = nr_sk(sk);
struct sk_buff *skb;
unsigned char *dptr;
int len, timeout;
}
/*
- * This routine is called when a Connect Acknowledge with the Choke Flag
- * set is needed to refuse a connection.
+ * This routine is called to send an error reply.
*/
-void nr_transmit_refusal(struct sk_buff *skb, int mine)
+void __nr_transmit_reply(struct sk_buff *skb, int mine, unsigned char cmdflags)
{
struct sk_buff *skbn;
unsigned char *dptr;
*dptr++ = 0;
}
- *dptr++ = NR_CONNACK | NR_CHOKE_FLAG;
+ *dptr++ = cmdflags;
*dptr++ = 0;
if (!nr_route_frame(skbn, NULL))