mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2024-11-17 08:38:42 +00:00
Unix: Expand accepted ranges of iproute2 constants
We support 32bit table and realm/flow ids, we should also accept them as constants. Thanks to Patrick Hemmer for the bugreport.
This commit is contained in:
parent
5caf32efa2
commit
a2277975d7
@ -125,11 +125,11 @@ add_num_const(char *name, int val, const char *file, const uint line)
|
||||
/* the code of read_iproute_table() is based on
|
||||
rtnl_tab_initialize() from iproute2 package */
|
||||
static void
|
||||
read_iproute_table(char *file, char *prefix, int max)
|
||||
read_iproute_table(char *file, char *prefix, uint max)
|
||||
{
|
||||
char buf[512], namebuf[512];
|
||||
char *name;
|
||||
int val;
|
||||
uint val;
|
||||
FILE *fp;
|
||||
|
||||
strcpy(namebuf, prefix);
|
||||
@ -151,11 +151,11 @@ read_iproute_table(char *file, char *prefix, int max)
|
||||
|
||||
if (sscanf(p, "0x%x %s\n", &val, name) != 2 &&
|
||||
sscanf(p, "0x%x %s #", &val, name) != 2 &&
|
||||
sscanf(p, "%d %s\n", &val, name) != 2 &&
|
||||
sscanf(p, "%d %s #", &val, name) != 2)
|
||||
sscanf(p, "%u %s\n", &val, name) != 2 &&
|
||||
sscanf(p, "%u %s #", &val, name) != 2)
|
||||
continue;
|
||||
|
||||
if (val < 0 || val > max)
|
||||
if (val > max)
|
||||
continue;
|
||||
|
||||
for(p = name; *p; p++)
|
||||
@ -191,10 +191,10 @@ sysdep_preconfig(struct config *c)
|
||||
c->watchdog_warning = UNIX_DEFAULT_WATCHDOG_WARNING;
|
||||
|
||||
#ifdef PATH_IPROUTE_DIR
|
||||
read_iproute_table(PATH_IPROUTE_DIR "/rt_protos", "ipp_", 256);
|
||||
read_iproute_table(PATH_IPROUTE_DIR "/rt_realms", "ipr_", 256);
|
||||
read_iproute_table(PATH_IPROUTE_DIR "/rt_scopes", "ips_", 256);
|
||||
read_iproute_table(PATH_IPROUTE_DIR "/rt_tables", "ipt_", 256);
|
||||
read_iproute_table(PATH_IPROUTE_DIR "/rt_protos", "ipp_", 255);
|
||||
read_iproute_table(PATH_IPROUTE_DIR "/rt_realms", "ipr_", 0xffffffff);
|
||||
read_iproute_table(PATH_IPROUTE_DIR "/rt_scopes", "ips_", 255);
|
||||
read_iproute_table(PATH_IPROUTE_DIR "/rt_tables", "ipt_", 0xffffffff);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user