blob: 4304a972fe5affea6cf5d24a1e802a9043e9fa83 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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;
}
|