From be574f1f8c7b6d72d48b55ed0950605c7d6588ba Mon Sep 17 00:00:00 2001 From: John Date: Fri, 6 Jan 2023 10:51:21 +0100 Subject: [PATCH] pass env from main and check FreeBSD for endian include (fix #650) --- src/ebusd/main.cpp | 9 +++++---- src/lib/knx/knxnet.h | 6 +++++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/ebusd/main.cpp b/src/ebusd/main.cpp index 9824c877..dc50dc28 100644 --- a/src/ebusd/main.cpp +++ b/src/ebusd/main.cpp @@ -1334,15 +1334,16 @@ bool parseMessage(const string& arg, bool onlyMasterSlave, MasterSymbolString* m * Main function. * @param argc the number of command line arguments. * @param argv the command line arguments. + * @param envp the environment variables. * @return the exit code. */ -int main(int argc, char* argv[]) { +int main(int argc, char* argv[], char* envp[]) { struct argp aargp = { argpoptions, parse_opt, nullptr, argpdoc, datahandler_getargs(), nullptr, nullptr }; setenv("ARGP_HELP_FMT", "no-dup-args-note", 0); char envname[32] = "--"; // needs to cover at least max length of any option name plus "--" char* envopt = envname+2; - for (char ** env = environ; *env; env++) { + for (char ** env = envp; *env; env++) { char* pos = strchr(*env, '='); if (!pos || strncmp(*env, "EBUSD_", sizeof("EBUSD_")-1) != 0) { continue; @@ -1569,6 +1570,6 @@ int main(int argc, char* argv[]) { } // namespace ebusd -int main(int argc, char* argv[]) { - return ebusd::main(argc, argv); +int main(int argc, char* argv[], char* envp[]) { + return ebusd::main(argc, argv, envp); } diff --git a/src/lib/knx/knxnet.h b/src/lib/knx/knxnet.h index 578ee98c..c17526ee 100644 --- a/src/lib/knx/knxnet.h +++ b/src/lib/knx/knxnet.h @@ -31,7 +31,11 @@ #include #include #include -#include +#ifdef __FreeBSD__ + #include +#else + #include +#endif #include #include #include