Andrew Bettison 3f1e0dd763 Finish sleep-retry on locked Rhizome db
Closes #2.

Rewrite all Rhizome db query code using new retry primitives defined in
"rhizome.h": sqlite_step_retry(), sqlite_retry(), sqlite_retry_done(), etc.
Replace all calls to sqlite3_prepare_v2() with sqlite_prepare() which does
proper error logging.

Fix bug: re-invoking sqlite3_blob_close() on SQLITE_BUSY return causes process
to abort.  Use an explicit BEGIN...COMMIT around the blob writing code instead.

Tested using repeated invocations of batphone/tests/meshms1.

Delete deprecated Rhizome db code in rhizome_crypto.c that has been replaced
with keyring file.
2012-08-24 15:38:39 +09:30
2012-02-27 12:45:50 +10:30
2012-05-11 08:14:00 +09:30
2012-06-27 16:54:42 +09:30
2012-05-11 08:14:00 +09:30
2012-05-11 08:14:00 +09:30
2012-05-24 17:11:55 +09:30
2012-08-02 11:29:37 +09:30
2012-08-09 12:14:32 +09:30
2012-07-27 11:28:14 +09:30
2012-08-23 12:31:07 +09:30
2012-08-23 12:31:07 +09:30
2012-08-23 12:31:07 +09:30
2012-05-14 18:37:32 +09:30
2012-08-21 13:32:55 +09:30
2011-08-10 15:39:40 +02:00
2012-08-23 12:31:07 +09:30
2012-08-23 12:31:07 +09:30
2012-08-23 12:31:07 +09:30
2012-08-14 14:37:16 +09:30
2012-08-09 12:14:32 +09:30
2012-08-01 17:54:02 +09:30
2012-08-23 12:31:07 +09:30
2012-08-17 19:42:11 +09:30
2012-08-09 13:30:52 +09:30
2012-08-23 12:31:07 +09:30
2012-07-24 16:04:59 +09:30
2012-07-10 14:33:14 +09:30
2012-02-23 12:45:42 +10:30
2012-08-23 12:31:07 +09:30
2011-10-25 13:39:14 +10:30

@PGS/20120615

Sometimes it is helpful to run more than one servald instance on a given machine
for debugging purposes.  To make this easier, there is a dummy interface driver
that servald knows about.  To use it:

1. create an empty file, e.g., dummynet0, somewhere convenient

2. For each servald instance you wish to use it, set the interface specification to include the dummynet file. Use a specification like "+>pathtodummynetfile", where pathtodummynetfile is the relative path from the instance path of that servald instance to the dummynet file.  For example, you might run:
   % servald config set interfaces "+eth0,+>../dummynet0"

3. Run each servald instance.  They should now use the dummy network.

NOTE: Because dummynets are files, not sockets, poll/select does not work on them.  As a result the main overlay loop has slightly different behaviour and timing characteristics when a dummynet is in use.

TODO: Convert dummynet interface to use a unixdomain socket, and a simple dummynet server that reflects packets among the clients connected, so that all socket semantics (including use of poll/select) are preserved.
Description
The Serval Project's core daemon that implements Distributed Numbering Architecture (DNA), MDP, VoMP, Rhizome, MeshMS, etc.
Readme 33 MiB
Languages
C 89.4%
Shell 5.9%
Java 2%
M4 1.1%
Assembly 0.6%
Other 0.9%