Exit if not able to create server.
[cascardo/rnetproxy.git] / popproxy.c
index f6c4b57..e525afa 100644 (file)
 #include <glib.h>
 #include <gnet.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <unistd.h>
+#include <gnutls/gnutls.h>
 #include "log.h"
 #include "nethook.h"
 #include "null.h"
+#include "ssl.h"
 
 #define CONFFILE SYSCONFDIR "/popproxy.conf"
 
@@ -37,7 +40,7 @@ void new_client (GServer* server, GConn* conn, gpointer data)
       return;
     }
   g_message ("Received connection from %s.", conn->hostname);
-  hook = null_hook_new (conn, data);
+  hook = ssl_hook_new (conn, data);
   gnet_conn_read (conn);
 }
 
@@ -60,6 +63,7 @@ int main (int argc, char** argv)
   gint port;
   gchar *server_address;
 
+  gnutls_global_init ();
   gnet_init ();
   pop_log_init ();
 
@@ -81,15 +85,22 @@ int main (int argc, char** argv)
   port = g_key_file_get_integer (keyfile, "global", "port", NULL);
   server_address = g_key_file_get_string (keyfile, "global", "server", NULL);
 
-  g_message ("Listen address is %s:%d.", conf_address, port);
-
   inetaddr = gnet_inetaddr_new_nonblock (conf_address, port);
-  gnet_server_new (inetaddr, port, new_client, server_address);
+  if (gnet_server_new (inetaddr, port,
+                       new_client, server_address) == NULL)
+    {
+      fprintf (stderr, "Could not create server.\n");
+      exit (1);
+    }
+
+  g_message ("Listening at %s:%d.", conf_address, port);
 
   daemon (0, 0);
 
   g_main_loop_run (g_main_loop_new (g_main_context_default (), TRUE));
 
+  gnutls_global_deinit ();
+
   return 0;
 
 }