mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-04-07 19:14:17 +00:00
Remove need to nul-terminate the received buffers in HTTP fetch reply handling and HTTP server request parsing. Remove redundant copying of data. More rigorous parsing code, probably less vulnerable to overrun exploits. Better debug logging of requests and responses.
@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.
Languages
C
89.4%
Shell
5.9%
Java
2%
M4
1.1%
Assembly
0.6%
Other
0.9%