This commit is contained in:
Adam Ierymenko 2018-11-13 16:02:31 -08:00
commit 03e35b25b8
4 changed files with 485 additions and 918 deletions

File diff suppressed because it is too large Load Diff

View File

@ -23,12 +23,16 @@
#include "DB.hpp"
#include <pqxx/pqxx>
extern "C" {
typedef struct pg_conn PGconn;
}
namespace ZeroTier
{
class _MemberNotificationReceiver;
class _NetworkNotificationReceiver;
/**
* A controller database driver that talks to PostgreSQL
@ -56,8 +60,8 @@ protected:
};
private:
void initializeNetworks(PGconn *conn);
void initializeMembers(PGconn *conn);
void initializeNetworks(pqxx::connection &conn);
void initializeMembers(pqxx::connection &conn);
void heartbeat();
void membersDbWatcher();
void networksDbWatcher();
@ -81,6 +85,9 @@ private:
mutable std::mutex _readyLock;
std::atomic<int> _ready, _connected, _run;
mutable volatile bool _waitNoticePrinted;
friend class _MemberNotificationReceiver;
friend class _NetworkNotificationReceiver;
};
}

View File

@ -4,7 +4,7 @@ MAINTAINER Adam Ierymekno <adam.ierymenko@zerotier.com>, Grant Limberg <grant.li
RUN yum update -y
RUN yum install -y https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
RUN yum install -y postgresql10
RUN yum install -y postgresql10 libpqxx-devel
RUN yum -y install epel-release && yum -y update && yum clean all
RUN yum -y install clang jemalloc jemalloc-devel

View File

@ -319,7 +319,7 @@ official: FORCE
make -j4 ZT_OFFICIAL=1 all
central-controller: FORCE
make -j4 LDLIBS="-L/usr/pgsql-10/lib/ -lpq" CXXFLAGS="-I/usr/pgsql-10/include -fPIC" DEFS="-DZT_CONTROLLER_USE_LIBPQ" ZT_OFFICIAL=1 ZT_USE_X64_ASM_ED25519=1 one
make -j4 LDLIBS="-L/usr/pgsql-10/lib/ -lpqxx -lpq" CXXFLAGS="-I/usr/pgsql-10/include -fPIC" DEFS="-DZT_CONTROLLER_USE_LIBPQ" ZT_OFFICIAL=1 ZT_USE_X64_ASM_ED25519=1 one
central-controller-docker: central-controller
docker build -t gcr.io/zerotier-central/ztcentral-controller:${TIMESTAMP} -f docker/Dockerfile .