diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-04-01 16:36:38 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2007-04-01 16:36:38 -0700 |
commit | 8fdbec5224d9b215adbd4af76751bd6950479d4c (patch) | |
tree | b9dc5c778772ae21466e549e0a2ad9199c96ca33 | |
parent | 3d9a984069b7f8270713948aeccae96526006d7d (diff) | |
download | syslinux-8fdbec5224d9b215adbd4af76751bd6950479d4c.tar.gz |
ethersel: move RID range parsing into its own function.
-rw-r--r-- | com32/modules/ethersel.c | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/com32/modules/ethersel.c b/com32/modules/ethersel.c index 8ca6b473..924ec56b 100644 --- a/com32/modules/ethersel.c +++ b/com32/modules/ethersel.c @@ -109,6 +109,26 @@ get_did(char *p, uint32_t *idptr, uint32_t *maskptr) return p; } +static char * +get_rid_range(char *p, uint8_t *rid_min, uint8_t *rid_max) +{ + unsigned long r0, r1; + + p = skipspace(p+3); + + r0 = strtoul(p, &p, 16); + if ( *p == '-' ) { + r1 = strtoul(p+1, &p, 16); + } else { + r1 = r0; + } + + *rid_min = r0; + *rid_max = r1; + + return p; +} + static struct match * parse_config(const char *filename) { @@ -151,19 +171,7 @@ parse_config(const char *filename) } else if ( looking_at(p, "sid") ) { p = get_did(p+3, &m->sid, &m->sid_mask); } else if ( looking_at(p, "rid") ) { - unsigned long r0, r1; - - p = skipspace(p+3); - - r0 = strtoul(p, &p, 16); - if ( *p == '-' ) { - r1 = strtoul(p+1, &p, 16); - } else { - r1 = r0; - } - - m->rid_min = r0; - m->rid_max = r1; + p = get_rid_range(p+3, &m->rid_min, &m->rid_max); } else { char *e; |