parent
ad9c659134
commit
dd3691e69a
|
@ -28,6 +28,10 @@
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
* $Log$
|
* $Log$
|
||||||
|
* Revision 1.2 1998/03/08 13:14:23 detabc
|
||||||
|
* abc-extension support for kernels > 2.1.x
|
||||||
|
* first try (sorry experimental)
|
||||||
|
*
|
||||||
* Revision 1.1.2.2 1998/03/08 11:35:06 detabc
|
* Revision 1.1.2.2 1998/03/08 11:35:06 detabc
|
||||||
* Add cvs header-controls an remove unused funktions
|
* Add cvs header-controls an remove unused funktions
|
||||||
*
|
*
|
||||||
|
@ -508,7 +512,6 @@ int abc_first_senden(struct device *ndev,isdn_net_local *lp)
|
||||||
skb_reserve(skb,dev->abc_max_hdrlen);
|
skb_reserve(skb,dev->abc_max_hdrlen);
|
||||||
skb->pkt_type = PACKET_HOST;
|
skb->pkt_type = PACKET_HOST;
|
||||||
p = skb_put(skb,len);
|
p = skb_put(skb,len);
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
|
|
||||||
*(p++) = ABCR_FIRST_REQ & 0xFF;
|
*(p++) = ABCR_FIRST_REQ & 0xFF;
|
||||||
*(p++) = (ABCR_FIRST_REQ >> 8) & 0xFF;
|
*(p++) = (ABCR_FIRST_REQ >> 8) & 0xFF;
|
||||||
|
@ -529,7 +532,7 @@ int abc_first_senden(struct device *ndev,isdn_net_local *lp)
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
retw = 1;
|
retw = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -857,7 +860,6 @@ struct sk_buff *abc_get_keep_skb()
|
||||||
skb_reserve(skb,dev->abc_max_hdrlen);
|
skb_reserve(skb,dev->abc_max_hdrlen);
|
||||||
buf = skb_put(skb,2);
|
buf = skb_put(skb,2);
|
||||||
skb->pkt_type = PACKET_HOST;
|
skb->pkt_type = PACKET_HOST;
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
buf[0] = ABCR_KEEPALIVE & 0xFF;
|
buf[0] = ABCR_KEEPALIVE & 0xFF;
|
||||||
buf[1] = (ABCR_KEEPALIVE >> 8) & 0xFF;
|
buf[1] = (ABCR_KEEPALIVE >> 8) & 0xFF;
|
||||||
|
|
||||||
|
@ -962,7 +964,6 @@ struct sk_buff *abc_snd_data(struct device *ndev,struct sk_buff *skb)
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
skb_reserve(ns,dev->abc_max_hdrlen);
|
skb_reserve(ns,dev->abc_max_hdrlen);
|
||||||
SET_SKB_FREE(ns);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( skb->len > 10 &&
|
if( skb->len > 10 &&
|
||||||
|
@ -1016,10 +1017,9 @@ int abc_test_rcvq(struct device *ndev)
|
||||||
|
|
||||||
if(ndev == skb->dev) {
|
if(ndev == skb->dev) {
|
||||||
|
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
skb->dev = NULL;
|
skb->dev = NULL;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
|
|
||||||
} else abc_test_receive(NULL,skb);
|
} else abc_test_receive(NULL,skb);
|
||||||
}
|
}
|
||||||
|
@ -1042,10 +1042,9 @@ void abc_free_receive(void)
|
||||||
|
|
||||||
for(a++;a > 0 && (skb = skb_dequeue(&abc_receive_q)) != NULL;a--) {
|
for(a++;a > 0 && (skb = skb_dequeue(&abc_receive_q)) != NULL;a--) {
|
||||||
|
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
skb->dev = NULL;
|
skb->dev = NULL;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1077,7 +1076,6 @@ struct sk_buff *abc_get_uncomp(struct sk_buff *skb)
|
||||||
|
|
||||||
skb_reserve(nskb,dev->abc_max_hdrlen);
|
skb_reserve(nskb,dev->abc_max_hdrlen);
|
||||||
nskb->pkt_type = PACKET_HOST;
|
nskb->pkt_type = PACKET_HOST;
|
||||||
SET_SKB_FREE(nskb);
|
|
||||||
|
|
||||||
memcpy(i=(void *)skb_put(nskb,len),(void *)p,len);
|
memcpy(i=(void *)skb_put(nskb,len),(void *)p,len);
|
||||||
nskb->ip_hdr = (struct iphdr *)i;
|
nskb->ip_hdr = (struct iphdr *)i;
|
||||||
|
@ -1096,13 +1094,12 @@ struct sk_buff *abc_get_uncomp(struct sk_buff *skb)
|
||||||
|
|
||||||
skb_reserve(nskb,dev->abc_max_hdrlen);
|
skb_reserve(nskb,dev->abc_max_hdrlen);
|
||||||
nskb->pkt_type = PACKET_HOST;
|
nskb->pkt_type = PACKET_HOST;
|
||||||
SET_SKB_FREE(nskb);
|
|
||||||
|
|
||||||
r = abcgmbh_depack(p,len,i = skb_put(nskb,nlen),nlen);
|
r = abcgmbh_depack(p,len,i = skb_put(nskb,nlen),nlen);
|
||||||
|
|
||||||
if(r < nlen) {
|
if(r < nlen) {
|
||||||
|
|
||||||
kfree_skb(nskb);
|
dev_kfree_skb(nskb);
|
||||||
nskb = NULL;
|
nskb = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1147,9 +1144,8 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
"%s: received eot\n", lp->name);
|
"%s: received eot\n", lp->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1167,9 +1163,8 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
if(lp != NULL)
|
if(lp != NULL)
|
||||||
lp->abc_life_to = ABC_DST_LIFETIME;
|
lp->abc_life_to = ABC_DST_LIFETIME;
|
||||||
|
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1187,9 +1182,8 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
len,
|
len,
|
||||||
sizeof(struct ABCR_FIRST_DATA));
|
sizeof(struct ABCR_FIRST_DATA));
|
||||||
|
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1210,9 +1204,8 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1231,9 +1224,8 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
|
|
||||||
/******************************
|
/******************************
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1260,10 +1252,9 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
len,nlen,!!(k & ABCR_ISDATA),k);
|
len,nlen,!!(k & ABCR_ISDATA),k);
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
skb->dev = NULL;
|
skb->dev = NULL;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1301,8 +1292,7 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
|
|
||||||
skb_queue_tail(&abc_receive_q,skb);
|
skb_queue_tail(&abc_receive_q,skb);
|
||||||
SET_SKB_FREE(nskb);
|
dev_kfree_skb(nskb);
|
||||||
kfree_skb(nskb);
|
|
||||||
|
|
||||||
if(is_tcp_keep)
|
if(is_tcp_keep)
|
||||||
return(NULL);
|
return(NULL);
|
||||||
|
@ -1317,10 +1307,8 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
"abc_test_receivce depack-error\n");
|
"abc_test_receivce depack-error\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_SKB_FREE(nskb);
|
dev_kfree_skb(nskb);
|
||||||
kfree_skb(nskb);
|
dev_kfree_skb(skb);
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
kfree_skb(skb);
|
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1336,11 +1324,10 @@ struct sk_buff *abc_test_receive(struct device *ndev, struct sk_buff *skb)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SET_SKB_FREE(skb);
|
|
||||||
skb->dev = NULL;
|
skb->dev = NULL;
|
||||||
skb->protocol = 0;
|
skb->protocol = 0;
|
||||||
skb->dev = NULL;
|
skb->dev = NULL;
|
||||||
kfree_skb(skb);
|
dev_kfree_skb(skb);
|
||||||
|
|
||||||
if((skb = nskb) != NULL) {
|
if((skb = nskb) != NULL) {
|
||||||
|
|
||||||
|
@ -2680,8 +2667,20 @@ udp_ausgang:;
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
mynet = ndev->pa_addr & (maske = ndev->pa_mask);
|
{
|
||||||
|
struct in_device *in_dev = ndev->ip_ptr ;
|
||||||
|
struct in_ifaddr *ifa = in_dev->ifa_list;
|
||||||
|
|
||||||
|
if(ifa != NULL) {
|
||||||
|
mynet = ifa->ifa_local & (maske = ifa->ifa_mask);
|
||||||
|
} else {
|
||||||
|
|
||||||
|
maske = ~maske;
|
||||||
|
}
|
||||||
|
|
||||||
dnet = ip->daddr & maske;
|
dnet = ip->daddr & maske;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(dnet != mynet)
|
if(dnet != mynet)
|
||||||
return(0);
|
return(0);
|
||||||
|
|
|
@ -20,6 +20,10 @@
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*
|
*
|
||||||
* $Log$
|
* $Log$
|
||||||
|
* Revision 1.50 1998/03/08 13:14:28 detabc
|
||||||
|
* abc-extension support for kernels > 2.1.x
|
||||||
|
* first try (sorry experimental)
|
||||||
|
*
|
||||||
* Revision 1.49 1998/03/08 00:01:59 fritz
|
* Revision 1.49 1998/03/08 00:01:59 fritz
|
||||||
* Bugfix: Lowlevel module usage and channel usage were not
|
* Bugfix: Lowlevel module usage and channel usage were not
|
||||||
* reset on NO DCHANNEL.
|
* reset on NO DCHANNEL.
|
||||||
|
@ -1473,9 +1477,6 @@ isdn_tty_set_modem_info(modem_info * info, uint cmd, uint * value)
|
||||||
char *ep = NULL;
|
char *ep = NULL;
|
||||||
char *s = info->last_num;
|
char *s = info->last_num;
|
||||||
|
|
||||||
if((error = verify_area(VERIFY_WRITE,(void *) arg,need)) != 0)
|
|
||||||
return error;
|
|
||||||
|
|
||||||
ep = p = n_buf;
|
ep = p = n_buf;
|
||||||
ep += 1 + ISDN_MSNLEN;
|
ep += 1 + ISDN_MSNLEN;
|
||||||
|
|
||||||
|
@ -1488,7 +1489,9 @@ isdn_tty_set_modem_info(modem_info * info, uint cmd, uint * value)
|
||||||
*(p++) = *(s++);
|
*(p++) = *(s++);
|
||||||
|
|
||||||
*p = 0;
|
*p = 0;
|
||||||
memcpy_tofs((void *)arg,n_buf,need);
|
|
||||||
|
if(copy_to_user((void *)arg,n_buf,need))
|
||||||
|
return -EFAULT;
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -1934,19 +1937,7 @@ isdn_tty_reset_profile(atemu * m)
|
||||||
m->profile[13] = 4;
|
m->profile[13] = 4;
|
||||||
m->profile[14] = ISDN_PROTO_L2_X75I;
|
m->profile[14] = ISDN_PROTO_L2_X75I;
|
||||||
m->profile[15] = ISDN_PROTO_L3_TRANS;
|
m->profile[15] = ISDN_PROTO_L3_TRANS;
|
||||||
#ifdef CONFIG_ISDN_WITH_ABC
|
|
||||||
m->profile[16] = ISDN_SERIAL_XMIT_SIZE / 16;
|
m->profile[16] = ISDN_SERIAL_XMIT_SIZE / 16;
|
||||||
|
|
||||||
if(m->profile[16] > 64) {
|
|
||||||
/*
|
|
||||||
** this is better for WFW95 with Z-MODEM
|
|
||||||
** my default is 1024 bytes/block
|
|
||||||
*/
|
|
||||||
m->profile[16] = 64;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
m->profile[16] = ISDN_SERIAL_XMIT_SIZE / 16;
|
|
||||||
#endif
|
|
||||||
m->profile[17] = ISDN_MODEM_WINSIZE;
|
m->profile[17] = ISDN_MODEM_WINSIZE;
|
||||||
m->profile[18] = 4;
|
m->profile[18] = 4;
|
||||||
m->profile[19] = 0;
|
m->profile[19] = 0;
|
||||||
|
|
Loading…
Reference in New Issue