The Serval Project's core daemon that implements Distributed Numbering Architecture (DNA), MDP, VoMP, Rhizome, MeshMS, etc.
Go to file
Andrew Bettison 0e5c5e0e98 More work on dnahelper, almost done
Servald starts DNA helper, receives startup ACK, sends requests, receives
responses, handles malformed helper responses, echoes dnahelper stderr lines to
log, sends MDP reply packet, waits for dead helper process, all asynchronously.
Shuts down helper process during servald shutdown.

Remaining issues:
 - Does not impose a timeout on helper responses.
 - Only the first URI is reported by the "dna lookup" command.
2012-07-20 18:17:43 +09:30
asterisk_include Added support for batmand.peers file for reliable peer querying. 2011-03-21 13:08:35 +10:30
java/org/servalproject/servald Add GPL header comment to Java source file 2012-05-09 19:05:15 +09:30
m4 Merge branch 'master' of github.com:servalproject/serval-dna 2012-04-23 20:41:52 +09:30
nacl - Move nacl-prepare-sources to nacl. 2012-02-27 12:45:50 +10:30
sqlite-amalgamation-3070900 Fix all trivial compiler warnings 2012-05-10 18:08:59 +09:30
tests More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
win32 Allow clients to request variables for all records by passing empty did. 2011-04-27 12:17:26 +09:30
.gitignore Ignore test log directory 2012-06-27 17:23:43 +09:30
aclocal.m4 Merge branch 'master' of github.com:servalproject/serval-dna 2012-04-23 20:41:52 +09:30
Android.mk Add strbuf_helpers.[ch] 2012-07-11 14:11:59 +09:30
asterisk_app.c Expunge old DNA protocol code (cleans up warnings) 2012-06-25 15:37:11 +09:30
audio_alsa.c work on bypass-audio. 2012-05-11 08:14:00 +09:30
audio_msm_g1.c Fix rhizome transfers 2012-06-27 16:54:42 +09:30
audio_reflector.c work on bypass-audio. 2012-05-11 08:14:00 +09:30
audiodevices.c work on bypass-audio. 2012-05-11 08:14:00 +09:30
batman.c Expunge setReason() 2012-05-24 17:11:55 +09:30
BUILD.txt Add configure fu to allow pa_phone.c to not be compiled. 2012-04-23 20:17:11 +09:30
ciphers.c Expunge setReason() 2012-05-24 17:11:55 +09:30
client.c Code improvements while debugging 'dnaprotocol' tests 2012-07-03 15:36:51 +09:30
codecs.c added stubs for DNA lookup helper app (not yet complete). 2012-06-21 16:35:28 +09:30
commandline.c More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
conf.c Finish rewriting configuration and logging code 2012-07-05 14:59:50 +09:30
config.guess Add other libtool scripts created by libtoolize -i 2012-04-24 11:46:35 +09:30
config.sub Add other libtool scripts created by libtoolize -i 2012-04-24 11:46:35 +09:30
configure.in Fix peer credential checking on BSD, replace write(s, m, strlen(m)) with a macro, factor out new monitor socke code. 2012-06-22 20:40:30 +09:30
dataformats.c Replace validateSid() with str_is_subscriber_id() 2012-07-12 16:14:25 +09:30
dna_helper.c More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
dna_identity.c Added not implemented flags to some functions. 2012-03-17 13:01:43 +10:30
dna.c Expunge old DNA protocol code (cleans up warnings) 2012-06-25 15:37:11 +09:30
dnawrap.c Added missing GPL license statements. 2011-12-21 20:25:05 +10:30
encode.c Put back a pile of files needed for building on osx, and also required 2012-03-15 10:57:38 +10:30
fdqueue.c Control logging from fdqueue.c with DEBUG_IO 2012-07-13 12:51:27 +09:30
fifo.c Add PA setup and FIFO code (still not plumbed into the main program) 2012-04-23 16:32:47 +09:30
fifo.h Add PA setup and FIFO code (still not plumbed into the main program) 2012-04-23 16:32:47 +09:30
gateway.c Refactor main() into main.c 2012-05-15 11:09:21 +09:30
install-sh Add install-sh created by "libtoolize -i" 2012-04-24 11:33:30 +09:30
jni.c Move randombytes() from jni.c to keyring.c so that it is available 2012-04-10 13:49:18 +09:30
keyring.c Add output fields to 'keyring add' command 2012-07-06 13:17:53 +09:30
log.c More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
lsif.c Merge branch 'eventscheduler' into master 2012-07-03 10:26:22 +09:30
ltmain.sh Add other libtool scripts created by libtoolize -i 2012-04-24 11:46:35 +09:30
macconfig Fixed broadcast address discovery to work on Mac. 2011-08-08 16:11:05 +09:30
main.c Move signal handler setup to main so it's only done once. 2012-06-25 16:24:33 +09:30
Makefile.in Add strbuf_helpers.[ch] 2012-07-11 14:11:59 +09:30
meshpotato_build Assorted unknown changes. Updated Makefile.in etc to properly build serval.c for building asterisk module. 2011-06-15 13:52:30 +09:30
mkdir.c Overhaul debug flags 2012-05-14 18:37:32 +09:30
monitor-cli.c Replace macros with functions 2012-07-10 16:33:39 +09:30
monitor.c Replace macros with functions 2012-07-10 16:33:39 +09:30
mpbuild Added mesh potato build script. 2011-08-10 15:39:40 +02:00
net.c More progress on dnahelper 2012-07-19 17:59:45 +09:30
openwrt-makefile Assorted unknown changes. Updated Makefile.in etc to properly build serval.c for building asterisk module. 2011-06-15 13:52:30 +09:30
overlay_abbreviations.c Replace overlay_render_sid() with alloca_tohex_sid() 2012-07-03 17:59:30 +09:30
overlay_advertise.c Replace overlay_render_sid() with alloca_tohex_sid() 2012-07-03 17:59:30 +09:30
overlay_broadcast.c Renamed mphlr.h to serval.h 2012-02-23 12:45:42 +10:30
overlay_buffer.c Add HTTP port number to rhizome advertise packet 2012-06-25 18:03:00 +09:30
overlay_interface.c Fix bugs revealed by 'rhizomeprotocol' test 2012-07-12 12:10:59 +09:30
overlay_mdp.c More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
overlay_packetformats.c Replace overlay_render_sid() with alloca_tohex_sid() 2012-07-03 17:59:30 +09:30
overlay_payload.c Refactor vomp call processing to reduce latency 2012-07-05 16:09:33 +09:30
overlay_route.c Refactor vomp call processing to reduce latency 2012-07-05 16:09:33 +09:30
overlay.c Add "rhizome.fetch_interval_ms" config option 2012-07-11 16:51:30 +09:30
pa_phone.c Add support for srtuct ucred on BSD. 2012-05-21 12:22:50 +09:30
packetformats.c More progress on dnahelper 2012-07-19 17:59:45 +09:30
peers.c Don't use hard coded port number. 2012-06-15 15:09:21 +09:30
performance_timing.c rename profiling structure 2012-07-02 16:04:00 +09:30
randombytes.c Added missing GPL license declaration to file. 2012-02-17 00:42:37 +10:30
README.DUMMYNETS Added explanation of changed semantics when using dummynets. 2012-06-15 15:13:45 +09:30
responses.c Renamed mphlr.h to serval.h 2012-02-23 12:45:42 +10:30
rhizome_bundle.c More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
rhizome_crypto.c added cache for positive and negative rhizome manifest signature 2012-06-26 21:21:46 +09:30
rhizome_database.c Fix broken log WARN messages in "rhizome list" 2012-07-17 18:07:02 +09:30
rhizome_fetch.c More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
rhizome_http.c More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
rhizome_packetformats.c Refactor rhizome HTTP request parsing 2012-07-13 11:06:10 +09:30
rhizome.c Fix handling of empty payload (filesize = 0) 2012-07-16 18:40:30 +09:30
rhizome.h Fix handling of empty payload (filesize = 0) 2012-07-16 18:40:30 +09:30
serval_packetvisualise.c added simple random input tester for packet visualisation. 2012-07-16 16:28:07 +09:30
serval.h More work on dnahelper, almost done 2012-07-20 18:17:43 +09:30
servalwrap.c Make commandline.c error messages appear on Android log 2012-05-03 14:50:14 +09:30
server.c More progress on dnahelper 2012-07-19 17:59:45 +09:30
sha2.c Silence strict-aliasing warnings 2012-07-10 14:33:14 +09:30
sha2.h Substantial preparatory work towards Rhizome/MeshMS store-and-forward 2011-12-13 19:34:12 +10:30
sighandlers.c more work on dna helper interface. 2012-06-21 16:35:28 +09:30
simulate.c Code improvements while debugging 'dnaprotocol' tests 2012-07-03 15:36:51 +09:30
sqlite3.c Put back a pile of files needed for building on osx, and also required 2012-03-15 10:57:38 +10:30
srandomdev.c Renamed mphlr.h to serval.h 2012-02-23 12:45:42 +10:30
strbuf_helpers.c More progress on dnahelper 2012-07-19 17:59:45 +09:30
strbuf_helpers.h Unfinished dnahelper implementation 2012-07-18 19:16:30 +09:30
strbuf.c Add strbuf_tohex() primitive 2012-07-20 18:17:04 +09:30
strbuf.h Add strbuf_tohex() primitive 2012-07-20 18:17:04 +09:30
testconfig.sh.in Trival test of dna JNI command line entry point 2012-04-23 18:25:26 +09:30
testdefs_rhizome.sh Improve 'rhizomeprotocol' tests 2012-07-17 14:09:35 +09:30
testdefs.sh Improve test scripts: use new 'wait_until' primitive 2012-07-11 16:51:29 +09:30
testframework.sh Fix test framework: shorter tmp dir name 2012-07-18 16:29:56 +09:30
testnacl.c Added test code for NaCl. 2011-10-25 13:39:14 +10:30
TODO Assorted unknown changes. Updated Makefile.in etc to properly build serval.c for building asterisk module. 2011-06-15 13:52:30 +09:30
trans_cache.c Remove unnecessary debug messages from transaction cache 2012-03-13 16:35:15 +10:30
vomp.c Clean up compile warnings and fix bugs 2012-07-06 10:14:39 +09: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.