Commit fddc5f3e authored by Joe Perches's avatar Joe Perches Committed by David S. Miller

x25: Reduce switch/case indent

Make the case labels the same indent as the switch.

git diff -w shows 80 column line reflowing.
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 89f0e4fe
...@@ -237,21 +237,21 @@ static int x25_device_event(struct notifier_block *this, unsigned long event, ...@@ -237,21 +237,21 @@ static int x25_device_event(struct notifier_block *this, unsigned long event,
#endif #endif
) { ) {
switch (event) { switch (event) {
case NETDEV_UP: case NETDEV_UP:
x25_link_device_up(dev); x25_link_device_up(dev);
break; break;
case NETDEV_GOING_DOWN: case NETDEV_GOING_DOWN:
nb = x25_get_neigh(dev); nb = x25_get_neigh(dev);
if (nb) { if (nb) {
x25_terminate_link(nb); x25_terminate_link(nb);
x25_neigh_put(nb); x25_neigh_put(nb);
} }
break; break;
case NETDEV_DOWN: case NETDEV_DOWN:
x25_kill_by_device(dev); x25_kill_by_device(dev);
x25_route_device_down(dev); x25_route_device_down(dev);
x25_link_device_down(dev); x25_link_device_down(dev);
break; break;
} }
} }
...@@ -1336,256 +1336,253 @@ static int x25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) ...@@ -1336,256 +1336,253 @@ static int x25_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
int rc; int rc;
switch (cmd) { switch (cmd) {
case TIOCOUTQ: { case TIOCOUTQ: {
int amount; int amount;
amount = sk->sk_sndbuf - sk_wmem_alloc_get(sk); amount = sk->sk_sndbuf - sk_wmem_alloc_get(sk);
if (amount < 0) if (amount < 0)
amount = 0; amount = 0;
rc = put_user(amount, (unsigned int __user *)argp); rc = put_user(amount, (unsigned int __user *)argp);
break; break;
} }
case TIOCINQ: { case TIOCINQ: {
struct sk_buff *skb; struct sk_buff *skb;
int amount = 0; int amount = 0;
/* /*
* These two are safe on a single CPU system as * These two are safe on a single CPU system as
* only user tasks fiddle here * only user tasks fiddle here
*/ */
lock_sock(sk); lock_sock(sk);
if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL) if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL)
amount = skb->len; amount = skb->len;
release_sock(sk); release_sock(sk);
rc = put_user(amount, (unsigned int __user *)argp); rc = put_user(amount, (unsigned int __user *)argp);
break; break;
} }
case SIOCGSTAMP: case SIOCGSTAMP:
rc = -EINVAL; rc = -EINVAL;
if (sk) if (sk)
rc = sock_get_timestamp(sk, rc = sock_get_timestamp(sk,
(struct timeval __user *)argp); (struct timeval __user *)argp);
break;
case SIOCGSTAMPNS:
rc = -EINVAL;
if (sk)
rc = sock_get_timestampns(sk,
(struct timespec __user *)argp);
break;
case SIOCGIFADDR:
case SIOCSIFADDR:
case SIOCGIFDSTADDR:
case SIOCSIFDSTADDR:
case SIOCGIFBRDADDR:
case SIOCSIFBRDADDR:
case SIOCGIFNETMASK:
case SIOCSIFNETMASK:
case SIOCGIFMETRIC:
case SIOCSIFMETRIC:
rc = -EINVAL;
break;
case SIOCADDRT:
case SIOCDELRT:
rc = -EPERM;
if (!capable(CAP_NET_ADMIN))
break; break;
case SIOCGSTAMPNS: rc = x25_route_ioctl(cmd, argp);
rc = -EINVAL; break;
if (sk) case SIOCX25GSUBSCRIP:
rc = sock_get_timestampns(sk, rc = x25_subscr_ioctl(cmd, argp);
(struct timespec __user *)argp); break;
break; case SIOCX25SSUBSCRIP:
case SIOCGIFADDR: rc = -EPERM;
case SIOCSIFADDR: if (!capable(CAP_NET_ADMIN))
case SIOCGIFDSTADDR:
case SIOCSIFDSTADDR:
case SIOCGIFBRDADDR:
case SIOCSIFBRDADDR:
case SIOCGIFNETMASK:
case SIOCSIFNETMASK:
case SIOCGIFMETRIC:
case SIOCSIFMETRIC:
rc = -EINVAL;
break;
case SIOCADDRT:
case SIOCDELRT:
rc = -EPERM;
if (!capable(CAP_NET_ADMIN))
break;
rc = x25_route_ioctl(cmd, argp);
break;
case SIOCX25GSUBSCRIP:
rc = x25_subscr_ioctl(cmd, argp);
break;
case SIOCX25SSUBSCRIP:
rc = -EPERM;
if (!capable(CAP_NET_ADMIN))
break;
rc = x25_subscr_ioctl(cmd, argp);
break;
case SIOCX25GFACILITIES: {
lock_sock(sk);
rc = copy_to_user(argp, &x25->facilities,
sizeof(x25->facilities))
? -EFAULT : 0;
release_sock(sk);
break; break;
} rc = x25_subscr_ioctl(cmd, argp);
break;
case SIOCX25GFACILITIES: {
lock_sock(sk);
rc = copy_to_user(argp, &x25->facilities,
sizeof(x25->facilities))
? -EFAULT : 0;
release_sock(sk);
break;
}
case SIOCX25SFACILITIES: { case SIOCX25SFACILITIES: {
struct x25_facilities facilities; struct x25_facilities facilities;
rc = -EFAULT; rc = -EFAULT;
if (copy_from_user(&facilities, argp, if (copy_from_user(&facilities, argp, sizeof(facilities)))
sizeof(facilities))) break;
break; rc = -EINVAL;
rc = -EINVAL; lock_sock(sk);
lock_sock(sk); if (sk->sk_state != TCP_LISTEN &&
if (sk->sk_state != TCP_LISTEN && sk->sk_state != TCP_CLOSE)
sk->sk_state != TCP_CLOSE) goto out_fac_release;
goto out_fac_release; if (facilities.pacsize_in < X25_PS16 ||
if (facilities.pacsize_in < X25_PS16 || facilities.pacsize_in > X25_PS4096)
facilities.pacsize_in > X25_PS4096) goto out_fac_release;
goto out_fac_release; if (facilities.pacsize_out < X25_PS16 ||
if (facilities.pacsize_out < X25_PS16 || facilities.pacsize_out > X25_PS4096)
facilities.pacsize_out > X25_PS4096) goto out_fac_release;
goto out_fac_release; if (facilities.winsize_in < 1 ||
if (facilities.winsize_in < 1 || facilities.winsize_in > 127)
facilities.winsize_in > 127) goto out_fac_release;
if (facilities.throughput) {
int out = facilities.throughput & 0xf0;
int in = facilities.throughput & 0x0f;
if (!out)
facilities.throughput |=
X25_DEFAULT_THROUGHPUT << 4;
else if (out < 0x30 || out > 0xD0)
goto out_fac_release; goto out_fac_release;
if (facilities.throughput) { if (!in)
int out = facilities.throughput & 0xf0; facilities.throughput |=
int in = facilities.throughput & 0x0f; X25_DEFAULT_THROUGHPUT;
if (!out) else if (in < 0x03 || in > 0x0D)
facilities.throughput |=
X25_DEFAULT_THROUGHPUT << 4;
else if (out < 0x30 || out > 0xD0)
goto out_fac_release;
if (!in)
facilities.throughput |=
X25_DEFAULT_THROUGHPUT;
else if (in < 0x03 || in > 0x0D)
goto out_fac_release;
}
if (facilities.reverse &&
(facilities.reverse & 0x81) != 0x81)
goto out_fac_release; goto out_fac_release;
x25->facilities = facilities;
rc = 0;
out_fac_release:
release_sock(sk);
break;
}
case SIOCX25GDTEFACILITIES: {
lock_sock(sk);
rc = copy_to_user(argp, &x25->dte_facilities,
sizeof(x25->dte_facilities));
release_sock(sk);
if (rc)
rc = -EFAULT;
break;
} }
if (facilities.reverse &&
(facilities.reverse & 0x81) != 0x81)
goto out_fac_release;
x25->facilities = facilities;
rc = 0;
out_fac_release:
release_sock(sk);
break;
}
case SIOCX25SDTEFACILITIES: { case SIOCX25GDTEFACILITIES: {
struct x25_dte_facilities dtefacs; lock_sock(sk);
rc = copy_to_user(argp, &x25->dte_facilities,
sizeof(x25->dte_facilities));
release_sock(sk);
if (rc)
rc = -EFAULT; rc = -EFAULT;
if (copy_from_user(&dtefacs, argp, sizeof(dtefacs))) break;
break; }
rc = -EINVAL;
lock_sock(sk);
if (sk->sk_state != TCP_LISTEN &&
sk->sk_state != TCP_CLOSE)
goto out_dtefac_release;
if (dtefacs.calling_len > X25_MAX_AE_LEN)
goto out_dtefac_release;
if (dtefacs.calling_ae == NULL)
goto out_dtefac_release;
if (dtefacs.called_len > X25_MAX_AE_LEN)
goto out_dtefac_release;
if (dtefacs.called_ae == NULL)
goto out_dtefac_release;
x25->dte_facilities = dtefacs;
rc = 0;
out_dtefac_release:
release_sock(sk);
break;
}
case SIOCX25GCALLUSERDATA: { case SIOCX25SDTEFACILITIES: {
lock_sock(sk); struct x25_dte_facilities dtefacs;
rc = copy_to_user(argp, &x25->calluserdata, rc = -EFAULT;
sizeof(x25->calluserdata)) if (copy_from_user(&dtefacs, argp, sizeof(dtefacs)))
? -EFAULT : 0;
release_sock(sk);
break; break;
} rc = -EINVAL;
lock_sock(sk);
if (sk->sk_state != TCP_LISTEN &&
sk->sk_state != TCP_CLOSE)
goto out_dtefac_release;
if (dtefacs.calling_len > X25_MAX_AE_LEN)
goto out_dtefac_release;
if (dtefacs.calling_ae == NULL)
goto out_dtefac_release;
if (dtefacs.called_len > X25_MAX_AE_LEN)
goto out_dtefac_release;
if (dtefacs.called_ae == NULL)
goto out_dtefac_release;
x25->dte_facilities = dtefacs;
rc = 0;
out_dtefac_release:
release_sock(sk);
break;
}
case SIOCX25SCALLUSERDATA: { case SIOCX25GCALLUSERDATA: {
struct x25_calluserdata calluserdata; lock_sock(sk);
rc = copy_to_user(argp, &x25->calluserdata,
sizeof(x25->calluserdata))
? -EFAULT : 0;
release_sock(sk);
break;
}
rc = -EFAULT; case SIOCX25SCALLUSERDATA: {
if (copy_from_user(&calluserdata, argp, struct x25_calluserdata calluserdata;
sizeof(calluserdata)))
break;
rc = -EINVAL;
if (calluserdata.cudlength > X25_MAX_CUD_LEN)
break;
lock_sock(sk);
x25->calluserdata = calluserdata;
release_sock(sk);
rc = 0;
break;
}
case SIOCX25GCAUSEDIAG: { rc = -EFAULT;
lock_sock(sk); if (copy_from_user(&calluserdata, argp, sizeof(calluserdata)))
rc = copy_to_user(argp, &x25->causediag,
sizeof(x25->causediag))
? -EFAULT : 0;
release_sock(sk);
break; break;
} rc = -EINVAL;
if (calluserdata.cudlength > X25_MAX_CUD_LEN)
break;
lock_sock(sk);
x25->calluserdata = calluserdata;
release_sock(sk);
rc = 0;
break;
}
case SIOCX25SCAUSEDIAG: { case SIOCX25GCAUSEDIAG: {
struct x25_causediag causediag; lock_sock(sk);
rc = -EFAULT; rc = copy_to_user(argp, &x25->causediag, sizeof(x25->causediag))
if (copy_from_user(&causediag, argp, sizeof(causediag))) ? -EFAULT : 0;
break; release_sock(sk);
lock_sock(sk); break;
x25->causediag = causediag; }
release_sock(sk);
rc = 0; case SIOCX25SCAUSEDIAG: {
struct x25_causediag causediag;
rc = -EFAULT;
if (copy_from_user(&causediag, argp, sizeof(causediag)))
break; break;
lock_sock(sk);
x25->causediag = causediag;
release_sock(sk);
rc = 0;
break;
} }
case SIOCX25SCUDMATCHLEN: { case SIOCX25SCUDMATCHLEN: {
struct x25_subaddr sub_addr; struct x25_subaddr sub_addr;
rc = -EINVAL; rc = -EINVAL;
lock_sock(sk); lock_sock(sk);
if(sk->sk_state != TCP_CLOSE) if(sk->sk_state != TCP_CLOSE)
goto out_cud_release; goto out_cud_release;
rc = -EFAULT; rc = -EFAULT;
if (copy_from_user(&sub_addr, argp, if (copy_from_user(&sub_addr, argp,
sizeof(sub_addr))) sizeof(sub_addr)))
goto out_cud_release; goto out_cud_release;
rc = -EINVAL; rc = -EINVAL;
if(sub_addr.cudmatchlength > X25_MAX_CUD_LEN) if (sub_addr.cudmatchlength > X25_MAX_CUD_LEN)
goto out_cud_release; goto out_cud_release;
x25->cudmatchlength = sub_addr.cudmatchlength; x25->cudmatchlength = sub_addr.cudmatchlength;
rc = 0; rc = 0;
out_cud_release: out_cud_release:
release_sock(sk); release_sock(sk);
break; break;
} }
case SIOCX25CALLACCPTAPPRV: { case SIOCX25CALLACCPTAPPRV: {
rc = -EINVAL; rc = -EINVAL;
lock_sock(sk); lock_sock(sk);
if (sk->sk_state != TCP_CLOSE) if (sk->sk_state != TCP_CLOSE)
break;
clear_bit(X25_ACCPT_APPRV_FLAG, &x25->flags);
release_sock(sk);
rc = 0;
break; break;
} clear_bit(X25_ACCPT_APPRV_FLAG, &x25->flags);
release_sock(sk);
rc = 0;
break;
}
case SIOCX25SENDCALLACCPT: { case SIOCX25SENDCALLACCPT: {
rc = -EINVAL; rc = -EINVAL;
lock_sock(sk); lock_sock(sk);
if (sk->sk_state != TCP_ESTABLISHED) if (sk->sk_state != TCP_ESTABLISHED)
break;
/* must call accptapprv above */
if (test_bit(X25_ACCPT_APPRV_FLAG, &x25->flags))
break;
x25_write_internal(sk, X25_CALL_ACCEPTED);
x25->state = X25_STATE_3;
release_sock(sk);
rc = 0;
break; break;
} /* must call accptapprv above */
if (test_bit(X25_ACCPT_APPRV_FLAG, &x25->flags))
default:
rc = -ENOIOCTLCMD;
break; break;
x25_write_internal(sk, X25_CALL_ACCEPTED);
x25->state = X25_STATE_3;
release_sock(sk);
rc = 0;
break;
}
default:
rc = -ENOIOCTLCMD;
break;
} }
return rc; return rc;
......
...@@ -146,21 +146,21 @@ void x25_establish_link(struct x25_neigh *nb) ...@@ -146,21 +146,21 @@ void x25_establish_link(struct x25_neigh *nb)
unsigned char *ptr; unsigned char *ptr;
switch (nb->dev->type) { switch (nb->dev->type) {
case ARPHRD_X25: case ARPHRD_X25:
if ((skb = alloc_skb(1, GFP_ATOMIC)) == NULL) { if ((skb = alloc_skb(1, GFP_ATOMIC)) == NULL) {
printk(KERN_ERR "x25_dev: out of memory\n"); printk(KERN_ERR "x25_dev: out of memory\n");
return; return;
} }
ptr = skb_put(skb, 1); ptr = skb_put(skb, 1);
*ptr = X25_IFACE_CONNECT; *ptr = X25_IFACE_CONNECT;
break; break;
#if defined(CONFIG_LLC) || defined(CONFIG_LLC_MODULE) #if defined(CONFIG_LLC) || defined(CONFIG_LLC_MODULE)
case ARPHRD_ETHER: case ARPHRD_ETHER:
return; return;
#endif #endif
default: default:
return; return;
} }
skb->protocol = htons(ETH_P_X25); skb->protocol = htons(ETH_P_X25);
...@@ -202,19 +202,19 @@ void x25_send_frame(struct sk_buff *skb, struct x25_neigh *nb) ...@@ -202,19 +202,19 @@ void x25_send_frame(struct sk_buff *skb, struct x25_neigh *nb)
skb_reset_network_header(skb); skb_reset_network_header(skb);
switch (nb->dev->type) { switch (nb->dev->type) {
case ARPHRD_X25: case ARPHRD_X25:
dptr = skb_push(skb, 1); dptr = skb_push(skb, 1);
*dptr = X25_IFACE_DATA; *dptr = X25_IFACE_DATA;
break; break;
#if defined(CONFIG_LLC) || defined(CONFIG_LLC_MODULE) #if defined(CONFIG_LLC) || defined(CONFIG_LLC_MODULE)
case ARPHRD_ETHER: case ARPHRD_ETHER:
kfree_skb(skb); kfree_skb(skb);
return; return;
#endif #endif
default: default:
kfree_skb(skb); kfree_skb(skb);
return; return;
} }
skb->protocol = htons(ETH_P_X25); skb->protocol = htons(ETH_P_X25);
......
...@@ -94,55 +94,55 @@ static int x25_state1_machine(struct sock *sk, struct sk_buff *skb, int frametyp ...@@ -94,55 +94,55 @@ static int x25_state1_machine(struct sock *sk, struct sk_buff *skb, int frametyp
struct x25_sock *x25 = x25_sk(sk); struct x25_sock *x25 = x25_sk(sk);
switch (frametype) { switch (frametype) {
case X25_CALL_ACCEPTED: { case X25_CALL_ACCEPTED: {
x25_stop_timer(sk); x25_stop_timer(sk);
x25->condition = 0x00; x25->condition = 0x00;
x25->vs = 0; x25->vs = 0;
x25->va = 0; x25->va = 0;
x25->vr = 0; x25->vr = 0;
x25->vl = 0; x25->vl = 0;
x25->state = X25_STATE_3; x25->state = X25_STATE_3;
sk->sk_state = TCP_ESTABLISHED; sk->sk_state = TCP_ESTABLISHED;
/* /*
* Parse the data in the frame. * Parse the data in the frame.
*/ */
skb_pull(skb, X25_STD_MIN_LEN); skb_pull(skb, X25_STD_MIN_LEN);
len = x25_parse_address_block(skb, &source_addr, len = x25_parse_address_block(skb, &source_addr,
&dest_addr); &dest_addr);
if (len > 0) if (len > 0)
skb_pull(skb, len); skb_pull(skb, len);
else if (len < 0) else if (len < 0)
goto out_clear; goto out_clear;
len = x25_parse_facilities(skb, &x25->facilities, len = x25_parse_facilities(skb, &x25->facilities,
&x25->dte_facilities, &x25->dte_facilities,
&x25->vc_facil_mask); &x25->vc_facil_mask);
if (len > 0) if (len > 0)
skb_pull(skb, len); skb_pull(skb, len);
else if (len < 0) else if (len < 0)
goto out_clear; goto out_clear;
/* /*
* Copy any Call User Data. * Copy any Call User Data.
*/ */
if (skb->len > 0) { if (skb->len > 0) {
skb_copy_from_linear_data(skb, skb_copy_from_linear_data(skb,
x25->calluserdata.cuddata, x25->calluserdata.cuddata,
skb->len); skb->len);
x25->calluserdata.cudlength = skb->len; x25->calluserdata.cudlength = skb->len;
}
if (!sock_flag(sk, SOCK_DEAD))
sk->sk_state_change(sk);
break;
} }
case X25_CLEAR_REQUEST: if (!sock_flag(sk, SOCK_DEAD))
x25_write_internal(sk, X25_CLEAR_CONFIRMATION); sk->sk_state_change(sk);
x25_disconnect(sk, ECONNREFUSED, skb->data[3], skb->data[4]); break;
break; }
case X25_CLEAR_REQUEST:
x25_write_internal(sk, X25_CLEAR_CONFIRMATION);
x25_disconnect(sk, ECONNREFUSED, skb->data[3], skb->data[4]);
break;
default: default:
break; break;
} }
return 0; return 0;
...@@ -354,18 +354,18 @@ int x25_process_rx_frame(struct sock *sk, struct sk_buff *skb) ...@@ -354,18 +354,18 @@ int x25_process_rx_frame(struct sock *sk, struct sk_buff *skb)
frametype = x25_decode(sk, skb, &ns, &nr, &q, &d, &m); frametype = x25_decode(sk, skb, &ns, &nr, &q, &d, &m);
switch (x25->state) { switch (x25->state) {
case X25_STATE_1: case X25_STATE_1:
queued = x25_state1_machine(sk, skb, frametype); queued = x25_state1_machine(sk, skb, frametype);
break; break;
case X25_STATE_2: case X25_STATE_2:
queued = x25_state2_machine(sk, skb, frametype); queued = x25_state2_machine(sk, skb, frametype);
break; break;
case X25_STATE_3: case X25_STATE_3:
queued = x25_state3_machine(sk, skb, frametype, ns, nr, q, d, m); queued = x25_state3_machine(sk, skb, frametype, ns, nr, q, d, m);
break; break;
case X25_STATE_4: case X25_STATE_4:
queued = x25_state4_machine(sk, skb, frametype); queued = x25_state4_machine(sk, skb, frametype);
break; break;
} }
x25_kick(sk); x25_kick(sk);
......
...@@ -76,30 +76,29 @@ void x25_link_control(struct sk_buff *skb, struct x25_neigh *nb, ...@@ -76,30 +76,29 @@ void x25_link_control(struct sk_buff *skb, struct x25_neigh *nb,
int confirm; int confirm;
switch (frametype) { switch (frametype) {
case X25_RESTART_REQUEST: case X25_RESTART_REQUEST:
confirm = !x25_t20timer_pending(nb); confirm = !x25_t20timer_pending(nb);
x25_stop_t20timer(nb); x25_stop_t20timer(nb);
nb->state = X25_LINK_STATE_3; nb->state = X25_LINK_STATE_3;
if (confirm) if (confirm)
x25_transmit_restart_confirmation(nb); x25_transmit_restart_confirmation(nb);
break; break;
case X25_RESTART_CONFIRMATION: case X25_RESTART_CONFIRMATION:
x25_stop_t20timer(nb); x25_stop_t20timer(nb);
nb->state = X25_LINK_STATE_3; nb->state = X25_LINK_STATE_3;
break; break;
case X25_DIAGNOSTIC: case X25_DIAGNOSTIC:
printk(KERN_WARNING "x25: diagnostic #%d - " printk(KERN_WARNING "x25: diagnostic #%d - %02X %02X %02X\n",
"%02X %02X %02X\n", skb->data[3], skb->data[4],
skb->data[3], skb->data[4], skb->data[5], skb->data[6]);
skb->data[5], skb->data[6]); break;
break;
default:
default: printk(KERN_WARNING "x25: received unknown %02X with LCI 000\n",
printk(KERN_WARNING "x25: received unknown %02X " frametype);
"with LCI 000\n", frametype); break;
break;
} }
if (nb->state == X25_LINK_STATE_3) if (nb->state == X25_LINK_STATE_3)
...@@ -193,18 +192,18 @@ void x25_transmit_clear_request(struct x25_neigh *nb, unsigned int lci, ...@@ -193,18 +192,18 @@ void x25_transmit_clear_request(struct x25_neigh *nb, unsigned int lci,
void x25_transmit_link(struct sk_buff *skb, struct x25_neigh *nb) void x25_transmit_link(struct sk_buff *skb, struct x25_neigh *nb)
{ {
switch (nb->state) { switch (nb->state) {
case X25_LINK_STATE_0: case X25_LINK_STATE_0:
skb_queue_tail(&nb->queue, skb); skb_queue_tail(&nb->queue, skb);
nb->state = X25_LINK_STATE_1; nb->state = X25_LINK_STATE_1;
x25_establish_link(nb); x25_establish_link(nb);
break; break;
case X25_LINK_STATE_1: case X25_LINK_STATE_1:
case X25_LINK_STATE_2: case X25_LINK_STATE_2:
skb_queue_tail(&nb->queue, skb); skb_queue_tail(&nb->queue, skb);
break; break;
case X25_LINK_STATE_3: case X25_LINK_STATE_3:
x25_send_frame(skb, nb); x25_send_frame(skb, nb);
break; break;
} }
} }
...@@ -214,14 +213,14 @@ void x25_transmit_link(struct sk_buff *skb, struct x25_neigh *nb) ...@@ -214,14 +213,14 @@ void x25_transmit_link(struct sk_buff *skb, struct x25_neigh *nb)
void x25_link_established(struct x25_neigh *nb) void x25_link_established(struct x25_neigh *nb)
{ {
switch (nb->state) { switch (nb->state) {
case X25_LINK_STATE_0: case X25_LINK_STATE_0:
nb->state = X25_LINK_STATE_2; nb->state = X25_LINK_STATE_2;
break; break;
case X25_LINK_STATE_1: case X25_LINK_STATE_1:
x25_transmit_restart_request(nb); x25_transmit_restart_request(nb);
nb->state = X25_LINK_STATE_2; nb->state = X25_LINK_STATE_2;
x25_start_t20timer(nb); x25_start_t20timer(nb);
break; break;
} }
} }
......
...@@ -126,32 +126,30 @@ void x25_write_internal(struct sock *sk, int frametype) ...@@ -126,32 +126,30 @@ void x25_write_internal(struct sock *sk, int frametype)
* Adjust frame size. * Adjust frame size.
*/ */
switch (frametype) { switch (frametype) {
case X25_CALL_REQUEST: case X25_CALL_REQUEST:
len += 1 + X25_ADDR_LEN + X25_MAX_FAC_LEN + len += 1 + X25_ADDR_LEN + X25_MAX_FAC_LEN + X25_MAX_CUD_LEN;
X25_MAX_CUD_LEN; break;
break; case X25_CALL_ACCEPTED: /* fast sel with no restr on resp */
case X25_CALL_ACCEPTED: /* fast sel with no restr on resp */ if (x25->facilities.reverse & 0x80) {
if(x25->facilities.reverse & 0x80) { len += 1 + X25_MAX_FAC_LEN + X25_MAX_CUD_LEN;
len += 1 + X25_MAX_FAC_LEN + X25_MAX_CUD_LEN; } else {
} else { len += 1 + X25_MAX_FAC_LEN;
len += 1 + X25_MAX_FAC_LEN; }
} break;
break; case X25_CLEAR_REQUEST:
case X25_CLEAR_REQUEST: case X25_RESET_REQUEST:
case X25_RESET_REQUEST: len += 2;
len += 2; break;
break; case X25_RR:
case X25_RR: case X25_RNR:
case X25_RNR: case X25_REJ:
case X25_REJ: case X25_CLEAR_CONFIRMATION:
case X25_CLEAR_CONFIRMATION: case X25_INTERRUPT_CONFIRMATION:
case X25_INTERRUPT_CONFIRMATION: case X25_RESET_CONFIRMATION:
case X25_RESET_CONFIRMATION: break;
break; default:
default: printk(KERN_ERR "X.25: invalid frame type %02X\n", frametype);
printk(KERN_ERR "X.25: invalid frame type %02X\n", return;
frametype);
return;
} }
if ((skb = alloc_skb(len, GFP_ATOMIC)) == NULL) if ((skb = alloc_skb(len, GFP_ATOMIC)) == NULL)
...@@ -276,20 +274,20 @@ int x25_decode(struct sock *sk, struct sk_buff *skb, int *ns, int *nr, int *q, ...@@ -276,20 +274,20 @@ int x25_decode(struct sock *sk, struct sk_buff *skb, int *ns, int *nr, int *q,
*ns = *nr = *q = *d = *m = 0; *ns = *nr = *q = *d = *m = 0;
switch (frame[2]) { switch (frame[2]) {
case X25_CALL_REQUEST: case X25_CALL_REQUEST:
case X25_CALL_ACCEPTED: case X25_CALL_ACCEPTED:
case X25_CLEAR_REQUEST: case X25_CLEAR_REQUEST:
case X25_CLEAR_CONFIRMATION: case X25_CLEAR_CONFIRMATION:
case X25_INTERRUPT: case X25_INTERRUPT:
case X25_INTERRUPT_CONFIRMATION: case X25_INTERRUPT_CONFIRMATION:
case X25_RESET_REQUEST: case X25_RESET_REQUEST:
case X25_RESET_CONFIRMATION: case X25_RESET_CONFIRMATION:
case X25_RESTART_REQUEST: case X25_RESTART_REQUEST:
case X25_RESTART_CONFIRMATION: case X25_RESTART_CONFIRMATION:
case X25_REGISTRATION_REQUEST: case X25_REGISTRATION_REQUEST:
case X25_REGISTRATION_CONFIRMATION: case X25_REGISTRATION_CONFIRMATION:
case X25_DIAGNOSTIC: case X25_DIAGNOSTIC:
return frame[2]; return frame[2];
} }
if (x25->neighbour->extended) { if (x25->neighbour->extended) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment