Diff for /embedaddon/quagga/bgpd/bgp_open.c between versions 1.1.1.3 and 1.1.1.4

version 1.1.1.3, 2012/10/09 09:22:28 version 1.1.1.4, 2013/07/21 23:54:37
Line 187  static const struct message orf_type_str[] = Line 187  static const struct message orf_type_str[] =
   { ORF_TYPE_PREFIX,            "Prefixlist"            },    { ORF_TYPE_PREFIX,            "Prefixlist"            },
   { ORF_TYPE_PREFIX_OLD,        "Prefixlist (old)"      },    { ORF_TYPE_PREFIX_OLD,        "Prefixlist (old)"      },
 };  };
static const int orf_type_str_maxstatic const int orf_type_str_max = array_size(orf_type_str);
        = sizeof(orf_type_str)/sizeof(orf_type_str[0]); 
   
 static const struct message orf_mode_str[] =  static const struct message orf_mode_str[] =
 {  {
Line 196  static const struct message orf_mode_str[] = Line 195  static const struct message orf_mode_str[] =
   { ORF_MODE_SEND,      "Send"          },    { ORF_MODE_SEND,      "Send"          },
   { ORF_MODE_BOTH,      "Both"          },    { ORF_MODE_BOTH,      "Both"          },
 };  };
static const int orf_mode_str_maxstatic const int orf_mode_str_max = array_size(orf_mode_str);
         = sizeof(orf_mode_str)/sizeof(orf_mode_str[0]); 
   
 static int  static int
 bgp_capability_orf_entry (struct peer *peer, struct capability_header *hdr)  bgp_capability_orf_entry (struct peer *peer, struct capability_header *hdr)
Line 336  bgp_capability_orf_entry (struct peer *peer, struct ca Line 334  bgp_capability_orf_entry (struct peer *peer, struct ca
 }  }
   
 static int  static int
 bgp_capability_orf (struct peer *peer, struct capability_header *hdr)  
 {  
   struct stream *s = BGP_INPUT (peer);  
   size_t end = stream_get_getp (s) + hdr->length;  
     
   assert (stream_get_getp(s) + sizeof(struct capability_orf_entry) <= end);  
     
   /* We must have at least one ORF entry, as the caller has already done  
    * minimum length validation for the capability code - for ORF there must  
    * at least one ORF entry (header and unknown number of pairs of bytes).  
    */  
   do  
     {  
       if (bgp_capability_orf_entry (peer, hdr) == -1)  
         return -1;  
     }   
   while (stream_get_getp(s) + sizeof(struct capability_orf_entry) < end);  
     
   return 0;  
 }  
   
 static int  
 bgp_capability_restart (struct peer *peer, struct capability_header *caphdr)  bgp_capability_restart (struct peer *peer, struct capability_header *caphdr)
 {  {
   struct stream *s = BGP_INPUT (peer);    struct stream *s = BGP_INPUT (peer);
Line 449  static const struct message capcode_str[] = Line 425  static const struct message capcode_str[] =
   { CAPABILITY_CODE_REFRESH_OLD,        "Route Refresh (Old)"           },    { CAPABILITY_CODE_REFRESH_OLD,        "Route Refresh (Old)"           },
   { CAPABILITY_CODE_ORF_OLD,            "ORF (Old)"                     },    { CAPABILITY_CODE_ORF_OLD,            "ORF (Old)"                     },
 };  };
static const int capcode_str_max = sizeof(capcode_str)/sizeof(capcode_str[0]);static const int capcode_str_max = array_size(capcode_str);
   
 /* Minimum sizes for length field of each cap (so not inc. the header) */  /* Minimum sizes for length field of each cap (so not inc. the header) */
 static const size_t cap_minsizes[] =   static const size_t cap_minsizes[] = 
Line 575  bgp_capability_parse (struct peer *peer, size_t length Line 551  bgp_capability_parse (struct peer *peer, size_t length
             break;              break;
           case CAPABILITY_CODE_ORF:            case CAPABILITY_CODE_ORF:
           case CAPABILITY_CODE_ORF_OLD:            case CAPABILITY_CODE_ORF_OLD:
            if (bgp_capability_orf (peer, &caphdr))            if (bgp_capability_orf_entry (peer, &caphdr))
               return -1;                return -1;
             break;              break;
           case CAPABILITY_CODE_RESTART:            case CAPABILITY_CODE_RESTART:

Removed from v.1.1.1.3  
changed lines
  Added in v.1.1.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>