From 811d134978795a5acd171710999071a94beb4305 Mon Sep 17 00:00:00 2001 From: Stéphane Raimbault Date: Thu, 29 Jul 2010 10:00:46 +0200 Subject: [PATCH] OpenBSD support by Anibal Limón --- NEWS | 1 + src/modbus.c | 12 ++++++++++-- src/modbus.h.in | 7 ++++++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 75e0bd7..34ae71f 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,7 @@ libmodbus 2.1.1 (2010-XX-XX) Reported by aladdinwu. - Parity setting is now a single char ('N', 'E' or 'O') - Report slave ID server side +- OpenBSD support by Anibal Limón. libmodbus 2.1.0 (2010-03-24) ============================ diff --git a/src/modbus.c b/src/modbus.c index f6ff553..d0125b4 100644 --- a/src/modbus.c +++ b/src/modbus.c @@ -45,11 +45,16 @@ #include #include +/* Add this for macros that defined unix flavor */ +#if (defined(__unix__) || defined(unix)) && !defined(USG) +#include +#endif + /* TCP */ #include #include #include -#if defined(__FreeBSD__ ) && __FreeBSD__ < 5 +#if (defined OpenBSD) || (defined(__FreeBSD__ ) && __FreeBSD__ < 5) #include #endif #include @@ -1527,8 +1532,11 @@ modbus_t* modbus_new_rtu(const char *device, ctx->com = (modbus_rtu_t *) malloc(sizeof(modbus_rtu_t)); ctx_rtu = (modbus_rtu_t *)ctx->com; - +#if defined(OpenBSD) + strlcpy(ctx_rtu->device, device, sizeof(ctx_rtu->device)); +#else strcpy(ctx_rtu->device, device); +#endif ctx_rtu->baud = baud; if (parity == 'N' || parity == 'E' || parity == 'O') { ctx_rtu->parity = parity; diff --git a/src/modbus.h.in b/src/modbus.h.in index e3659f4..4470eb5 100644 --- a/src/modbus.h.in +++ b/src/modbus.h.in @@ -18,6 +18,11 @@ #ifndef _MODBUS_H_ #define _MODBUS_H_ +/* Add this for macros that defined unix flavor */ +#if (defined(__unix__) || defined(unix)) && !defined(USG) +#include +#endif + #ifdef HAVE_INTTYPES_H #include #endif @@ -25,7 +30,7 @@ #include #endif #include -#if defined(__FreeBSD__ ) && __FreeBSD__ < 5 +#if defined(OpenBSD) || (defined(__FreeBSD__ ) && __FreeBSD__ < 5) #include #endif #include -- libgit2 0.21.4