diff --git a/other/bootstrap_daemon/src/global.h b/other/bootstrap_daemon/src/global.h
new file mode 100644
index 00000000..7aa42780
--- /dev/null
+++ b/other/bootstrap_daemon/src/global.h
@@ -0,0 +1,30 @@
+/* global.h
+ *
+ * Tox DHT bootstrap daemon.
+ *
+ * Copyright (C) 2015 Tox project All Rights Reserved.
+ *
+ * This file is part of Tox.
+ *
+ * Tox is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Tox is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Tox. If not, see .
+ *
+ */
+
+#ifndef GLOBAL_H
+#define GLOBAL_H
+
+#define DAEMON_NAME "tox-bootstrapd"
+#define DAEMON_VERSION_NUMBER 2014101200UL // yyyymmmddvv format: yyyy year, mm month, dd day, vv version change count for that day
+
+#endif // GLOBAL_H
diff --git a/other/bootstrap_daemon/src/logger.c b/other/bootstrap_daemon/src/logger.c
new file mode 100644
index 00000000..3cf18fd6
--- /dev/null
+++ b/other/bootstrap_daemon/src/logger.c
@@ -0,0 +1,112 @@
+/* logger.c
+ *
+ * Tox DHT bootstrap daemon.
+ *
+ * Copyright (C) 2015 Tox project All Rights Reserved.
+ *
+ * This file is part of Tox.
+ *
+ * Tox is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Tox is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Tox. If not, see .
+ *
+ */
+
+#include "logger.h"
+
+#include "global.h"
+
+#include
+
+#include
+#include
+
+typedef struct Logger {
+ LOGGER_BACKEND backend;
+} Logger;
+
+Logger* new_logger(LOGGER_BACKEND backend)
+{
+ if (backend == LOGGER_BACKEND_SYSLOG) {
+ openlog(DAEMON_NAME, LOG_NOWAIT | LOG_PID, LOG_DAEMON);
+ }
+
+ Logger* logger = malloc(sizeof(Logger));
+
+ if (logger == NULL) {
+ return NULL;
+ }
+
+ logger->backend = backend;
+
+ return logger;
+}
+
+void kill_logger(Logger* logger)
+{
+ if (backend == LOGGER_BACKEND_SYSLOG) {
+ closelog();
+ }
+
+ free(logger);
+}
+
+int level_syslog(LOG_LEVEL level)
+{
+ switch (level) {
+ case LOG_LEVEL_INFO:
+ return LOG_INFO;
+ case LOG_LEVEL_WARNING:
+ return LOG_WARNING;
+ case LOG_LEVEL_ERROR:
+ return LOG_ERR;
+ }
+}
+
+void log_syslog(LOG_LEVEL level, const char *format, va_list args)
+{
+ vsyslog(level_syslog(level), format, args);
+}
+
+FILE* level_stdout(LOG_LEVEL level)
+{
+ switch (level) {
+ case LOG_LEVEL_INFO:
+ return stdout;
+ case LOG_LEVEL_WARNING: // intentional fallthrough
+ case LOG_LEVEL_ERROR:
+ return stderr;
+
+ }
+}
+
+void log_stdout(LOG_LEVEL level, const char *format, va_list args)
+{
+ vfprintf(level_stdout(level), format, args);
+}
+
+void log(Logger* logger, LOG_LEVEL level, const char *format, ...)
+{
+ va_list args;
+ va_start(args, format);
+
+ switch (logger->backend) {
+ case LOGGER_BACKEND_SYSLOG:
+ log_syslog(level, format, args);
+ break;
+ case LOGGER_BACKEND_STDOUT:
+ log_stdout(level, format, args);
+ break;
+ }
+
+ va_end(args);
+}
diff --git a/other/bootstrap_daemon/src/logger.h b/other/bootstrap_daemon/src/logger.h
new file mode 100644
index 00000000..174d3445
--- /dev/null
+++ b/other/bootstrap_daemon/src/logger.h
@@ -0,0 +1,63 @@
+/* logger.h
+ *
+ * Tox DHT bootstrap daemon.
+ *
+ * Copyright (C) 2015 Tox project All Rights Reserved.
+ *
+ * This file is part of Tox.
+ *
+ * Tox is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Tox is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Tox. If not, see .
+ *
+ */
+
+#ifndef LOGGER_H
+#define LOGGER_H
+
+typedef enum LOGGER_BACKEND {
+ LOGGER_BACKEND_SYSLOG,
+ LOGGER_BACKEND_STDOUT
+} LOGGER_BACKEND;
+
+typedef enum LOG_LEVEL {
+ LOG_LEVEL_INFO,
+ LOG_LEVEL_WARNING,
+ LOG_LEVEL_ERROR
+} LOG_LEVEL;
+
+typedef struct Logger Logger;
+
+/**
+ * Creates new logger.
+ * @param backend Specifies which backend the logger should use.
+ * @return Logger object on success, NULL on failure.
+ */
+Logger* new_logger(LOGGER_BACKEND backend);
+
+/**
+ * Destroys a logger object, releasing all used resources.
+ * @param logger Logger object to destroy.
+ */
+void kill_logger(Logger* logger);
+
+/**
+ * Logs a message.
+ * @param logger Logger object to use.
+ * @param level Log level to use.
+ * @param format printf-like format string.
+ * @param ... Zero or more arguments, similar to printf function.
+ */
+void log(Logger* logger, LOG_LEVEL level, const char *format, ...);
+
+
+#endif // LOGGER_H
diff --git a/other/bootstrap_daemon/tox-bootstrapd.c b/other/bootstrap_daemon/src/tox-bootstrapd.c
similarity index 100%
rename from other/bootstrap_daemon/tox-bootstrapd.c
rename to other/bootstrap_daemon/src/tox-bootstrapd.c