aboutsummaryrefslogtreecommitdiff
path: root/src/daemon/daemon.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon/daemon.c')
-rw-r--r--src/daemon/daemon.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/daemon/daemon.c b/src/daemon/daemon.c
index 632db289..1c09bbe6 100644
--- a/src/daemon/daemon.c
+++ b/src/daemon/daemon.c
@@ -623,9 +623,7 @@ MHD_handle_connection (void *data)
623 if (FD_ISSET (con->socket_fd, &ws)) 623 if (FD_ISSET (con->socket_fd, &ws))
624 con->write_handler (con); 624 con->write_handler (con);
625 if (MHD_NO == con->idle_handler (con)) 625 if (MHD_NO == con->idle_handler (con))
626 { 626 goto exit;
627 return NULL;
628 }
629 } 627 }
630#ifdef HAVE_POLL_H 628#ifdef HAVE_POLL_H
631 else 629 else
@@ -660,9 +658,7 @@ MHD_handle_connection (void *data)
660 if (0 != (p[0].revents & (POLLERR | POLLHUP))) 658 if (0 != (p[0].revents & (POLLERR | POLLHUP)))
661 MHD_connection_close (con, MHD_REQUEST_TERMINATED_WITH_ERROR); 659 MHD_connection_close (con, MHD_REQUEST_TERMINATED_WITH_ERROR);
662 if (MHD_NO == con->idle_handler (con)) 660 if (MHD_NO == con->idle_handler (con))
663 { 661 goto exit;
664 return NULL; /* "instant" termination, 'con' no longer valid! */
665 }
666 } 662 }
667#endif 663#endif
668 } 664 }
@@ -678,6 +674,12 @@ MHD_handle_connection (void *data)
678 MHD_connection_close (con, MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN); 674 MHD_connection_close (con, MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN);
679 con->idle_handler (con); 675 con->idle_handler (con);
680 } 676 }
677exit:
678 if (con->response != NULL)
679 {
680 MHD_destroy_response (con->response);
681 con->response = NULL;
682 }
681 return NULL; 683 return NULL;
682} 684}
683 685