Adam Ierymenko
28d0070ce2
Fix race in multiple DB mirroring configurations.
2019-08-08 15:29:13 -05:00
Adam Ierymenko
7bb0d9be1b
warning removal
2019-08-08 11:04:11 -05:00
Adam Ierymenko
af7a70bf02
cleanup
2019-08-07 21:11:48 -05:00
Adam Ierymenko
6073e7972f
Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev
2019-08-07 11:24:04 -05:00
Adam Ierymenko
f7e8d8f1dd
Fix LFDB path issue when using with Postgress in DBMirrorSet config
2019-08-07 11:23:48 -05:00
Grant Limberg
87016ae815
network update to upsert
2019-08-06 15:30:50 -07:00
Adam Ierymenko
3db0197865
Add try/catch in LFDB and add introspection into multicast subscriptions in client network status API
2019-08-06 15:22:57 -05:00
Adam Ierymenko
6174c0c103
Fix deadlock bug.
2019-08-06 13:20:37 -05:00
Adam Ierymenko
8898cb342b
.
2019-08-06 13:12:45 -05:00
Adam Ierymenko
9cc76d1115
Remove debug line
2019-08-06 11:01:08 -05:00
Adam Ierymenko
5289d3327c
Build fixes
2019-08-06 11:00:35 -05:00
Adam Ierymenko
00fb9c475e
More work on DB mirroring.
2019-08-06 10:42:54 -05:00
Adam Ierymenko
3c776675b3
Cruftectomy, work in progress on mirrorring
2019-08-06 08:51:23 -05:00
Adam Ierymenko
37d508ab96
Refactoring in prep for mirroring
2019-08-06 07:51:50 -05:00
Adam Ierymenko
f4f8fef82e
LFDB fix
2019-08-05 15:30:03 -05:00
Adam Ierymenko
a77b4ecddb
Add optional function in DB change listener for member online events.
2019-08-04 19:55:52 -07:00
Grant Limberg
21467596bc
Merge branch 'remove_network_status_table' into dev
2019-08-04 12:38:12 -07:00
Adam Ierymenko
bb99ef1351
Get rid of online status stuff in FileDB, not necessary at all.
2019-07-31 16:41:12 -07:00
Adam Ierymenko
eb7081d2a3
Fix for detecting changes in LF from other instances of the same controller.
2019-07-26 19:28:09 -07:00
Adam Ierymenko
d9befe3fb3
Debug code removal
2019-07-26 18:51:50 -07:00
Adam Ierymenko
0618452615
LF masking key should be a secret
2019-07-26 17:44:05 -07:00
Adam Ierymenko
f6b080b8a2
Abstract out change listener from controller itself to permit DBs to shadow changes from other DBs.
2019-07-26 17:39:00 -07:00
Adam Ierymenko
c8c33db1d1
.
2019-07-26 16:03:21 -07:00
Adam Ierymenko
ac2688de58
More LFDB work
2019-07-23 16:06:35 -07:00
Adam Ierymenko
5f11daadf2
Build fix
2019-07-23 09:30:40 -07:00
Adam Ierymenko
d4d350a285
Work in progress
2019-07-23 09:29:08 -07:00
Adam Ierymenko
5edd04638d
LFDB work in progress
2019-07-22 13:43:06 -07:00
Grant Limberg
861a319014
Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev
2019-07-16 15:20:05 -07:00
Grant Limberg
7afcc17024
no usleep() on Windows
2019-07-16 13:09:10 -07:00
Grant Limberg
2ab2f68725
Add a central database schema version check to central controller startup
2019-07-16 12:15:38 -07:00
Adam Ierymenko
90872c906f
Fix FileDB stuff and latency measurement.
2019-07-15 16:30:34 -05:00
Adam Ierymenko
bdc2ec1f5e
Track online status in FileDB
2019-07-15 15:27:53 -05:00
Grant Limberg
692733fffb
Don't write to ztc_network_status table anymore in central controller
2019-07-15 13:00:16 -07:00
Adam Ierymenko
700cc92083
Indent fix
2019-06-11 11:01:12 -07:00
Adam Ierymenko
848f822171
.
2019-06-06 10:04:11 -07:00
Grant Limberg
37d321afc8
dont spin as much in the onlineNotificationThread
2019-05-31 15:10:45 -07:00
Adam Ierymenko
cacdb445c7
Bump protocol version to 10
2019-05-14 13:54:27 -07:00
Grant Limberg
6a027c9c0a
amqp_consume_message now has a timeout
...
RabbitMQ::consume() will return an empty string if the call to amqp_consume_message times out
2019-04-18 14:57:06 -07:00
Grant Limberg
6014df2847
fix compile & sql errors
2019-04-04 15:11:01 -07:00
Grant Limberg
55a9e6e05e
Queue up inserts in onlineNotificationThread() into a multiple insert statement
2019-04-04 12:40:49 -07:00
Adam Ierymenko
2966eac64f
Get rid of ZT_FAST_MEMCPY because this is not really needed.
2019-03-22 15:50:15 -07:00
Grant Limberg
e3cc7c9a80
fix non-central controller builds
2019-03-11 11:16:44 -07:00
Grant Limberg
993d850f69
more logs
2019-03-08 10:50:33 -08:00
Grant Limberg
cda07b20a2
add mutex to channel numbering
2019-03-08 10:29:36 -08:00
Grant Limberg
171cc3e01a
reorder a couple of things
2019-03-08 10:20:19 -08:00
Grant Limberg
8141043560
finish up rabbitmq integration
2019-03-06 16:16:49 -08:00
Grant Limberg
fcb4221f97
rabbitMQ implementation
2019-03-05 15:11:50 -08:00
Grant Limberg
1f13374a4f
added struct for rabbitmq config
2019-03-04 17:01:16 -08:00
Grant Limberg
801401a6e7
Merge branch 'dev' of http://git.int.zerotier.com/ZeroTier/ZeroTierOne into dev
2019-03-04 16:31:36 -08:00
Grant Limberg
de1fc43cc5
added librabbitmq library for central controller
2019-03-04 16:27:39 -08:00
Grant Limberg
a788486803
Remove /controller/network/<network ID>/active
from controller documentation as that path no longer exists.
...
GitHub Issue #921
2019-02-25 12:13:55 -08:00
Adam Ierymenko
5b1ef2fb03
Take netmask bits from most specific route.
2019-02-01 14:05:29 -08:00
Adam Ierymenko
34c1023ba7
Wrong criteria was wrong. Now with less wrong.
2019-02-01 11:37:30 -08:00
Grant Limberg
7414418e2e
insert/update host_port on controller start
2019-01-21 11:29:13 -08:00
Grant Limberg
2294770e56
Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev
2019-01-21 11:18:25 -08:00
Grant Limberg
d98bdb5643
WIP: Pass listen port down to Postgres
2019-01-21 11:18:20 -08:00
Joseph Henry
0e597191b8
Updated licenses for 2019
2019-01-14 10:25:53 -08:00
Grant Limberg
0da2efa633
add application_name to pgbouncer connectio string
2018-12-10 12:26:20 -08:00
Grant Limberg
56a58f2b11
more logging of exits from the central controller
2018-12-06 13:26:53 -08:00
Grant Limberg
e959908c51
log message
2018-12-06 13:19:36 -08:00
Grant Limberg
6e3144370a
exit controller if onlinenotification thread exits while _run == 1
2018-12-06 13:10:59 -08:00
Grant Limberg
1c86f25fab
update # of threads for Postgres
2018-12-06 13:08:31 -08:00
Grant Limberg
328d08781a
finish pgbouncer integration
2018-12-03 16:12:15 -08:00
Grant Limberg
c8d5215870
add handling for PGBOUNCER_CONNSTR environment variable.
...
alows Central controllers to connect to PGBouncer on some threads. LISTEN threads still require a direct connection to the DB
2018-12-03 15:19:15 -08:00
Grant Limberg
b75f212d70
Replace RethinkDB section in controller/README with PostgreSQL
2018-11-30 10:41:54 -08:00
Grant Limberg
ccb856749f
back to plain old libpq in dev
2018-11-30 10:40:57 -08:00
Grant Limberg
e3381a4c1f
fix member init query
2018-11-13 16:19:55 -08:00
Grant Limberg
882b03436d
WIP: libpxx instead of libpq
2018-11-13 16:00:13 -08:00
Grant Limberg
2729db9555
exceptions
2018-11-11 22:55:53 -08:00
Adam Ierymenko
7048c77ebc
Merge branch 'dev' of http://git.int.zerotier.com/zerotier/ZeroTierOne into dev
2018-11-11 22:35:26 -08:00
Adam Ierymenko
c9c17eaddd
Retire RethinkDB, simple receive path multithreading.
2018-11-11 22:35:15 -08:00
Grant Limberg
4c0e7aa8b0
more error checking
2018-11-11 21:08:51 -08:00
Grant Limberg
761cc5c923
remove another noisy log line
2018-10-24 13:36:07 -07:00
Grant Limberg
d87fcca176
Fully operational pgsql controller
2018-10-24 12:06:17 -07:00
Grant Limberg
1da1409db2
get rid of a noisy log line
2018-09-28 10:58:26 -07:00
Grant Limberg
c1ea1329c1
Merge branch 'dev' into libpq
2018-09-28 10:56:40 -07:00
Grant Limberg
417aa9547b
Working controller & docker container for GKE
2018-09-28 10:55:39 -07:00
Adam Ierymenko
7a42416a78
Merge pull request #822 from dschulz/controller-patch1-dschulz
...
Add functionality to erase members from networks using file backend i…
2018-09-25 11:38:25 -07:00
Grant Limberg
5b222d0a09
cleanup connections after errors
2018-09-25 10:17:15 -07:00
Grant Limberg
0ec6215493
Send member/network change notifications via Postgres
2018-09-06 15:14:16 -07:00
Grant Limberg
de45bdb448
quieting things down a little bit
2018-09-05 17:03:49 -07:00
Grant Limberg
7b608c6ca3
Fix testing for true/false. Dont attempt to update member status on networks that we know dont exist
2018-09-05 16:54:23 -07:00
Grant Limberg
6ff78c9c26
fix crashes
2018-09-05 16:08:06 -07:00
Grant Limberg
d701f4e331
Added some exception hadling. Dont want to live *too* dangerously here
2018-09-05 11:49:07 -07:00
Grant Limberg
92abc92463
Theoretically we have PostgreSQL support now
2018-09-05 11:30:17 -07:00
Grant Limberg
a4be9ceb5a
dont insert/update creation time. Let the database handle it with the default value
2018-09-04 16:08:26 -07:00
Grant Limberg
e21b6e1daf
commit thread WIP
2018-09-04 16:05:34 -07:00
Grant Limberg
2e3b03fff9
members initialized
2018-09-04 14:51:35 -07:00
Grant Limberg
cd657da431
Online Update/Notify thread
2018-09-04 14:00:02 -07:00
Grant Limberg
17af09a5cc
Postgres Integration has begun
2018-08-31 14:58:15 -07:00
Diego Schulz
fc6dba0797
Add functionality to erase members from networks using file backend in controller microservice
...
Signed-off-by: Diego Schulz <dschulz@gmail.com>
2018-08-02 17:13:55 -04:00
Adam Ierymenko
f94aea8119
Return error 503 if RethinkDB is down when built as RethinkDB-based controller.
2018-07-11 10:42:31 -07:00
Adam Ierymenko
37ae3b2b80
Remote debug printf.
2018-07-03 12:52:35 -07:00
Adam Ierymenko
73e4286fbf
Fix two controller bugs: filesystem bug and another possible infinite recursion bug.
2018-07-03 12:51:41 -07:00
Grant Limberg
9463d4abe4
Fix for issue #778
...
Double quote before member name in `/controller/network/network_id/member` API
2018-06-05 12:55:39 -07:00
Adam Ierymenko
bbdb2aa672
Some work on IPv4 enabled ad-hoc networks.
2018-03-08 23:53:57 -08:00
Adam Ierymenko
574b24c082
docs
2018-03-08 22:41:42 -08:00
Adam Ierymenko
874a187c7f
cleanup
2018-03-08 22:39:51 -08:00
Adam Ierymenko
e8fb443313
Forgot one other use in RethinkDb driver.
2018-03-08 22:34:51 -08:00
Adam Ierymenko
57b96af2c4
Fix for FileDB _networkChanged / _memberChanged problem.
2018-03-08 22:33:08 -08:00
Adam Ierymenko
f7019d9e80
Tie up the rest of hub and spoke designated replicator multicast mode.
2018-01-26 22:14:10 -05:00
Adam Ierymenko
6d8e1e8783
More cleanup of old stuff.
2018-01-26 21:34:56 -05:00
Adam Ierymenko
4e689998f9
Sanity checks on array sizes and fix a bug in IPv4 auto-assign.
2018-01-12 10:38:19 -08:00
Adam Ierymenko
cd2a4b709c
Reduce maximum batcn size for status updates but increase the number of whole record commit threads.
2018-01-12 09:18:27 -08:00
Adam Ierymenko
f17cc1c6d8
cleanup
2018-01-10 15:03:39 -08:00
Adam Ierymenko
a1992d76f2
Doc updates and other fixes.
2018-01-10 14:31:28 -08:00
Adam Ierymenko
9bab49d2f9
Move DB stuff into Db.
2018-01-09 12:39:25 -08:00
Adam Ierymenko
0608704626
Some micro-optimizations, including a memcpy that is faster than Linux for most distro/compiler versions.
2017-12-15 11:03:20 -08:00
Adam Ierymenko
4704d115c4
Some controller fixes.
2017-12-14 08:53:24 -08:00
Adam Ierymenko
e4a10cc510
Member commit bug fix.
2017-12-08 19:00:38 -05:00
Adam Ierymenko
38cc89b2ca
Add time to rethinkdb message output in controller.
2017-12-08 12:39:20 -05:00
Adam Ierymenko
aeb1794be1
Comment out storage of secret ID in RethinkDb.
2017-12-07 16:04:41 -08:00
Adam Ierymenko
dae728124e
Fix to network path in conventional filesystem controller DB.
2017-12-07 14:42:33 -08:00
Adam Ierymenko
19bfef36f1
Build fix.
2017-12-07 16:45:43 -05:00
Adam Ierymenko
8d9464c414
docs, and make RethinkDB controller DB driver upsert into the Controller DB and also update the hostname field.
2017-12-07 13:39:25 -08:00
Adam Ierymenko
520b0601db
Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev
2017-12-05 14:51:06 -08:00
Adam Ierymenko
926ecf9640
docs
2017-12-05 14:50:59 -08:00
Adam Ierymenko
c57198decd
Add remoteTraceLevel to controller.
2017-12-05 17:49:20 -05:00
Adam Ierymenko
431716e249
Disable trace by default, stderr message improvements in RethinkDB driver.
2017-12-05 17:16:45 -05:00
Adam Ierymenko
694709f392
Add timestamp to network status.
2017-12-04 19:21:56 -05:00
Adam Ierymenko
0fb22df633
Get ephemeral status fields out of the configs. They do not belong there and it just complicates things.
2017-11-09 17:01:16 -05:00
Adam Ierymenko
f7f658605d
Move more ephemeral stuff to a tiny MemberLastRequest table instead of the main Member table.
2017-11-08 20:19:46 -05:00
Adam Ierymenko
192e5dbff8
Another fix for uptime logging.
2017-11-08 20:02:10 -05:00
Adam Ierymenko
ef224c3547
RethinkDB build fix.
2017-11-08 19:52:36 -05:00
Adam Ierymenko
c12b68a6b2
More Central work.
2017-11-08 11:32:01 -08:00
Adam Ierymenko
4166d8ca35
Fix a deadlock and some more work on RethinkDB (for central) integration.
2017-11-08 11:06:14 -08:00
Adam Ierymenko
0612879dec
Fix const.
2017-11-07 16:23:56 -08:00
Adam Ierymenko
3b21f946e4
Remove manual define of include rethinkdb driver symbol.
2017-11-07 16:18:48 -08:00
Adam Ierymenko
9f85371073
cleanup
2017-11-07 15:23:16 -08:00
Adam Ierymenko
1613f42d00
Re-integrate in-filesystem DB into new controller DB structure.
2017-11-07 14:44:46 -08:00
Adam Ierymenko
7fc9094d8e
More fixes to RethinkDB.
2017-11-03 22:40:26 -04:00
Adam Ierymenko
92c7070aa8
RethinkDB fixes.
2017-11-03 20:55:16 -04:00
Adam Ierymenko
b68bca35db
Linux build fixes, linux build rule for RethinkDB mode controller, also force disable shitty allocators in libstdc++.
2017-11-03 16:59:36 -04:00
Adam Ierymenko
d97adc8789
Preparing for test.
2017-11-03 12:32:56 -07:00
Adam Ierymenko
f5014d7d71
RethinkDB direct connectivity integration.
2017-11-03 11:39:27 -07:00
Adam Ierymenko
4e88c80a22
RethinkDB native connector work, minor fixes.
2017-11-02 07:05:11 -07:00
Adam Ierymenko
395d8b3139
Full and clearer implementation of GitHub issue #588
2017-10-24 13:33:53 -07:00
Grant Limberg
b1d60df44c
timestamps changed from uint64_t to int64_t
...
There were cases in the code where time calculations and comparisons were overflowing and causing connection instability. This will keep time calculations within expected ranges.
2017-10-02 15:52:57 -07:00
Adam Ierymenko
283e8d5bc0
Start threads in Central harnessed mode.
2017-08-31 18:01:21 -04:00
Adam Ierymenko
5bf5d5e9cb
Minor controller stuff.
2017-08-30 17:22:25 -07:00
Adam Ierymenko
106dff0d53
Make remote trace target null by default, which is probably what we want.
2017-08-18 13:52:10 -07:00
Adam Ierymenko
174ba8884e
Delete support in harnessed mode.
2017-08-17 13:10:10 -07:00
Adam Ierymenko
1ce0dcf0ea
Another Central harnessed mode fix.
2017-08-16 14:41:42 -07:00
Adam Ierymenko
50e7ea088b
More work on controller for new Central harnessed mode, remove old http mode.
2017-08-16 14:14:49 -07:00
Adam Ierymenko
23fe8975e7
.
2017-08-14 11:44:07 -07:00
Adam Ierymenko
1c04cc0485
.
2017-08-09 17:42:35 -07:00
Adam Ierymenko
2c682b4d1c
Small controller revisions, first run of controller API model JavaScript.
2017-08-09 14:37:19 -07:00
Adam Ierymenko
e4823381c6
.
2017-07-19 15:16:15 -07:00
Adam Ierymenko
66feaeb519
.
2017-07-19 15:06:23 -07:00
Adam Ierymenko
8c6b833fb3
Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev
2017-07-19 14:13:23 -07:00
Adam Ierymenko
b62296a40b
Bug fixes in new harness mode.
2017-07-19 14:13:17 -07:00
Grant Limberg
fc7728212f
Fix ifndef on Windows
2017-07-18 15:59:11 -07:00
Adam Ierymenko
31785f7f6e
Automatic periodic status dump from controller.
2017-07-18 15:36:33 -07:00
Adam Ierymenko
ae65eb5105
Cleanup and replace trace field names with sane ones because usability > a few bytes.
2017-07-18 14:28:38 -07:00
Adam Ierymenko
727ccb1125
Cleanup and stdin/stdout harness mode for controller.
2017-07-18 13:57:37 -07:00
Adam Ierymenko
1685659e37
Remote tracing works.
2017-07-17 17:02:50 -07:00
Adam Ierymenko
d9552fb120
Add remoteTraceTarget to network and member configs in controller.
2017-07-14 14:33:36 -07:00
Adam Ierymenko
4ecc0c59ca
Plumbing through of remote trace into controller code.
2017-07-14 13:03:16 -07:00
Adam Ierymenko
e14d5d49a1
Merge branch 'master' into dev
2017-07-07 09:36:54 -07:00
Adam Ierymenko
782b2b1514
Merge pull request #537 from laduke/patch-1
...
Update README.md
2017-07-07 09:32:37 -07:00
Monty A
a274e774ee
Clarification on how to use JSON API with secret
...
Makes it clear on how to use the authtoken.secret file when making requests.
2017-07-07 10:11:21 +01:00
Adam Ierymenko
d2415dee00
Cleanup.
2017-07-06 16:11:11 -07:00
Adam Ierymenko
355cce3938
Rename Utils::snprintf due to it being a #define on one platform.
2017-06-27 11:31:29 -07:00
Travis LaDuke
9b2e08dd09
Update README.md
...
We've had multiple questions in the community chat regarding posting new
network and getting the curl syntax correct.
2017-06-26 11:53:35 -07:00
Adam Ierymenko
2ec88e8008
Remove old circuit test code. Rules engine will let us do this much better and more simply.
2017-05-30 10:19:45 -07:00
Adam Ierymenko
236a952458
typo
2017-05-11 14:26:46 -07:00
Adam Ierymenko
426b7c2c76
Stupid bug is stupid.
2017-05-11 14:13:38 -07:00
Adam Ierymenko
d905607353
Small optimizations.
2017-05-08 08:35:55 -07:00
Adam Ierymenko
909a14fb48
MTU support in controller.
2017-05-04 17:22:24 -07:00
Adam Ierymenko
39db45e144
Fix crash on exit (sometimes) in controller.
2017-05-03 09:48:08 -07:00
Adam Ierymenko
d7c99728bc
Echo back ping payload.
2017-05-02 17:28:18 -07:00
Adam Ierymenko
8e19188f49
Do the sometimes rather big "pong" in a background worker thread.
2017-05-02 16:58:51 -07:00
Adam Ierymenko
625e3e8e25
Tiny optimization to prealloc string space.
2017-05-02 13:53:47 -07:00
Adam Ierymenko
fde99e2fcf
Fix for post size limit in Http library.
2017-05-02 12:08:53 -07:00
Adam Ierymenko
132643cd4a
Fix small issue preventing pongs if there are never seen members.
2017-05-02 10:34:33 -07:00
Adam Ierymenko
faf7b81c01
Send last requets time in status, and do not set physicalAddr unless we know one.
2017-05-01 15:48:52 -07:00
Adam Ierymenko
bcc6799902
Send member uptime in pong posts.
2017-05-01 15:23:21 -07:00
Adam Ierymenko
718e1d6c08
Finish removing constantly changing stuff from controller.
2017-05-01 13:21:26 -07:00
Adam Ierymenko
a9ce773584
Remove lastModified field in config which literally nothing uses anywhere, and prevent some unnecessary writes.
2017-04-28 19:58:21 -07:00
Adam Ierymenko
62578a2162
Reduce memory use and a bit of cleanup.
2017-04-27 19:36:03 -07:00
Adam Ierymenko
9e80db0fd1
Cleanup, fix a valgrind error, stack use reduction.
2017-04-27 00:59:36 -07:00
Adam Ierymenko
e8ab6adf89
Deadlock fix.
2017-04-26 12:17:43 -07:00
Adam Ierymenko
7c184cf991
Another performance improvement to controller.
2017-04-26 10:35:59 -07:00
Adam Ierymenko
1205578935
Big cleanup of controller code, should help performance.
2017-04-26 06:48:08 -07:00
Adam Ierymenko
4e77365e8d
Remove a little cruft.
2017-04-25 16:17:54 -07:00
Adam Ierymenko
4f2a779769
JSONDB performance improvements, threading fix.
2017-04-24 20:51:02 -07:00
Adam Ierymenko
cafbe44dde
Controller optimizations -- make locking more fine-grained, use true hardware concurrency, etc.
2017-04-24 19:16:36 -07:00
Adam Ierymenko
f4feccc626
Do not serve controller requests until init is done.
2017-04-24 09:09:04 -07:00
Adam Ierymenko
ba0d73d102
Windows build fixes.
2017-04-20 10:21:40 -07:00
Adam Ierymenko
bc61357a44
HTTP backend support for JSONDB
2017-04-18 17:37:44 -07:00
Adam Ierymenko
f6d92eb737
JSONDB fix.
2017-04-18 13:48:19 -07:00
Adam Ierymenko
b48a70db2e
Merge branch 'dev' of http://10.6.6.2/zerotier/ZeroTierOne into dev
2017-04-04 08:39:22 -07:00
Adam Ierymenko
cd050b3423
Performance improvement in controller.
2017-04-04 08:39:19 -07:00
Adam Ierymenko
eddbc7e757
Logic simplification, cleanup, and memory use improvements in Membership. Also fix an issue that may cause network instability in some cases.
2017-04-04 08:07:38 -07:00
Adam Ierymenko
e5284771e4
Add ping/pong to API so controller supervisor in Central can do a full-path check of controller uptime, etc.
2017-03-30 09:54:04 -07:00
Adam Ierymenko
57b5a33fbb
Fix bug preventing default from being set to null if already set to an integer.
2017-03-29 12:32:59 -07:00
Adam Ierymenko
e4896b257f
Add thread PTR that gets passed through the entire ZT core call stack and then passed to handler functions resulting from a call.
2017-03-27 17:03:17 -07:00
Adam Ierymenko
6bb19e7947
build fix
2017-03-21 09:08:32 -07:00
Adam Ierymenko
5268909075
Add a facility for full flow-through uptime test of controller by Central.
2017-03-21 06:31:15 -07:00
Adam Ierymenko
c62141fd98
Make controller do a simple write-through cache without revalidating. Means you must restart if files change on disk, but will decrease I/O considerably.
2017-03-21 06:15:49 -07:00
Adam Ierymenko
4f3f471b4c
GitHub issue #460
2017-03-17 18:19:51 -07:00
Adam Ierymenko
8f592ff6e8
Controller performance tweaks.
2017-03-13 13:58:29 -07:00
Adam Ierymenko
37629aaf87
Use cache on requests to decrease DB load.
2017-03-13 12:22:06 -07:00
Adam Ierymenko
7ea7e1898a
Fix a bug that could cause duplicate IP address assignment on networks if many new members join the controller at once.
2017-03-06 16:21:49 -08:00
Adam Ierymenko
5e6a4e5f5e
Send revocations automatically on deauth for instant kill, also fix some issues with the RP.
2017-03-06 15:12:28 -08:00
Adam Ierymenko
66dfc33de9
Fix circuit test post in controller.
2017-03-06 11:23:46 -08:00
Adam Ierymenko
a109d341ef
Send timestamp with new circuit test response.
2017-03-02 14:35:38 -08:00
Adam Ierymenko
a577b8d381
Update how controller handles circuit tests -- save results to filesystem.
2017-03-01 16:33:34 -08:00
Adam Ierymenko
2b10a982e9
Match on tag sender equals or tag recipient equals.
2017-02-28 09:22:10 -08:00
Adam Ierymenko
10185e92fa
Certificate of ownership -- used to secure against IP address spoofing, especially for IPv4 and regular IPv6.
2017-02-23 11:47:36 -08:00
Adam Ierymenko
54fa73844c
Fix crash.
2017-02-21 13:48:29 -08:00
Adam Ierymenko
32f5a0ab18
Add default tag values and default set capabilities for new members.
2017-02-21 13:27:20 -08:00
Adam Ierymenko
672f17c6e9
Add a mask and value range to the IP tos rule field. This allows TOS to be matched more usefully. This will break anyone using tos in the beta, but nobody seems to be and its pre-release so now is the time.
2017-02-07 09:33:39 -08:00
Adam Ierymenko
ac3e883c05
One more place to add "break".
2017-02-06 14:07:30 -08:00
Adam Ierymenko
31db768e4d
A bit of code cleanup.
2017-02-04 00:23:31 -08:00
Adam Ierymenko
fd460d93c4
docs
2017-01-19 10:53:44 -08:00
Adam Ierymenko
e9007b1f56
NodeJS migration script for old Sqlite controller.db to new controller data format.
2017-01-19 10:44:26 -08:00
Adam Ierymenko
d150f9b2bd
Windows update build in Advanced Installer, and warning removal.
2017-01-13 15:19:59 -08:00
Adam Ierymenko
a064e19b8a
Refactor some JSON stuff for performance, and fix a build error.
2017-01-10 13:51:10 -08:00
Adam Ierymenko
bf2b9e3692
Auto-authorize new members on public networks properly.
2016-12-22 18:52:34 -08:00
Adam Ierymenko
0d066e3b08
Fix JSON parse bug in REDIRECT target.
2016-12-22 18:26:43 -08:00
Adam Ierymenko
fe530548bb
Fix MATCH_RANDOM in controller.
2016-12-22 16:57:45 -08:00
Adam Ierymenko
a54c2b438c
Basic support for streaming of changes via stdout from controller.
2016-12-15 15:08:47 -08:00
Adam Ierymenko
ccdd4ffda7
Move split() to OSUtils since it is not used in core.
2016-11-18 15:49:28 -08:00
Adam Ierymenko
25f9c294dc
Small bug fix and warning removal.
2016-11-18 13:01:45 -08:00
Adam Ierymenko
07b2a3818c
Fix TTL scaling in cert.
2016-11-15 14:26:05 -08:00
Adam Ierymenko
15c6e2ec70
Fix member deauthorization time threshold bug.
2016-11-15 14:06:25 -08:00
Adam Ierymenko
e26bee45fb
Multithreading in network controller. Threads are only started if controller is used.
2016-11-10 13:57:01 -08:00
Adam Ierymenko
1b10d3413a
Use circuit breaker only for requests.
2016-11-10 13:08:43 -08:00
Adam Ierymenko
f0fcd222a1
Actually push updates when things change.
2016-11-10 12:54:43 -08:00
Adam Ierymenko
298e4a9f14
Also avoid sending tags and caps to old members since there is no point.
2016-11-10 12:33:09 -08:00
Adam Ierymenko
226123ca08
Refactor controller to permit sending of pushes as well as just replies to config requests.
2016-11-10 11:54:47 -08:00
Adam Ierymenko
5ebf5077f5
Log last meta-data in controller, and ease up just a bit on keepalives.
2016-11-09 17:11:10 -08:00
Adam Ierymenko
eea712a1ae
Field in wrong place fixed.
2016-11-09 13:26:14 -08:00
Adam Ierymenko
1ebfca666d
Memo-ize some computed stuff to control CPU utilization.
2016-11-09 12:34:20 -08:00
Adam Ierymenko
3d948a930e
Send a blanket rule to old versions. New versions will still bidirecitonally enforce on the inbound side.
2016-11-08 14:24:30 -08:00
Adam Ierymenko
4524899e4d
Update LM time on members on request.
2016-11-08 12:41:27 -08:00
Adam Ierymenko
360c84e035
Minor fixes.
2016-11-08 00:05:18 +00:00
Adam Ierymenko
4868d21526
Bug fixes in controller refactor.
2016-11-07 23:49:03 +00:00
Adam Ierymenko
5f63d5039b
Bug fixes, self test of JSONDB disabled by default.
2016-11-07 14:01:23 -08:00
Adam Ierymenko
a454a37a6e
Self test JSONDB.
2016-11-07 13:27:17 -08:00
Adam Ierymenko
a78d7311a6
Fix network list API call.
2016-11-04 16:23:41 -07:00
Adam Ierymenko
08ff666e99
.
2016-11-04 16:14:58 -07:00
Adam Ierymenko
0d108d37f6
.
2016-11-04 16:12:44 -07:00
Adam Ierymenko
cae9041c2a
.
2016-11-04 15:52:01 -07:00
Adam Ierymenko
330a07a554
cleanup
2016-11-04 15:48:23 -07:00
Adam Ierymenko
7729cbe313
Fix ambiguous error on some compilers.
2016-11-04 15:34:49 -07:00
Adam Ierymenko
b03c7b2f30
Refactor controller to use split-out DB for better performance and less ugly.
2016-11-04 15:18:31 -07:00
Adam Ierymenko
3c00cd0f88
Separate out JSON store from controller code.
2016-11-03 14:17:46 -07:00
Grant Limberg
8ffae313fd
add new files & remove old ones from VS project. Now builds & runs on Windows again
2016-11-03 12:10:50 -07:00
Adam Ierymenko
2cb760e0ac
Fix ICMP json.
2016-10-13 14:14:46 -07:00
Adam Ierymenko
2d6a4e5974
cleanup
2016-10-13 13:52:45 -07:00
Adam Ierymenko
e2509af163
Fix bug in default rules init in new networks.
2016-10-12 12:30:32 -07:00
Adam Ierymenko
e53f63ca87
Broke down and added an OR to the rules engine. It is now possible to have a series of MATCHes that are ORed.
2016-10-11 12:00:16 -07:00
Adam Ierymenko
45c4ccb153
Add a tags both equal match.
2016-10-05 16:38:42 -07:00
Adam Ierymenko
adeb7e7da0
Make capability flags match more user-friendly and appropriate since "match any flag" is generally what we want.
2016-10-05 12:54:46 -07:00
Adam Ierymenko
988049f39b
Add new rule to rules engine: random match.
2016-09-30 14:07:00 -07:00
Adam Ierymenko
f0794e09b7
Controller cleanup.
2016-09-30 13:04:26 -07:00
Adam Ierymenko
1eeebba2f7
Drop old /active path from network.
2016-09-29 17:59:27 -07:00
Adam Ierymenko
2fc3d12fb6
Minor tweaks to member code in controller, and fix Linux build.
2016-09-29 14:48:39 -07:00
Adam Ierymenko
7e4b6b594b
It now builds.
2016-09-26 17:05:39 -07:00
Adam Ierymenko
1f74dd4589
Revocation work in progress, add WATCH which is TEE with implicit rate sync (thanks JG@DCVC!), and clean up some cruft in Network.
2016-09-23 16:08:38 -07:00
Adam Ierymenko
68e549233d
Revise bearer token code in controller, and add relay policy as a meta-data item presented to controller by nodes (to facilitate future meshiness).
2016-09-15 13:17:37 -07:00
Adam Ierymenko
ab9afbc749
(1) Public networks now get COMs even though they do not gate with them since they will need them to push auth for multicast stuff, (2) added a bunch of rate limit circuit breakers for anti-DOS, (3) cleanup.
2016-09-09 11:36:10 -07:00
Adam Ierymenko
0d4109a9f1
More refactoring to clean up code, and add a gate function to make sure we do not handle OK packets we did not expect. This hardens up a few potential edge cases around security, since such messages might be used to e.g. pollute a cache and DOS under certain conditions.
2016-09-09 08:43:58 -07:00
Adam Ierymenko
c9ee8612e4
Credential TTL (tags/capabilities) should be credential time max delta, since we could get pushed one that is newer.
2016-09-07 12:12:52 -07:00
Adam Ierymenko
74afef8eb1
Think through and refine a few things in rules, especially edge case TEE and REDIRECT behavior and semantics.
2016-08-31 16:50:22 -07:00
Adam Ierymenko
54489a7f61
rename SAMENESS to DIFFERENCE which is less confusing
2016-08-31 14:14:58 -07:00
Adam Ierymenko
8e3004591b
Add overlooked MATCH_ICMP to rule set.
2016-08-31 14:01:15 -07:00
Adam Ierymenko
7a00036954
Tweak log length to fit JSON for members within two 4096-kb blocks.
2016-08-29 18:10:02 -07:00
Adam Ierymenko
914c42537c
Type fixes.
2016-08-29 17:48:36 -07:00
Adam Ierymenko
77c2bf3ad9
Kill dead field from network JSON.
2016-08-29 14:47:19 -07:00
Adam Ierymenko
297b1b4258
Another tiny API bug fix.
2016-08-26 14:16:55 -07:00
Adam Ierymenko
35ac995d05
Fix setting of v6AssignMode in controller.
2016-08-26 14:04:27 -07:00
Adam Ierymenko
ded5a53a6c
Documentation updates, add rules engine revision to network config request meta-data.
2016-08-26 10:38:43 -07:00
Adam Ierymenko
d637988ccf
Fix chicken or egg problem in tags, and better filter debug instrumentation.
2016-08-25 18:21:20 -07:00
Adam Ierymenko
858e8c5217
one more...
2016-08-25 16:28:54 -07:00
Adam Ierymenko
df1ce856c9
A little bit more controller code cleanup.
2016-08-25 16:25:28 -07:00
Adam Ierymenko
b5e0d014ab
Controller bug fixes
2016-08-25 16:08:40 -07:00
Adam Ierymenko
5eaf397a94
Add a debug log feature in the filter, which only works if enabled in Network.cpp.
2016-08-25 13:31:23 -07:00
Adam Ierymenko
1814016eb7
Add daemon thread to controller and move network member cache refreshes there.
2016-08-25 11:26:45 -07:00
Adam Ierymenko
6ecb42b031
docs and null check in controller code
2016-08-25 10:46:03 -07:00
Adam Ierymenko
60bc291414
Add noAutoAssignIps for member of networks.
2016-08-24 17:05:43 -07:00
Adam Ierymenko
ccea3d04d6
Push NETWORK_CONFIG_REFRESH on POSTs to /member/... in controller.
2016-08-24 14:28:16 -07:00
Adam Ierymenko
8e3463d47a
Add length limit to TEE and REDIRECT, and completely factor out old C json-parser to eliminate a dependency.
2016-08-24 13:37:57 -07:00
Adam Ierymenko
8d594f8b53
cleanup
2016-08-23 16:05:10 -07:00
Adam Ierymenko
5f4df0c6a9
Controller cleanup and perf improvements.
2016-08-23 15:30:36 -07:00
Adam Ierymenko
32fa061700
Compute credential TTL et al.
2016-08-23 13:02:59 -07:00
Adam Ierymenko
9a3c652a51
Get rid of expiration in Capability and Tag and move this to NetworkConfig so it can be set network-wide and reset if needed. Also add NetworkConfig field for this and centralize checking of credential time validity.
2016-08-22 18:06:46 -07:00
Adam Ierymenko
b0d888d235
Signing of Capability and Tag objects.
2016-08-22 14:25:59 -07:00
Adam Ierymenko
4dce71879f
.
2016-08-18 18:18:50 -07:00
Adam Ierymenko
212a5af9a5
Capabilities and tags in POST JSON.
2016-08-18 14:37:56 -07:00
Adam Ierymenko
1cadbfb4d1
Little fixes.
2016-08-18 13:47:02 -07:00
Adam Ierymenko
f119c4a456
Cache network members for performance, add network non-persisted fields.
2016-08-18 12:59:48 -07:00
Adam Ierymenko
faa9a06bf5
Controller fixes...
2016-08-17 17:37:37 -07:00
Adam Ierymenko
b7ebf6edbf
Cleanup and log how member was authorized.
2016-08-17 13:54:32 -07:00
Adam Ierymenko
b72847d504
Finally implement network join auth tokens, at least at the protocol level.
2016-08-17 13:41:45 -07:00
Adam Ierymenko
168b86fdcd
Controller docs and API fix.
2016-08-17 12:27:07 -07:00
Adam Ierymenko
a13f4d8353
We now always build the controller in ZeroTier One, at least for desktop and server targets. Also means that ZeroTier One now requires C++11. (Still keeping C++11 out of the core in node/ though.)
2016-08-17 10:42:32 -07:00
Adam Ierymenko
cc808cc2dd
Rules parsing stuff.
2016-08-17 10:25:25 -07:00