Added ability to get "my" netmask from the OS-specific network code, so we could construct subnet broadcasts from source addresses.

(Haven't hooked up code to actually do that, yet.)
This commit is contained in:
tbrennan3
2010-02-15 21:18:57 +00:00
parent 4c99467009
commit a18ca597e5
3 changed files with 23 additions and 2 deletions
+15
View File
@@ -180,3 +180,18 @@ bool bip_init(
return true;
}
/** Get the netmask of the BACnet/IP's interface via an ioctl() call.
* @param netmask [out] The netmask, in host order.
* @return 0 on success, else the error from the ioctl() call.
*/
int bip_get_local_netmask(
struct in_addr *netmask )
{
int rv;
char *ifname = getenv("BACNET_IFACE"); /* will probably be null */
if ( ifname == NULL )
ifname = "eth0";
rv = get_local_address_ioctl(ifname, netmask, SIOCGIFNETMASK);
return rv;
}
+7 -1
View File
@@ -94,6 +94,12 @@
#include <sys/ioctl.h>
#include <netdb.h>
/** @file linux/net.h Includes Linux network headers. */
/* Local helper functions for this port */
extern int bip_get_local_netmask(
struct in_addr *netmask );
#endif
/** @file linux/net.h Includes Linux network headers. */
+1 -1
View File
@@ -26,7 +26,7 @@
#include <stdbool.h>
#include <stdint.h>
#include <sys/time.h> // for timeval
#include <sys/time.h> /* for timeval */
/* Timer Module */
#ifndef MAX_MILLISECOND_TIMERS