9 #include <sys/socket.h>
10 #include <sys/types.h>
11 #include <sys/ioctl.h>
16 /* TODO: add support for SIOCGIFINDEX into AF_LANA */
17 static int device_ifindex(const char *ifname
)
22 sock
= socket(AF_INET
, SOCK_DGRAM
, 0);
26 memset(&ifr
, 0, sizeof(ifr
));
27 strncpy(ifr
.ifr_name
, ifname
, strlen(ifname
));
29 ret
= ioctl(sock
, SIOCGIFINDEX
, &ifr
);
31 index
= ifr
.ifr_ifindex
;
43 char buff
[] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
44 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
45 0xac, 0xdc, 0xee, 0xee, 0xee, 0xee };
47 sock
= socket(AF_LANA
, SOCK_RAW
, 0);
53 /* XXX: #include <net/if.h> -> if_nametoindex(3) */
54 idx
= device_ifindex("eth0");
60 printf("Hit key1!\n");
63 memset(&sa
, 0, sizeof(sa
));
64 sa
.sa_family
= AF_LANA
;
65 sa
.sa_data
[0] = (uint8_t) idx
;
67 ret
= bind(sock
, &sa
, sizeof(sa
));
74 ret
= sendto(sock
, buff
, sizeof(buff
), 0, &sa
, sizeof(sa
));
79 printf("sent packet!\n");