Another file moved; random interface stuff.
[tinc] / src / tincd.c
index c02ce5c..c732b7c 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: tincd.c,v 1.12 2002/04/09 15:26:01 zarq Exp $
+    $Id: tincd.c,v 1.16 2002/05/02 11:50:07 zarq Exp $
 */
 
 #include "config.h"
@@ -28,7 +28,6 @@
 #include <signal.h>
 #include <stdio.h>
 #include <sys/types.h>
-#include <syslog.h>
 #include <unistd.h>
 #include <signal.h>
 #include <string.h>
 # include <sys/ioctl.h>
 #endif
 
+#ifdef USE_OPENSSL
 #include <openssl/rand.h>
 #include <openssl/rsa.h>
 #include <openssl/pem.h>
 #include <openssl/evp.h>
+#endif
+
+#ifdef USE_GCRYPT
+#include <gcrypt.h>
+#endif
 
 #include <utils.h>
 #include <xalloc.h>
 
-#include "conf.h"
+#include "callbacks.h"
+#include "read_conf.h"
 #include "net.h"
 #include "netutl.h"
 #include "process.h"
 #include "protocol.h"
 #include "subnet.h"
+#include "logging.h"
 
 #include "system.h"
 
@@ -231,6 +238,7 @@ void indicator(int a, int b, void *p)
   }
 }
 
+#ifdef USE_OPENSSL
 /*
   Generate a public/private RSA keypair, and ask for a file to store
   them in.
@@ -283,6 +291,7 @@ int keygen(int bits)
 
   return 0;
 }
+#endif
 
 /*
   Set all files and paths according to netname
@@ -296,7 +305,7 @@ void make_names(void)
       if(!confbase)
         asprintf(&confbase, "%s/tinc/%s", CONFDIR, netname);
       else
-        syslog(LOG_INFO, _("Both netname and configuration directory given, using the latter..."));
+        log(0, TLOG_INFO, _("Both netname and configuration directory given, using the latter..."));
       if(!identname)
         asprintf(&identname, "tinc.%s", netname);
     }
@@ -338,11 +347,7 @@ main(int argc, char **argv, char **envp)
   if(show_help)
     usage(0);
 
-#ifdef HAVE_SOLARIS
-  openlog("tinc", LOG_CONS, LOG_DAEMON);        /* Catch all syslog() calls issued before detaching */
-#else
-  openlog("tinc", LOG_PERROR, LOG_DAEMON);      /* Catch all syslog() calls issued before detaching */
-#endif
+  log_add_hook(log_default);
 
   g_argv = argv;
 
@@ -351,6 +356,7 @@ main(int argc, char **argv, char **envp)
 
   /* Slllluuuuuuurrrrp! */
 cp
+#ifdef USE_OPENSSL
   RAND_load_file("/dev/urandom", 1024);
 
 #ifdef HAVE_SSLEAY_ADD_ALL_ALGORITHMS
@@ -365,6 +371,7 @@ cp
       read_server_config();
       exit(keygen(generate_keys));
     }
+#endif
 
   if(kill_tincd)
     exit(kill_other(kill_tincd));
@@ -374,6 +381,8 @@ cp
 cp
   if(detach())
     exit(0);
+
+  init_callbacks();
 cp
   for(;;)
     {
@@ -383,17 +392,17 @@ cp
           cleanup_and_exit(1);
         }
 
-      syslog(LOG_ERR, _("Unrecoverable error"));
+      log(0, TLOG_ERROR, _("Unrecoverable error"));
       cp_trace();
 
       if(do_detach)
         {
-          syslog(LOG_NOTICE, _("Restarting in %d seconds!"), maxtimeout);
+          log(0, TLOG_NOTICE, _("Restarting in %d seconds!"), maxtimeout);
           sleep(maxtimeout);
         }
       else
         {
-          syslog(LOG_ERR, _("Not restarting."));
+          log(0, TLOG_ERROR, _("Not restarting."));
           exit(1);
         }
     }