diff options
| author | Ruslan Ermilov <ru@FreeBSD.org> | 2003-12-17 12:40:34 +0000 |
|---|---|---|
| committer | Ruslan Ermilov <ru@FreeBSD.org> | 2003-12-17 12:40:34 +0000 |
| commit | 8c7e4101f87192b1033d85842714bfb3dd453c3e (patch) | |
| tree | cb79deb87f430caf11f013eff4540c587f790642 /sys/netgraph/ng_ether.c | |
| parent | 7304a833fb9f3eba196c3ca67ce19509b1dca3af (diff) | |
Notes
Diffstat (limited to 'sys/netgraph/ng_ether.c')
| -rw-r--r-- | sys/netgraph/ng_ether.c | 59 |
1 files changed, 2 insertions, 57 deletions
diff --git a/sys/netgraph/ng_ether.c b/sys/netgraph/ng_ether.c index 8cfd0530bc92c..b1756d0a65490 100644 --- a/sys/netgraph/ng_ether.c +++ b/sys/netgraph/ng_ether.c @@ -109,19 +109,6 @@ static ng_rcvdata_t ng_ether_rcvdata; static ng_disconnect_t ng_ether_disconnect; static int ng_ether_mod_event(module_t mod, int event, void *data); -/* Parse type for an Ethernet address */ -static ng_parse_t ng_enaddr_parse; -static ng_unparse_t ng_enaddr_unparse; -const struct ng_parse_type ng_ether_enaddr_type = { - NULL, - NULL, - NULL, - ng_enaddr_parse, - ng_enaddr_unparse, - NULL, /* no such thing as a "default" EN address */ - 0 -}; - /* List of commands and how to convert arguments to/from ASCII */ static const struct ng_cmdlist ng_ether_cmdlist[] = { { @@ -143,13 +130,13 @@ static const struct ng_cmdlist ng_ether_cmdlist[] = { NGM_ETHER_GET_ENADDR, "getenaddr", NULL, - &ng_ether_enaddr_type + &ng_parse_enaddr_type }, { NGM_ETHER_COOKIE, NGM_ETHER_SET_ENADDR, "setenaddr", - &ng_ether_enaddr_type, + &ng_parse_enaddr_type, NULL }, { @@ -653,48 +640,6 @@ ng_ether_disconnect(hook_p hook) return (0); } -static int -ng_enaddr_parse(const struct ng_parse_type *type, - const char *s, int *const off, const u_char *const start, - u_char *const buf, int *const buflen) -{ - char *eptr; - u_long val; - int i; - - if (*buflen < ETHER_ADDR_LEN) - return (ERANGE); - for (i = 0; i < ETHER_ADDR_LEN; i++) { - val = strtoul(s + *off, &eptr, 16); - if (val > 0xff || eptr == s + *off) - return (EINVAL); - buf[i] = (u_char)val; - *off = (eptr - s); - if (i < ETHER_ADDR_LEN - 1) { - if (*eptr != ':') - return (EINVAL); - (*off)++; - } - } - *buflen = ETHER_ADDR_LEN; - return (0); -} - -static int -ng_enaddr_unparse(const struct ng_parse_type *type, - const u_char *data, int *off, char *cbuf, int cbuflen) -{ - int len; - - len = snprintf(cbuf, cbuflen, "%02x:%02x:%02x:%02x:%02x:%02x", - data[*off], data[*off + 1], data[*off + 2], - data[*off + 3], data[*off + 4], data[*off + 5]); - if (len >= cbuflen) - return (ERANGE); - *off += ETHER_ADDR_LEN; - return (0); -} - /****************************************************************** INITIALIZATION ******************************************************************/ |
