Fix FreeBSD issues
This commit is contained in:
parent
ef6715645d
commit
8f5a628b01
2 changed files with 19 additions and 9 deletions
|
@ -671,6 +671,9 @@ static inline void set_addr(void *p, uint32_t addr)
|
|||
struct sockaddr_in* sin = p;
|
||||
sin->sin_family = AF_INET;
|
||||
sin->sin_addr.s_addr = addr;
|
||||
#ifdef NMRPFLASH_BSD
|
||||
((struct sockaddr*)p)->sa_len = sizeof(struct sockaddr_in);
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifndef NMRPFLASH_WINDOWS
|
||||
|
@ -745,12 +748,12 @@ int ethsock_ip_add(struct ethsock *sock, uint32_t ipaddr, uint32_t ipmask, struc
|
|||
}
|
||||
#else // NMRPFLASH_OSX (or any other BSD)
|
||||
struct ifaliasreq ifra;
|
||||
memset(&ifra, 0, sizeof(ifra));
|
||||
strncpy(ifra.ifra_name, sock->intf, IFNAMSIZ);
|
||||
|
||||
set_addr(&ifra.ifra_addr, ipaddr);
|
||||
set_addr(&ifra.ifra_mask, ipmask);
|
||||
//set_addr(&ifra.ifra_broadaddr, (ipaddr & ipmask) | ~ipmask);
|
||||
memset(&ifra.ifra_broadaddr, 0, sizeof(ifra.ifra_broadaddr));
|
||||
|
||||
if (ioctl(fd, add ? SIOCAIFADDR : SIOCDIFADDR, &ifra) != 0) {
|
||||
perror(add ? "ioctl(SIOCAIFADDR)" : "ioctl(SIOCDIFADDR)");
|
||||
|
|
23
nmrpd.h
23
nmrpd.h
|
@ -23,14 +23,21 @@
|
|||
#include <stdbool.h>
|
||||
|
||||
#if defined(_WIN32) || defined(_WIN64)
|
||||
#define NMRPFLASH_WINDOWS
|
||||
#elif defined(__linux__)
|
||||
#define NMRPFLASH_LINUX
|
||||
#elif defined(__APPLE__) && defined(__MACH__)
|
||||
#define NMRPFLASH_OSX
|
||||
#elif defined(__unix__)
|
||||
#define NMRPFLASH_UNIX
|
||||
#warning "nmrpflash is not fully supported on your operating system"
|
||||
# define NMRPFLASH_WINDOWS
|
||||
#else
|
||||
# define NMRPFLASH_UNIX
|
||||
# if defined(__linux__)
|
||||
# define NMRPFLASH_LINUX
|
||||
# elif defined(__APPLE__) && defined(__MACH__)
|
||||
# define NMRPFLASH_OSX
|
||||
# define NMRPFLASH_BSD
|
||||
# elif defined(__unix__)
|
||||
# if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__DragonFly__) || defined(__OpenBSD__)
|
||||
# define NMRPFLASH_BSD
|
||||
# else
|
||||
# warning "nmrpflash is not fully supported on your operating system"
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifndef NMRPFLASH_WINDOWS
|
||||
|
|
Loading…
Add table
Reference in a new issue