]> git.puffer.fish Git - matthieu/frr.git/commitdiff
isis_pdu.c: Update l1_desig_is only if neighbor really is DIS.
authorhasso <hasso>
Tue, 14 Sep 2004 11:05:13 +0000 (11:05 +0000)
committerhasso <hasso>
Tue, 14 Sep 2004 11:05:13 +0000 (11:05 +0000)
isisd/ChangeLog
isisd/isis_pdu.c

index 33608b136fa5b146866d39936601f6ae874e4ca2..3fa9f98a49532167beadf12bbaea3aa84de8e6c5 100644 (file)
@@ -1,3 +1,7 @@
+2004-09-14 LIU Xin <lx at ns.6test.edu.cn>
+
+       * isis_pdu.c: Update l1_desig_is only if neighbor really is DIS.
+
 2004-09-10 LIU Xin <lx at ns.6test.edu.cn>
        
        * isis_pdu.c: Goto out only if no adjacency exist.
index c7142eeacdb7ddaffdbebac1a58454b1e184aef9..1ecdab48cca3c8adae83d752727a03842e7cbb2b 100644 (file)
@@ -839,16 +839,18 @@ process_lan_hello (int level, struct isis_circuit *circuit, u_char * ssnpa)
       if (memcmp (circuit->u.bc.l1_desig_is, hdr.lan_id, ISIS_SYS_ID_LEN + 1))
        {
          thread_add_event (master, isis_event_dis_status_change, circuit, 0);
-         memcpy (&circuit->u.bc.l1_desig_is, hdr.lan_id,
-                 ISIS_SYS_ID_LEN + 1);
+         if (adj->dis_record[level-1].dis == ISIS_IS_DIS)
+           memcpy (&circuit->u.bc.l1_desig_is, hdr.lan_id,
+                   ISIS_SYS_ID_LEN + 1);
        }
       break;
     case 2:
       if (memcmp (circuit->u.bc.l2_desig_is, hdr.lan_id, ISIS_SYS_ID_LEN + 1))
        {
          thread_add_event (master, isis_event_dis_status_change, circuit, 0);
-         memcpy (&circuit->u.bc.l2_desig_is, hdr.lan_id,
-                 ISIS_SYS_ID_LEN + 1);
+         if (adj->dis_record[level-1].dis == ISIS_IS_DIS)
+           memcpy (&circuit->u.bc.l2_desig_is, hdr.lan_id,
+                   ISIS_SYS_ID_LEN + 1);
        }
       break;
     }