Hi, On Wed, Oct 3, 2018 at 1:24 PM Lev Stipakov <lstipa...@gmail.com> wrote:
> From: Lev Stipakov <l...@openvpn.net> > > Functions openvpn_vsntprintf and openvpn_sntprintf return > values of type int, but in reality it is always 0 or 1 (and -1 for > snrptinf), which can be represented as boolean. > > To make code clearer, change return type to BOOL. Also > use stdbool.h header instead of bool definition macros in automatic.c > > Signed-off-by: Lev Stipakov <l...@openvpn.net> > --- > v2: replace bool with BOOL as discussed > > src/openvpnserv/automatic.c | 6 +----- > src/openvpnserv/common.c | 13 +++++++------ > src/openvpnserv/service.h | 4 ++-- > 3 files changed, 10 insertions(+), 13 deletions(-) > > diff --git a/src/openvpnserv/automatic.c b/src/openvpnserv/automatic.c > index 1f98283..73d3003 100644 > --- a/src/openvpnserv/automatic.c > +++ b/src/openvpnserv/automatic.c > @@ -36,13 +36,9 @@ > > #include <stdio.h> > #include <stdarg.h> > +#include <stdbool.h> > #include <process.h> > > -/* bool definitions */ > -#define bool int > -#define true 1 > -#define false 0 > - > static SERVICE_STATUS_HANDLE service; > static SERVICE_STATUS status = { .dwServiceType = > SERVICE_WIN32_SHARE_PROCESS }; > > diff --git a/src/openvpnserv/common.c b/src/openvpnserv/common.c > index dc47666..6b3a859 100644 > --- a/src/openvpnserv/common.c > +++ b/src/openvpnserv/common.c > @@ -31,7 +31,7 @@ LPCTSTR service_instance = TEXT(""); > * These are necessary due to certain buggy implementations of > (v)snprintf, > * that don't guarantee null termination for size > 0. > */ > -int > +BOOL > openvpn_vsntprintf(LPTSTR str, size_t size, LPCTSTR format, va_list > arglist) > { > int len = -1; > @@ -42,18 +42,19 @@ openvpn_vsntprintf(LPTSTR str, size_t size, LPCTSTR > format, va_list arglist) > } > return (len >= 0 && len < size); > } > -int > + > +BOOL > openvpn_sntprintf(LPTSTR str, size_t size, LPCTSTR format, ...) > { > va_list arglist; > - int len = -1; > + BOOL res = FALSE; > if (size > 0) > { > va_start(arglist, format); > - len = openvpn_vsntprintf(str, size, format, arglist); > + res = openvpn_vsntprintf(str, size, format, arglist); > va_end(arglist); > } > - return len; > + return res; > } > > static DWORD > @@ -65,7 +66,7 @@ GetRegString(HKEY key, LPCTSTR value, LPTSTR data, DWORD > size, LPCTSTR default_v > if (status == ERROR_FILE_NOT_FOUND && default_value) > { > size_t len = size/sizeof(data[0]); > - if (openvpn_sntprintf(data, len, default_value) > 0) > + if (openvpn_sntprintf(data, len, default_value)) > { > status = ERROR_SUCCESS; > } > diff --git a/src/openvpnserv/service.h b/src/openvpnserv/service.h > index 4d03b88..b90033a 100644 > --- a/src/openvpnserv/service.h > +++ b/src/openvpnserv/service.h > @@ -82,9 +82,9 @@ VOID WINAPI ServiceStartAutomatic(DWORD argc, LPTSTR > *argv); > VOID WINAPI ServiceStartInteractiveOwn(DWORD argc, LPTSTR *argv); > VOID WINAPI ServiceStartInteractive(DWORD argc, LPTSTR *argv); > > -int openvpn_vsntprintf(LPTSTR str, size_t size, LPCTSTR format, va_list > arglist); > +BOOL openvpn_vsntprintf(LPTSTR str, size_t size, LPCTSTR format, va_list > arglist); > > -int openvpn_sntprintf(LPTSTR str, size_t size, LPCTSTR format, ...); > +BOOL openvpn_sntprintf(LPTSTR str, size_t size, LPCTSTR format, ...); > > DWORD GetOpenvpnSettings(settings_t *s); > > The originals had confusing return values with a success/fail code hidden in what looked like a length. The code is cleaner and clearer this way. And, builds/runs fine (mingw cross-build + Windows 7 run time). Acked-by: selva.n...@gmail.com
_______________________________________________ Openvpn-devel mailing list Openvpn-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openvpn-devel