Jeremy Lakeman
1de2bc8f23
Fix replying to broadcast mdp ping
2012-10-09 17:03:17 +10:30
Jeremy Lakeman
1f379ea209
Add and preserve QOS bit flags in packet header
2012-10-09 16:17:07 +10:30
Andrew Bettison
6954325b04
Server process no longer becomes a zombie on Android
...
Fixes #21 . The problem was caused when the double-fork logic used in "servald
start" was clobbered in 5103176
. This meant that the servald daemon process on
Android no longer had a PPID=1, but the PID of the long-lived
"org.servalproject" parent process which called the JNI entry point. Killing
the servald process then caused it to become a zombie process, since the
org.servalproject does not habitually call wait(2). That caused the "servald
stop" logic to send five SIGHUPs to the zombie without any error, making it
appear that the process was not dying.
Reinstated the double-fork logic and added a new test case to ensure that the
daemon process does not become a zombie on being killed prematurely.
2012-10-08 17:20:19 +10:30
Jeremy Lakeman
c47e99d097
Fix issue #23 , regression in 'id' command
2012-10-08 14:59:58 +10:30
Jeremy Lakeman
7af919b02b
Merge commit 'ad3b31677540b638430eba0242457d788e8e5915'
...
Work on devices without sdcards
2012-10-08 09:40:43 +10:30
Andrew Bettison
89343c69cd
Merge branch 'rhizomedirect' into 'master'
2012-10-05 17:45:30 +09:30
Romain Vimont (®om)
ad3b316775
Do not try to open rhizome database if rhizome is disabled
2012-10-04 12:34:49 +02:00
gardners
dc3137707f
rhizome import bundle from file sans-manifest via http now works.
...
Must be enabled by using rhizome.api.addfile.*
Certainly polishing to be done, including using filename supplied
during HTTP POST. Now to fix that, and make it all work with
final rhizomeprotocol test case.
rhizomeprotocol test cases 8 and 9 currently fail post-merge. #9
2012-10-03 16:13:06 +02:00
gardners
92a5423b17
Moved rhizome direct imports to be in-process instead of
...
out-of-process. rhizomeprotocol push test still fails.
Investigating. #9
2012-10-03 12:28:21 +02:00
gardners
d11109bca5
Improve rhizome direct push/pull/sync command line parsing and
...
use of configuration. Not yet finished, but allows multiple
rhizome direct peers and non-http URLs. #9
2012-10-03 12:24:22 +02:00
Jeremy Lakeman
4340d97475
Add simple peer count command
2012-10-03 16:21:47 +09:30
Jeremy Lakeman
32cd46c165
Simplify id peers command, hide mdp implementation details from node info
2012-10-03 16:21:06 +09:30
Jeremy Lakeman
9a7c18c9f6
Only parse incoming packets with port numbers matching our expected responses
2012-10-02 16:15:30 +09:30
Jeremy Lakeman
fa7719fbe8
Write simple vomp console client
2012-09-28 15:23:50 +09:30
Jeremy Lakeman
2a7bd28e51
Extend packet queue to allow sending multiple copies of the same payload for reliability
2012-09-28 11:28:01 +09:30
Andrew Bettison
14721fab19
Merge branch 'solaris' into rhizomedirect
...
All test cases pass on Solaris (see issue #16 ) except the 'jni' tests because
there is no Java compiler available on Solaris, and the new 'rhizomeprotocol'
tests from the rhizomedirect branch, which have always failed.
2012-09-27 17:38:16 +09:30
Jeremy Lakeman
ac3864ff20
Reuse command line parsing framework with monitor interface
2012-09-25 13:31:34 +09:30
Jeremy Lakeman
dc8a453b7f
Add please explain message
...
- non-tick packets now include a poorly formed SELF_ANNOUNCE to correctly identify every packet sender
2012-09-20 10:28:01 +09:30
Jeremy Lakeman
481dc9218d
Return an error code if ping didn't hear any responses, always log statistics
2012-09-19 14:16:06 +09:30
Jeremy Lakeman
23f1110120
Add optional ping counter
2012-09-19 09:48:12 +09:30
Jeremy Lakeman
f845a18312
Send DNA lookup requests to configured directory service
2012-09-14 17:04:36 +09:30
Jeremy Lakeman
6483d9e0ae
Split client mdp functions so they can be built separately
2012-09-14 11:47:48 +09:30
gardners
6d725535f9
starting work on the actual synchronisation code for rhizome direct.
2012-09-07 22:53:16 +09:30
Jeremy Lakeman
cd67868d2a
Reduce spam from lookups
2012-09-07 13:07:59 +09:30
gardners
d3f5c6e598
Merged rhizome direct httpd back into main rhizome httpd server.
...
bundles can be imported via HTTP POST multi-part form. #9
2012-09-06 13:21:13 +09:30
Paul Gardner-Stephen
bba6839656
Initial stab at porting to Solaris.
...
It compiles without warning (with CC=gcc) but doesn't link
because NaCL doesn't build yet.
2012-09-05 20:42:50 +09:30
Jeremy Lakeman
e05806f25e
Separate routing calculation from resulting rules, refactor more code to use subscriber structure
2012-08-31 15:11:18 +09:30
Jeremy Lakeman
f6c899e107
Refactor overlay buffer interface to support simple parsing
2012-08-31 15:03:07 +09:30
Jeremy Lakeman
aa5706f9d7
Refactor routing node information to use new subscriber tree
2012-08-31 15:03:07 +09:30
gardners
2b29893a02
Initial work towards rhizome direct syncrhonisation functions #9
2012-08-31 12:58:37 +09:30
Andrew Bettison
d8fd9fa411
Refactor nanosleep(2) calls into sleep_ms() function
2012-08-21 13:35:33 +09:30
Daniel O'Connor
fc20a4768d
Use get_self_executable_path to resolve our name when calling
...
exec otherwise it will fail when given a relative path as we
chdir to / before trying it.
2012-08-20 15:02:00 +09:30
Jeremy Lakeman
3ab79d8e5b
Pass phone numbers in vomp call initiation
2012-08-13 14:01:57 +09:30
Daniel O'Connor
f453071251
Fix compilation in the non-JNI case
2012-08-10 16:55:38 +09:30
Jeremy Lakeman
f77e055988
Add timeout argument for dna lookup
2012-08-10 15:29:19 +09:30
Andrew Bettison
12d8bc0c12
Use new typedef time_ms_t everywhere
2012-08-09 12:14:32 +09:30
Andrew Bettison
f37ec5af09
Reduce use of stderr in many places
...
serval_packetvisualise() is now replaced by DEBUG_packet_visualise() which uses
logging system not stderr (so now it will appear in Android log).
Replaced several fprintf(stderr,...) with DEBUGF(...).
Command line only prints a full help message on "help" command -- a command
parse failure simply informs the user about the "help" command.
2012-08-01 17:54:02 +09:30
Andrew Bettison
240be25793
Replace overlay_gettime_ms() with gettime_ms()
2012-07-30 17:22:38 +09:30
Daniel O'Connor
09d0fecf28
Remove carnal knowledge of conf.c from serval.h and commandline.c by providing a function to set the instance path override.
2012-07-29 18:58:41 +09:30
Andrew Bettison
8db737ee6f
Quieten startup logging a bit
2012-07-27 19:59:16 +09:30
Andrew Bettison
2152c9267f
DEBUG_VERBOSE log messages for all command-line commands
2012-07-27 18:04:46 +09:30
Andrew Bettison
04b95d2590
Merge branch 'andrew' into 'master'
2012-07-25 18:04:16 +09:30
Jeremy Lakeman
5ec739c712
Add performance timing debug option
2012-07-25 13:33:30 +09:30
Andrew Bettison
6de247e576
Improve diagnosis of SEGV failures in tests
2012-07-24 15:39:36 +09:30
Andrew Bettison
f472ac9a8d
Lots of 'dnahelper' tests, all pass but one
...
Test fails because DNA helper logic does not yet impose a timeout on receiving
the "DONE" ACK after a request.
2012-07-23 18:29:57 +09:30
Andrew Bettison
3e0f8df18a
Fix bug in DID parsing, affects "set did" command
2012-07-23 15:17:21 +09:30
Andrew Bettison
30567c1d34
Start writing systematic 'dnahelper' tests
2012-07-23 12:23:17 +09:30
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
Andrew Bettison
5aac5a3854
Unfinished dnahelper implementation
2012-07-18 19:16:30 +09:30
Andrew Bettison
b50943d09c
Fix handling of empty payload (filesize = 0)
...
Do not add 'filehash' var to manifest if filesize=0
Do not accept 'filehash' var when parsing manifest with filesize=0
When responding to a new rhizome advertisement, do not try to HTTP
request a payload if filesize=0, just import the manifest directly
Various operations, eg "rhizome file add", do not report 'filehash'
fields where 'filesize' is zero
Do not delete rows from MANIFESTS table which have empty filehash
Various related bug fixes
2012-07-16 18:40:30 +09:30
Andrew Bettison
208a95a233
Replace validateSid() with str_is_subscriber_id()
2012-07-12 16:14:25 +09:30
Andrew Bettison
d2898ee22c
Add output fields to 'keyring add' command
2012-07-06 13:17:53 +09:30
Andrew Bettison
ab64b08ceb
Rewrite config file code
...
Gets rid of rotor in confValueGet() and duplicate config file parsing code
Currently fails three tests
2012-07-04 18:57:02 +09:30
Andrew Bettison
68ef34c119
Add 'id allpeers' command to facilitate testing
2012-07-04 12:06:15 +09:30
Andrew Bettison
2c87039307
Replace overlay_render_sid() with alloca_tohex_sid()
...
To eliminate timebomb bugs caused by rotor wraparound
2012-07-03 17:59:30 +09:30
gardners
02ca21a601
CHANGED DNA REPLY PACKET FORMAT BREAKING BACKWARDS COMPATIBILITY
...
... as part of working on work on DNA helper callout facility.
(DNA replies now contain a token that can be used to match them
against DNA requests as a happy side-effect).
2012-07-03 16:45:03 +09:30
Jeremy Lakeman
495de9e0ec
Add more profiling instrumentation
2012-07-03 15:50:04 +09:30
Andrew Bettison
8020ea3b74
Merge branch 'eventscheduler' into master
...
Conflicts:
commandline.c
monitor.c
overlay.c
overlay_interface.c
overlay_packetformats.c
rhizome_fetch.c
rhizome_http.c
rhizome_packetformats.c
serval.h
server.c
testdefs.sh
testframework.sh
tests/dnaprotocol
tests/server
2012-07-03 10:26:22 +09:30
Andrew Bettison
fc8df7d5d4
Config options for tick duration
2012-07-02 12:26:01 +09:30
Andrew Bettison
b368a3aab4
Add confValueGetInt64() function
2012-06-28 18:19:36 +09:30
Andrew Bettison
b9836af8a2
Fix debug logging in overlay_interface.c
...
Also fix bug that closed the logfile when forking the server process.
2012-06-28 17:34:21 +09:30
Andrew Bettison
9625190c6a
Improve debug code:
...
Debug bit mask is unsigned int everywhere.
Refactor DEBUG() macros a bit.
Add SERVALD_DEBUG_FILE env var to support test scripts.
Test defs put instance directories under $TFWVAR not $TFWTMP.
2012-06-28 15:24:43 +09:30
Andrew Bettison
3822d067e7
Remove unnecessary double-fork from server start
2012-06-26 17:27:19 +09:30
Andrew Bettison
889f9c4628
Re-instate prior server start code
...
Do not use server_probe().
Use setsid() instead of setpgrp().
Still uses double-fork technique, as advised in setsid(2) man page.
Return exit status 10 if already running, instead of logging an error and exit
status 255.
2012-06-26 16:07:24 +09:30
Andrew Bettison
19f7e32ba7
Re-instate prior server start code
...
Uses setsid() instead of setpgrp().
Still uses double-fork technique, as advised in setsid(2) man page.
Does not use server_probe().
2012-06-26 15:46:10 +09:30
Jeremy Lakeman
0ca4c16f39
Refactor node info to ignore stale responses without sending another request
2012-06-26 11:20:00 +09:30
gardners
b40a468276
Merge branch 'eventscheduler'
...
Conflicts:
monitor.c
serval.h
2012-06-25 16:50:23 +09:30
Andrew Bettison
1fbf957a9d
Clean up compiler warnings in commandline.c
2012-06-25 15:06:35 +09:30
Daniel O'Connor
05d8ac5d05
Don't treat the server already running as an error otherwise the Java code complains.
...
Emit a useful error if we couldn't get the PID.
2012-06-25 14:14:33 +09:30
Daniel O'Connor
8ad51554b4
Use the right variable to display the PID.
2012-06-25 14:11:16 +09:30
Daniel O'Connor
b0dad81b0c
Don't call daemon as the parent can't exit in JNI otherwise bad things will happen.
...
Copy the code for daemon from FreeBSD 8.x instead of the flying circus that was there before.
2012-06-25 14:01:50 +09:30
Daniel O'Connor
5103176d39
Remove server_probe() and use daemon() instead of a hand rolled version.
...
- server_probe() assumes abstract name space sockets.
- The hand rolled daemon doesn't work properly on BSD.
2012-06-22 16:05:43 +09:30
Andrew Bettison
274e5c007c
Merge branch 'master' into andrew
...
Conflicts:
log.c
2012-06-22 11:18:48 +09:30
gardners
0254ca0ab8
made dnaprotocol test more rigorous to ensure it really returns
...
results from each SID/servald instance.
Fixed bug in "keyring list" that was returning keyrings in
lower case instead of normalised form using overlay_render_sid()
2012-06-21 16:36:38 +09:30
gardners
2cb84bb8db
various fixes to new DNA URI response relating to parsing replies
...
that lacked DID and/or name field.
2012-06-21 16:36:37 +09:30
gardners
e5394dd143
added stubs for DNA lookup helper app (not yet complete).
...
cleaned up some unused variables.
2012-06-21 16:35:28 +09:30
gardners
3281f2c652
fixed introduced bug where "node info" failed to provide automatic
...
resolution of DIDs and names for local identities.
2012-06-21 11:45:20 +09:30
gardners
30e254560a
node info now understands new dna response packet format.
2012-06-21 11:45:07 +09:30
gardners
8ea37af64d
servald now can return arbitrary URIs in response to DNA requests.
2012-06-21 11:44:49 +09:30
gardners
b48fdb6567
added deeper timing checks to reveal that rhizome advertisements
...
are the slowest part -- need to add caching of manifests so that
we don't hit the database every interface tick.
2012-06-21 11:33:43 +09:30
Andrew Bettison
50ed301ccc
Fix failing tests from addition of rhizome list '_selfsigned' column
2012-06-12 11:48:15 +09:30
Andrew Bettison
7be0d9d00d
Pass author SID parameters in binary, not hex
2012-06-08 18:32:14 +09:30
Andrew Bettison
637ef02f30
Add _selfsigned column to "rhizome list" output
...
Add <pin,pin...> arg1 to "rhizome list" command, so it can open the keyring
Some tests in tests/rhizome fail
2012-06-08 18:25:43 +09:30
Andrew Bettison
7a71a521f8
Pass author SID parameters in binary, not hex
2012-06-08 15:27:15 +09:30
Andrew Bettison
a9ad1b6afc
Add <bsk> optional arg to "rhizome add file"
...
Improve regular expressions for common data types in test scripts
Revert column count field delimiter in "rhizome list" from ":" to "\n"
Add a few more test cases
2012-06-05 13:58:59 +09:30
Andrew Bettison
304db6e5f4
Fix SEGV bug in "rhizome extract file" command
...
Add optional <key> argument, validate and parse it properly.
2012-06-01 18:12:59 +09:30
Daniel O'Connor
8f409cc7c5
Remove unused variables.
2012-05-29 09:45:24 +09:30
Jeremy Lakeman
b3819835ca
Allow for huge result sets
2012-05-27 15:04:37 +09:30
gardners
4b96860535
prevent segfault in libserval.so
2012-05-26 15:46:08 +02:00
gardners
cf42cf08a4
cleanup some debugging.
2012-05-26 14:56:58 +02:00
gardners
b1e1a36898
fixed typo.
2012-05-26 14:36:00 +02:00
gardners
94d17a9260
more work on encrypting bundles. code passes all 23 rhizome tests.
2012-05-26 11:36:19 +02:00
gardners
2de6bb025a
rhizome_extract_file can now decrypt a file, and also uses
...
progressive blob operations so that we can extract files of
unlimited size.
2012-05-26 11:36:19 +02:00
gardners
5c40edb55d
Fixed bugs with importing files using user-supplied manifest
...
(was not decoding BKs)
2012-05-26 11:36:18 +02:00
gardners
04cc05d6e1
refactored manifest verification into a separate function
...
that is called only when needed, and marks a manifest as finalised
if the verifcation fails. reading a manifest now never sets
finalised flag, as either _finalise() or _verify() must be called.
2012-05-26 11:36:18 +02:00
gardners
9c62f07154
fixed some bugs with manifest preperation in new factored
...
manifest handling sequence.
2012-05-26 11:36:18 +02:00
gardners
e473e5b6df
some fixes to new refactored bundle handling code.
2012-05-26 11:36:18 +02:00
gardners
b0dca7e03f
merged in latest changes from team.
2012-05-26 11:36:18 +02:00
Andrew Bettison
8ec2fe53d4
Silence 'status unused' compiler warning
2012-05-25 15:59:57 +09:30
Andrew Bettison
49aec4d331
Improve rhizome manifest debugging
...
Move rhizome_new_manifest() out of rhizome_read_manifest_file() so that the
out-of-manifest report shows the names of the functions where the manifests
were really allocated.
2012-05-25 15:38:13 +09:30