hlr: install signal handlers for SIGINT/USR1/HUP
diff --git a/src/hlr.c b/src/hlr.c
index be0e96e..2a93d7d 100644
--- a/src/hlr.c
+++ b/src/hlr.c
@@ -1,3 +1,5 @@
+#include <signal.h>
+
 #include <osmocom/core/msgb.h>
 #include <osmocom/core/logging.h>
 #include <osmocom/core/application.h>
@@ -66,12 +68,31 @@
 	return 0;
 }
 
+static struct osmo_gsup_server *gs;
+
+static void signal_hdlr(int signal)
+{
+	switch (signal) {
+	case SIGINT:
+		LOGP(DMAIN, LOGL_NOTICE, "Terminating due to SIGINT\n");
+		osmo_gsup_server_destroy(gs);
+		db_close(g_dbc);
+		log_fini();
+		exit(0);
+		break;
+	case SIGUSR1:
+		LOGP(DMAIN, LOGL_DEBUG, "Talloc Report due to SIGUSR1\n");
+		talloc_report_full(NULL, stderr);
+		break;
+	}
+}
 
 int main(int argc, char **argv)
 {
-	struct osmo_gsup_server *gs;
 	int rc;
 
+	talloc_enable_leak_report_full();
+
 	rc = osmo_init_logging(&hlr_log_info);
 	if (rc < 0) {
 		fprintf(stderr, "Error initializing logging\n");
@@ -97,6 +118,12 @@
 		exit(1);
 	}
 
+	osmo_init_ignore_signals();
+	signal(SIGINT, &signal_hdlr);
+	signal(SIGUSR1, &signal_hdlr);
+
+	//osmo_daemonize();
+
 	while (1) {
 		osmo_select_main(0);
 	}