Commit Graph

3066 Commits

Author SHA1 Message Date
Jeremy Lakeman
06f7eed260 Add msp test over unreliable link 2014-05-23 10:47:22 +09:30
Jeremy Lakeman
4dd2d2991e Use simulator for existing msp tests 2014-05-23 10:47:22 +09:30
Jeremy Lakeman
7420f46653 Create new AF_UNIX based network simulator 2014-05-23 10:47:22 +09:30
Jeremy Lakeman
33bbd7b52e Make sure only one bind request occurs at a time 2014-05-23 10:47:22 +09:30
Jeremy Lakeman
c361a9cb90 Don't reuse mdp ports that are already bound, release mdp bindings on msp close 2014-05-23 10:38:31 +09:30
Andrew Bettison
64237e4ab4 Improve test framework: return after fail()
So that functions can be used during teardown()
2014-05-22 15:32:16 +09:30
Jeremy Lakeman
506b6ed57c Call msp handler on a timer to prevent stalling 2014-05-22 14:22:17 +09:30
Andrew Bettison
885cf56c95 Fix "unused parameter" warnings for undefined HAVE_JNI_H 2014-05-22 14:17:36 +09:30
Andrew Bettison
24f3d50fd4 Add text of CC BY 4.0 license
Add LICENSE-DOCUMENTATION.md (commons deed) and CC-BY-4.0.md (legal
text)

All docs link to local commons deed instead of CC BY 4.0 web page
2014-05-21 17:37:23 +09:30
Jeremy Lakeman
c0c5412931 Add support for STOPping a connection before shutdown 2014-05-21 17:17:07 +09:30
Jeremy Lakeman
998a40938b Be more careful setting alarm times 2014-05-21 11:51:23 +09:30
Jeremy Lakeman
15cdcc4380 Squelch rhizome sync messages if rhizome is disabled 2014-05-21 10:27:56 +09:30
Andrew Bettison
2681967681 Add doc/README.md 2014-05-20 14:54:24 +09:30
Andrew Bettison
45f39cfacd Add copyright notices and CC-BY license to README.md and INSTALL.md 2014-05-20 14:52:57 +09:30
Andrew Bettison
1e6caa0e6c Add Tunnelling document (TCP over MSP) 2014-05-19 17:29:10 +09:30
Andrew Bettison
59b3015ae8 Add CC-BY-4.0 license text 2014-05-19 17:28:42 +09:30
Andrew Bettison
42d4ed0d43 Improve MSP documentation
Rename "Mesh Streaming Protocol" to "Mesh Stream Protocol"
2014-05-19 17:26:54 +09:30
Andrew Bettison
48ae5688bf Start MDP documentation, improve MSP documentation 2014-05-16 12:50:15 +09:30
Jeremy Lakeman
bcc4d8ce60 Add api for starting msp tunnel end points 2014-05-15 16:38:25 +09:30
Jeremy Lakeman
5f9ffefcfc Watch mdp socket on new tunnelled connections 2014-05-15 16:38:22 +09:30
Jeremy Lakeman
9e267ece21 Always set keyring to NULL after use. 2014-05-15 16:32:46 +09:30
Andrew Bettison
5463feeff7 Improve MSP API documentation 2014-05-15 16:28:06 +09:30
Andrew Bettison
12a0ca4e8f Improve MSP API
Replace struct msp_sock * with typedef MSP_SOCKET
Add new 'flags' arg to msp_socket(), unused for now
msp_send() returns ssize_t number of bytes sent; -1 for error
MSP handler returns size_t; number of bytes consumed
Add MSP_MESSAGE_SIZE definition
Rename msp_set_remote() -> msp_connect()
Rename msp_get_local_adr() -> msp_get_local()
Rename msp_get_remote_adr() -> msp_get_remote()
msp_set_local() takes (const struct *) arg2
msp_connect() takes (const struct *) arg2
void msp_set_local(), msp_connect(), msp_listen(), msp_set_handler()
2014-05-15 16:24:59 +09:30
Andrew Bettison
c9e2ed3038 time_ms_to_timeval() 2014-05-13 08:55:57 +09:30
Andrew Bettison
936db7bca3 Rename TIME_NEVER... to TIME_MS_NEVER... 2014-05-13 08:55:57 +09:30
Jeremy Lakeman
ca9faeef9b Remove respawn_on_crash behaviour, we aren't using or testing it 2014-05-12 13:44:51 +09:30
Jeremy Lakeman
342572730b Don't busy wait for forked processes to terminate 2014-05-12 13:44:50 +09:30
Jeremy Lakeman
8db634d2d9 Don't process MDP packets if the local address is invalid 2014-05-12 13:44:50 +09:30
Jeremy Lakeman
9ed507f740 Move rate limit code to separate file 2014-05-12 13:44:50 +09:30
Jeremy Lakeman
5b6ae35a73 Only use the best rtt calculation once per ack 2014-05-12 13:44:50 +09:30
Jeremy Lakeman
55db779f8c Remember specified rate limit 2014-05-12 13:44:50 +09:30
Jeremy Lakeman
eb08cf27ce Move msp retransmit time to #define'd const 2014-05-12 13:44:50 +09:30
Jeremy Lakeman
7bd34b7d9b Don't rebuild version.o if nothing has changed 2014-05-12 13:44:50 +09:30
Jeremy Lakeman
4a2b54de1b Warn if Makefile is out of date 2014-05-12 13:44:50 +09:30
Jeremy Lakeman
796eb6268c Fix list traversal and element freeing 2014-05-09 15:13:14 +09:30
Jeremy Lakeman
bb39bb871a Only unwatch if we were watching 2014-05-09 15:13:13 +09:30
Jeremy Lakeman
2a07093c5f Don't compare past the end of the parent key 2014-05-09 15:13:13 +09:30
Jeremy Lakeman
672104bdd8 Create extensible service discovery protocol, with initial basic implementation 2014-05-09 11:21:18 +09:30
Jeremy Lakeman
4204973052 Allow for more duplicates in 2hop test 2014-05-09 11:21:16 +09:30
Andrew Bettison
2c0efc6334 Set up SEGV crash handler in main() not server()
Now all commands will attempt to log a GDB backtrace on a crash, not
just the server daemon process.

Added strbuf_append_signal_name()
2014-05-08 14:24:00 +09:30
Jeremy Lakeman
7a3095de09 Detect abbreviation collisions with multiple identities 2014-05-07 17:03:43 +09:30
Andrew Bettison
7a2f1536bc Improve mdp_recv() error handling
Make all V2 MDP interface calls take a __whence argument

mdp_recv() always sets error before returning -1, does not set
errno=0 otherwise

mdp_recv() does not log errors on EINTR or EAGAIN (EWOULDBLOCK)

mdp_recv() sets errno=EOVERFLOW if local socket name is too long

mdp_recv() sets errno=EBADMSG if malformed or spurious packet
received

Remove redundant mdp_recv() error logging from "mdp ping" and
"config sync" and several "id" commands
2014-05-05 18:23:38 +09:30
Andrew Bettison
cd9f35f1c8 Improve "log.h", make logMessage() inline
Make logMessage() -- wrapper around vlogMessage() -- an inline
function and remove redundant conditional level != LOG_LEVEL_SILENT

Move logString() into log_util.c, refactor so outer loop now iterates
over lines in buffer, rather than over all log outputs

Rename log_backtrace() to logBacktrace() for consistency

Document __NOWHENCE__ value
2014-05-05 18:17:51 +09:30
Andrew Bettison
18c89b4b98 Fix bug in read_symlink(), improve logging 2014-05-05 18:12:25 +09:30
Andrew Bettison
f606daebc6 Move get_self_executable_path() into "os.h"/os.c 2014-05-05 18:12:01 +09:30
Andrew Bettison
df1814309b Improve MDP filter rules file syntax 2014-05-05 14:45:33 +09:30
Jeremy Lakeman
8ddd256b5c Add more asserts for ping stats, with some slack 2014-05-05 14:35:31 +09:30
Jeremy Lakeman
ab915a13fc Use routing table to check if a node is unreachable 2014-05-05 13:22:36 +09:30
Jeremy Lakeman
8ae76f7157 Track most recent ack from neighbours, prevent duplicate broadcast packets 2014-05-05 11:53:57 +09:30
Andrew Bettison
60201d78c9 Fix Android compile failure: st_mtim, UTIME_OMIT
Use utimes(2) instead of utimensat(2), use struct timeval instead of
struct timespec

Add strbuf helper functions for struct timeval and time_ms_t
2014-05-02 15:47:51 +09:30