patch-2.2.12 linux/drivers/isdn/hisax/tei.c
Next file: linux/drivers/isdn/hisax/telespci.c
Previous file: linux/drivers/isdn/hisax/sedlbauer.c
Back to the patch index
Back to the overall index
- Lines: 59
- Date:
Wed Aug 25 17:29:48 1999
- Orig file:
v2.2.11/linux/drivers/isdn/hisax/tei.c
- Orig date:
Mon Aug 9 16:05:56 1999
diff -u --recursive --new-file v2.2.11/linux/drivers/isdn/hisax/tei.c linux/drivers/isdn/hisax/tei.c
@@ -1,4 +1,4 @@
-/* $Id: tei.c,v 2.12 1999/07/01 08:12:11 keil Exp $
+/* $Id: tei.c,v 2.13 1999/07/21 14:46:28 keil Exp $
* Author Karsten Keil (keil@isdn4linux.de)
* based on the teles driver from Jan den Ouden
@@ -11,6 +11,9 @@
* Fritz Elfert
*
* $Log: tei.c,v $
+ * Revision 2.13 1999/07/21 14:46:28 keil
+ * changes from EICON certification
+ *
* Revision 2.12 1999/07/01 08:12:11 keil
* Common HiSax version for 2.0, 2.1, 2.2 and 2.3 kernel
*
@@ -75,7 +78,7 @@
#include "isdnl2.h"
#include <linux/random.h>
-const char *tei_revision = "$Revision: 2.12 $";
+const char *tei_revision = "$Revision: 2.13 $";
#define ID_REQUEST 1
#define ID_ASSIGNED 2
@@ -230,6 +233,25 @@
}
static void
+tei_id_test_dup(struct FsmInst *fi, int event, void *arg)
+{
+ struct PStack *ost, *st = fi->userdata;
+ struct sk_buff *skb = arg;
+ int tei, ri;
+
+ ri = ((unsigned int) skb->data[1] << 8) + skb->data[2];
+ tei = skb->data[4] >> 1;
+ if (st->ma.debug)
+ st->ma.tei_m.printdebug(&st->ma.tei_m,
+ "foreign identity assign ri %d tei %d", ri, tei);
+ if ((ost = findtei(st, tei))) { /* same tei is in use */
+ st->ma.tei_m.printdebug(&st->ma.tei_m,
+ "possible duplicate assignment tei %d", tei);
+ FsmEvent(&ost->ma.tei_m, EV_VERIFY, NULL);
+ }
+}
+
+static void
tei_id_denied(struct FsmInst *fi, int event, void *arg)
{
struct PStack *st = fi->userdata;
@@ -472,6 +494,7 @@
static struct FsmNode TeiFnList[] HISAX_INITDATA =
{
{ST_TEI_NOP, EV_IDREQ, tei_id_request},
+ {ST_TEI_NOP, EV_ASSIGN, tei_id_test_dup},
{ST_TEI_NOP, EV_VERIFY, tei_id_verify},
{ST_TEI_NOP, EV_REMOVE, tei_id_remove},
{ST_TEI_NOP, EV_CHKREQ, tei_id_chk_req},
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)