projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Refactor crypto RNG; add getrandom() support
[tinc]
/
src
/
tincd.c
diff --git
a/src/tincd.c
b/src/tincd.c
index
da3f03b
..
947e7b3
100644
(file)
--- a/
src/tincd.c
+++ b/
src/tincd.c
@@
-29,19
+29,15
@@
#define _P1003_1B_VISIBLE
#endif
#define _P1003_1B_VISIBLE
#endif
-#ifdef HAVE_SYS_MMAN_H
-#include <sys/mman.h>
-#endif
-
#ifdef HAVE_LZO
#include LZO1X_H
#endif
#ifdef HAVE_LZO
#include LZO1X_H
#endif
-#ifdef
LZ4_H
-#include
LZ4_H
+#ifdef
HAVE_LZ4
+#include
<lz4.h>
#endif
#endif
-#ifndef HAVE_
MINGW
+#ifndef HAVE_
WINDOWS
#include <pwd.h>
#include <grp.h>
#include <time.h>
#include <pwd.h>
#include <grp.h>
#include <time.h>
@@
-58,6
+54,7
@@
#include "utils.h"
#include "xalloc.h"
#include "version.h"
#include "utils.h"
#include "xalloc.h"
#include "version.h"
+#include "random.h"
/* If nonzero, display usage information and exit. */
static bool show_help = false;
/* If nonzero, display usage information and exit. */
static bool show_help = false;
@@
-65,15
+62,12
@@
static bool show_help = false;
/* If nonzero, print the version on standard output and exit. */
static bool show_version = false;
/* If nonzero, print the version on standard output and exit. */
static bool show_version = false;
-/* If nonzero, use null ciphers and skip all key exchanges. */
-bool bypass_security = false;
-
#ifdef HAVE_MLOCKALL
/* If nonzero, disable swapping for this process. */
static bool do_mlock = false;
#endif
#ifdef HAVE_MLOCKALL
/* If nonzero, disable swapping for this process. */
static bool do_mlock = false;
#endif
-#ifndef HAVE_
MINGW
+#ifndef HAVE_
WINDOWS
/* If nonzero, chroot to netdir after startup. */
static bool do_chroot = false;
/* If nonzero, chroot to netdir after startup. */
static bool do_chroot = false;
@@
-81,12
+75,6
@@
static bool do_chroot = false;
static const char *switchuser = NULL;
#endif
static const char *switchuser = NULL;
#endif
-/* If nonzero, write log entries to a separate file. */
-bool use_logfile = false;
-
-/* If nonzero, use syslog instead of stderr in no-detach mode. */
-bool use_syslog = false;
-
char **g_argv; /* a copy of the cmdline arguments */
static int status = 1;
char **g_argv; /* a copy of the cmdline arguments */
static int status = 1;
@@
-109,7
+97,7
@@
static struct option const long_options[] = {
{NULL, 0, NULL, 0}
};
{NULL, 0, NULL, 0}
};
-#ifdef HAVE_
MINGW
+#ifdef HAVE_
WINDOWS
static struct WSAData wsa_state;
int main2(int argc, char **argv);
#endif
static struct WSAData wsa_state;
int main2(int argc, char **argv);
#endif
@@
-134,7
+122,7
@@
static void usage(bool status) {
" --pidfile=FILENAME Write PID and control socket cookie to FILENAME.\n"
" --bypass-security Disables meta protocol security, for debugging.\n"
" -o, --option[HOST.]KEY=VALUE Set global/host configuration value.\n"
" --pidfile=FILENAME Write PID and control socket cookie to FILENAME.\n"
" --bypass-security Disables meta protocol security, for debugging.\n"
" -o, --option[HOST.]KEY=VALUE Set global/host configuration value.\n"
-#ifndef HAVE_
MINGW
+#ifndef HAVE_
WINDOWS
" -R, --chroot chroot to NET dir at startup.\n"
" -U, --user=USER setuid to given USER at startup.\n"
#endif
" -R, --chroot chroot to NET dir at startup.\n"
" -U, --user=USER setuid to given USER at startup.\n"
#endif
@@
-209,7
+197,7
@@
static bool parse_options(int argc, char **argv) {
list_insert_tail(&cmdline_conf, cfg);
break;
list_insert_tail(&cmdline_conf, cfg);
break;
-#ifdef HAVE_
MINGW
+#ifdef HAVE_
WINDOWS
case 'R':
case 'U':
case 'R':
case 'U':
@@
-302,7
+290,7
@@
exit_fail:
}
static bool drop_privs(void) {
}
static bool drop_privs(void) {
-#ifndef HAVE_
MINGW
+#ifndef HAVE_
WINDOWS
uid_t uid = 0;
if(switchuser) {
uid_t uid = 0;
if(switchuser) {
@@
-355,7
+343,7
@@
static bool drop_privs(void) {
return true;
}
return true;
}
-#ifdef HAVE_
MINGW
+#ifdef HAVE_
WINDOWS
# define setpriority(level) !SetPriorityClass(GetCurrentProcess(), (level))
static void stop_handler(void *data, int flags) {
# define setpriority(level) !SetPriorityClass(GetCurrentProcess(), (level))
static void stop_handler(void *data, int flags) {
@@
-458,7
+446,7
@@
int main(int argc, char **argv) {
return 1;
}
return 1;
}
-#ifdef HAVE_
MINGW
+#ifdef HAVE_
WINDOWS
if(WSAStartup(MAKEWORD(2, 2), &wsa_state)) {
logger(DEBUG_ALWAYS, LOG_ERR, "System call `%s' failed: %s", "WSAStartup", winerror(GetLastError()));
if(WSAStartup(MAKEWORD(2, 2), &wsa_state)) {
logger(DEBUG_ALWAYS, LOG_ERR, "System call `%s' failed: %s", "WSAStartup", winerror(GetLastError()));
@@
-500,6
+488,7
@@
int main(int argc, char **argv) {
#endif
gettimeofday(&now, NULL);
#endif
gettimeofday(&now, NULL);
+ random_init();
crypto_init();
prng_init();
crypto_init();
prng_init();
@@
-524,7
+513,7
@@
int main(int argc, char **argv) {
#endif
#endif
-#ifdef HAVE_
MINGW
+#ifdef HAVE_
WINDOWS
io_add_event(&stop_io, stop_handler, NULL, WSACreateEvent());
if(stop_io.event == FALSE) {
io_add_event(&stop_io, stop_handler, NULL, WSACreateEvent());
if(stop_io.event == FALSE) {
@@
-632,7
+621,7
@@
end:
free(priority);
free(priority);
-
crypto
_exit();
+
random
_exit();
return status;
}
return status;
}