34 #include <sys/types.h> 35 #include <sys/socket.h> 36 #include <netinet/in.h> 37 #include <arpa/inet.h> 53 unsigned char *p = (
unsigned char *) addr;
59 debug(
"%s%i", i?
"." :
"", p[i]);
64 debug(
"%s%4x", i?
":" :
"", p[i] * 256 + p[i+1]);
69 debug(
"%s%02x", i?
":" :
"", p[i]);
73 fatal(
"net_debugaddr(): UNIMPLEMTED type %i\n", type);
92 if (macbuf == NULL || machine == NULL) {
93 fatal(
"**\n** net_generate_unique_mac(): NULL ptr\n**\n");
109 if (macbuf[0] & 1 || macbuf[5] & 1) {
110 fatal(
"Internal error in net_generate_unique_mac().\n");
125 void send_udp(
struct in_addr *addrp,
int portnr,
unsigned char *packet,
129 struct sockaddr_in si;
131 s = socket(AF_INET, SOCK_DGRAM, 0);
133 perror(
"send_udp(): socket");
139 si.sin_family = AF_INET;
140 si.sin_addr = *addrp;
141 si.sin_port = htons(portnr);
143 if (sendto(s, packet, len, 0, (
struct sockaddr *)&si,
144 sizeof(si)) != (ssize_t)len) {
145 perror(
"send_udp(): sendto");
void net_generate_unique_mac(struct machine *machine, unsigned char *macbuf)
void fatal(const char *fmt,...)
#define NET_ADDR_ETHERNET
void send_udp(struct in_addr *addrp, int portnr, unsigned char *packet, size_t len)
void net_debugaddr(void *addr, int type)