summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2007-04-01 16:36:38 -0700
committerH. Peter Anvin <hpa@zytor.com>2007-04-01 16:36:38 -0700
commit8fdbec5224d9b215adbd4af76751bd6950479d4c (patch)
treeb9dc5c778772ae21466e549e0a2ad9199c96ca33
parent3d9a984069b7f8270713948aeccae96526006d7d (diff)
downloadsyslinux-8fdbec5224d9b215adbd4af76751bd6950479d4c.tar.gz
ethersel: move RID range parsing into its own function.
-rw-r--r--com32/modules/ethersel.c34
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;