]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Better checking of configuration.
authorOndrej Filip <feela@network.cz>
Wed, 9 Jun 2004 12:39:49 +0000 (12:39 +0000)
committerOndrej Filip <feela@network.cz>
Wed, 9 Jun 2004 12:39:49 +0000 (12:39 +0000)
proto/ospf/config.Y
proto/ospf/ospf.h

index f92109e4d14171086e61dfc6990690e4c255b3f4..3a9904fb5cad05859cdba63183210ab5e85c186b 100644 (file)
@@ -81,14 +81,14 @@ ospf_area_item:
  ;
 
 ospf_iface_item:
-   COST expr { OSPF_PATT->cost = $2 ; if($2<=0) cf_error("Cost must be greater than zero"); }
- | HELLO expr { OSPF_PATT->helloint = $2 ; if($2<=0) cf_error("Hello int must be greater than zero"); }
- | POLL expr { OSPF_PATT->pollint = $2 ; if($2<=0) cf_error("Poll int must be greater than zero"); }
- | RETRANSMIT expr { OSPF_PATT->rxmtint = $2 ; if($2<=0) cf_error("Retransmit int must be greater than zero"); }
- | TRANSMIT DELAY expr { OSPF_PATT->inftransdelay = $3 ; if($3<=0) cf_error("Transmit delay must be greater than zero"); }
- | PRIORITY expr { OSPF_PATT->priority = $2 ; }
+   COST expr { OSPF_PATT->cost = $2 ; if (($2<=0) || ($2>65535)) cf_error("Cost must be in range 1-65535"); }
+ | HELLO expr { OSPF_PATT->helloint = $2 ; if (($2<=0) || ($2>65535)) cf_error("Hello interval must be in range 1-65535"); }
+ | POLL expr { OSPF_PATT->pollint = $2 ; if ($2<=0) cf_error("Poll int must be greater than zero"); }
+ | RETRANSMIT expr { OSPF_PATT->rxmtint = $2 ; if ($2<=0) cf_error("Retransmit int must be greater than zero"); }
+ | TRANSMIT DELAY expr { OSPF_PATT->inftransdelay = $3 ; if (($3<=0) || ($3>65535)) cf_error("Transmit delay must be in range 1-65535"); }
+ | PRIORITY expr { OSPF_PATT->priority = $2 ; if (($2<0) || ($2>255)) cf_error("Priority must be in range 0-255")}
  | WAIT expr { OSPF_PATT->waitint = $2 ; }
- | DEAD COUNT expr { OSPF_PATT->deadc = $3 ; if($3<=1) cf_error("Dead count must be greater than one"); }
+ | DEAD COUNT expr { OSPF_PATT->deadc = $3 ; if ($3<=1) cf_error("Dead count must be greater than one"); }
  | TYPE BROADCAST { OSPF_PATT->type = OSPF_IT_BCAST ; }
  | TYPE NONBROADCAST { OSPF_PATT->type = OSPF_IT_NBMA ; }
  | TYPE POINTOPOINT { OSPF_PATT->type = OSPF_IT_PTP ; }
@@ -98,7 +98,6 @@ ospf_iface_item:
  | AUTHENTICATION NONE { OSPF_PATT->autype=AU_NONE ; }
  | AUTHENTICATION SIMPLE { OSPF_PATT->autype=AU_SIMPLE ; }
  | PASSWORD TEXT { memcpy(OSPF_PATT->password, $2, 8); }
- |
  ;
 
 pref_list:
index ea34ac8c4354832b69741fab3bd6f9499d9532cc..b554013365331f301051cc9a1084ed2bae343860 100644 (file)
@@ -104,14 +104,14 @@ struct ospf_iface
   sock *ip_sk;                 /* IP socket (for DD ...) */
   list neigh_list;             /* List of neigbours */
   u16 cost;                    /* Cost of iface */
-  u16 rxmtint;                 /* number of seconds between LSA retransmissions */
   u16 inftransdelay;           /* The estimated number of seconds it takes to
                                   transmit a Link State Update Packet over this
                                   interface.  LSAs contained in the update */
   u8 priority;                 /* A router priority for DR election */
   u16 helloint;                        /* number of seconds between hello sending */
-  u16 waitint;                 /* number of sec before changing state from wait */
-  u16 pollint;                 /* Poll interval */
+  u32 waitint;                 /* number of sec before changing state from wait */
+  u32 rxmtint;                 /* number of seconds between LSA retransmissions */
+  u32 pollint;                 /* Poll interval */
   u32 deadc;                   /* after "deadint" missing hellos is router dead */
   u16 autype;
   u8 aukey[8];
@@ -453,18 +453,18 @@ struct proto_ospf
 struct ospf_iface_patt
 {
   struct iface_patt i;
-  int cost;
-  int helloint;
-  int rxmtint;
-  int pollint;
-  int inftransdelay;
-  int priority;
-  int waitint;
-  int deadc;
-  int type;
-  int autype;
-  int strictnbma;
-  int stub;
+  u32 cost;
+  u32 helloint;
+  u32 rxmtint;
+  u32 pollint;
+  u32 inftransdelay;
+  u32 priority;
+  u32 waitint;
+  u32 deadc;
+  u32 type;
+  u32 autype;
+  u32 strictnbma;
+  u32 stub;
 /* must be in network byte order */
 #define AU_NONE htons(0)
 #define AU_SIMPLE htons(1)