| Index: fusl/src/network/ether.c
|
| diff --git a/fusl/src/network/ether.c b/fusl/src/network/ether.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4304a972fe5affea6cf5d24a1e802a9043e9fa83
|
| --- /dev/null
|
| +++ b/fusl/src/network/ether.c
|
| @@ -0,0 +1,58 @@
|
| +#include <stdlib.h>
|
| +#include <netinet/ether.h>
|
| +#include <stdio.h>
|
| +
|
| +struct ether_addr *ether_aton_r (const char *x, struct ether_addr *p_a)
|
| +{
|
| + struct ether_addr a;
|
| + char *y;
|
| + for (int ii = 0; ii < 6; ii++) {
|
| + unsigned long int n;
|
| + if (ii != 0) {
|
| + if (x[0] != ':') return 0; /* bad format */
|
| + else x++;
|
| + }
|
| + n = strtoul (x, &y, 16);
|
| + x = y;
|
| + if (n > 0xFF) return 0; /* bad byte */
|
| + a.ether_addr_octet[ii] = n;
|
| + }
|
| + if (x[0] != 0) return 0; /* bad format */
|
| + *p_a = a;
|
| + return p_a;
|
| +}
|
| +
|
| +struct ether_addr *ether_aton (const char *x)
|
| +{
|
| + static struct ether_addr a;
|
| + return ether_aton_r (x, &a);
|
| +}
|
| +
|
| +char *ether_ntoa_r (const struct ether_addr *p_a, char *x) {
|
| + char *y;
|
| + y = x;
|
| + for (int ii = 0; ii < 6; ii++) {
|
| + x += sprintf (x, ii == 0 ? "%.2X" : ":%.2X", p_a->ether_addr_octet[ii]);
|
| + }
|
| + return y;
|
| +}
|
| +
|
| +char *ether_ntoa (const struct ether_addr *p_a) {
|
| + static char x[18];
|
| + return ether_ntoa_r (p_a, x);
|
| +}
|
| +
|
| +int ether_line(const char *l, struct ether_addr *e, char *hostname)
|
| +{
|
| + return -1;
|
| +}
|
| +
|
| +int ether_ntohost(char *hostname, const struct ether_addr *e)
|
| +{
|
| + return -1;
|
| +}
|
| +
|
| +int ether_hostton(const char *hostname, struct ether_addr *e)
|
| +{
|
| + return -1;
|
| +}
|
|
|