X-Git-Url: http://git.cascardo.eti.br/?a=blobdiff_plain;f=popproxy.c;h=d2ccbf76f709b0a16c3231c46387e926f36b0f25;hb=5877f7a1725a97c99b4da977a6fa7e8fdbcd917b;hp=f5f88bdaa06016d2daa657efca38d1ef14e60e52;hpb=09b4a881253d4703312045b8dc61900725cac3ec;p=cascardo%2Frnetproxy.git diff --git a/popproxy.c b/popproxy.c index f5f88bd..d2ccbf7 100644 --- a/popproxy.c +++ b/popproxy.c @@ -25,6 +25,7 @@ #include #include #include +#include #include "log.h" #include "pop.h" @@ -32,6 +33,8 @@ #include "hcconn_ssl.h" #include "tcp_connect.h" +#include "usermap.h" + #define CONFFILE SYSCONFDIR "/popproxy.conf" struct pop_address @@ -99,7 +102,7 @@ client_conn_new (int fd) return NULL; } pop_conn = hc_conn_new (NULL, NULL); - r = hc_conn_set_driver_pop (pop_conn, conn); + r = hc_conn_set_driver_pop (pop_conn, ssl_conn); if (r != 0) { hc_conn_close (pop_conn); @@ -187,8 +190,11 @@ int main (int argc, char **argv) int server_ssl; gchar *certfile; gchar *ssl_keyfile; + gchar *policy; struct pop_address pop_address; + signal (SIGPIPE, SIG_IGN); + gnutls_global_init (); configfile = CONFFILE; @@ -277,6 +283,19 @@ int main (int argc, char **argv) g_error_free (error); } + error = NULL; + policy = g_key_file_get_string (keyfile, "global", "policy", + &error); + if (policy == NULL && error != NULL) + { + policy = g_strdup ("deny"); + g_error_free (error); + } + + if (!strcmp (policy, "allow")) + ACCESS_DEFAULT = ACCESS_ALLOW; + g_free (policy); + pop_address.server = server_address; pop_address.port = server_port; @@ -293,6 +312,8 @@ int main (int argc, char **argv) pop_log_init (); g_message ("Listening at %s:%s.", conf_address, port); + if (ACCESS_DEFAULT == ACCESS_ALLOW) + g_message ("Authorizing users by default."); if (!foreground) daemon (0, 0);