Fixed dual stack support for current libmicrohttpd
This commit is contained in:
parent
ec3640f15b
commit
3d0e4aa0b6
16
src/main.c
16
src/main.c
|
@ -657,8 +657,8 @@ int parse_cmdline(int argc, char **argv, int *port, int *enableUpload, char **sh
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char ** argv) {
|
int main(int argc, char ** argv) {
|
||||||
struct MHD_Daemon *d;
|
struct MHD_Daemon *d = NULL;
|
||||||
struct MHD_Daemon *d6;
|
struct MHD_Daemon *d6 = NULL;
|
||||||
|
|
||||||
struct stat sBuf;
|
struct stat sBuf;
|
||||||
|
|
||||||
|
@ -754,6 +754,7 @@ int main(int argc, char ** argv) {
|
||||||
faviconResponse = create_favicon_response();
|
faviconResponse = create_favicon_response();
|
||||||
|
|
||||||
// start daemons
|
// start daemons
|
||||||
|
#if MHD_VERSION <= 0x00092100
|
||||||
d = MHD_start_daemon(MHD_USE_THREAD_PER_CONNECTION,
|
d = MHD_start_daemon(MHD_USE_THREAD_PER_CONNECTION,
|
||||||
port,
|
port,
|
||||||
NULL,
|
NULL,
|
||||||
|
@ -769,12 +770,8 @@ int main(int argc, char ** argv) {
|
||||||
LOG(LVL_DEBUG, "IPv4 daemon startup successful.");
|
LOG(LVL_DEBUG, "IPv4 daemon startup successful.");
|
||||||
}
|
}
|
||||||
|
|
||||||
#if MHD_VERSION <= 0x00092100
|
|
||||||
unsigned int flags = MHD_USE_THREAD_PER_CONNECTION | MHD_USE_IPv6;
|
unsigned int flags = MHD_USE_THREAD_PER_CONNECTION | MHD_USE_IPv6;
|
||||||
#else
|
#else
|
||||||
/* MHD_USE_DUAL_STACK does actually not bind the socket to both IPv4 and
|
|
||||||
* IPv6, but bind the socket to IPv6 ONLY (just the opposite of what is
|
|
||||||
* documented. WATCH THIS CLOSELY FOR UPDATES! */
|
|
||||||
unsigned int flags = MHD_USE_THREAD_PER_CONNECTION | MHD_USE_DUAL_STACK;
|
unsigned int flags = MHD_USE_THREAD_PER_CONNECTION | MHD_USE_DUAL_STACK;
|
||||||
#endif // MHD_VERSION
|
#endif // MHD_VERSION
|
||||||
|
|
||||||
|
@ -790,11 +787,11 @@ int main(int argc, char ** argv) {
|
||||||
if (d6 == NULL) {
|
if (d6 == NULL) {
|
||||||
LOG(LVL_ERR, "Cannot start up libmicrohttpd listening on IPv6.");
|
LOG(LVL_ERR, "Cannot start up libmicrohttpd listening on IPv6.");
|
||||||
} else {
|
} else {
|
||||||
LOG(LVL_DEBUG, "IPv6 daemon startup successful.");
|
LOG(LVL_DEBUG, "IPv6/Dualstack daemon startup successful.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if(d == NULL && d6 == NULL) {
|
if(d == NULL && d6 == NULL) {
|
||||||
LOG(LVL_FATAL, "Both IPv4 and IPv6 servers failed to start. Terminating.");
|
LOG(LVL_FATAL, "Both IPv4 and IPv6/Dualstack servers failed to start. Terminating.");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -807,7 +804,10 @@ int main(int argc, char ** argv) {
|
||||||
|
|
||||||
LOG(LVL_INFO, "Shutting down...");
|
LOG(LVL_INFO, "Shutting down...");
|
||||||
|
|
||||||
|
#if MHD_VERSION <= 0x00092100
|
||||||
MHD_stop_daemon(d);
|
MHD_stop_daemon(d);
|
||||||
|
#endif // MHD_VERSION
|
||||||
|
|
||||||
MHD_stop_daemon(d6);
|
MHD_stop_daemon(d6);
|
||||||
|
|
||||||
MHD_destroy_response(error403Response);
|
MHD_destroy_response(error403Response);
|
||||||
|
|
Loading…
Reference in a new issue