Andrew Bettison
93c38a764d
Improve servald 'config' 'set' and 'del' commands
...
Return exit status 2 if the new config is invalid in any way.
2012-12-04 18:20:53 +10:30
Andrew Bettison
71ed78e058
Make all 'config' tests pass
...
Change a test case: configuration options are now case sensitive.
Fix config file load and parse logic in conf.c, always copy 'debug' flags
from config.debug.
The config schema 'interfaces' option is no longer MANDATORY.
Introduce new CLIFLAG_PERMISSIVE_CONFIG to supress bad-config ERROR messages
from the 'config set' and 'config get' commands.
Refactor cli_execute() into cli_parse() and cli_invoke(). Use *const* struct
command_line_option everywhere.
2012-12-04 16:52:49 +10:30
Andrew Bettison
caa209fc1d
Integrate new config into servald
...
Not passing any tests yet, but compiles and links and simple uses do not
SEGV.
2012-12-04 14:12:28 +10:30
Jeremy Lakeman
d5f78bcffe
Rework reachable link flags for simpler bitmask tests
2012-11-30 14:38:09 +10:30
Jeremy Lakeman
e0878644fe
Add command to dump routing table
2012-11-28 15:43:58 +10:30
Jeremy Lakeman
f159e15901
Simplify payload length storage
2012-11-28 15:43:57 +10:30
Jeremy Lakeman
7322fbce71
Fix ping message format
2012-11-20 10:25:33 +10:30
Andrew Bettison
21a0f31ae4
Merge branch 'whacktmps' into 'master'
2012-11-15 13:41:45 +10:30
Andrew Bettison
6395f757cc
Fix bugs in earlier conf/log recursion logic
...
Reinstate better recursion control in conf.c, remove from log.c.
Add <kludge> comment to "config set" code, add the same kludge to "config
del".
2012-11-15 12:38:17 +10:30
Andrew Bettison
f2d6c6d522
Kludge "config set" to fix Batphone upgrade bug
2012-11-14 13:16:23 +10:30
Jeremy Lakeman
7c6cdac1b2
Improve command line usage information
2012-11-14 12:27:47 +10:30
Jeremy Lakeman
10bde11918
Remove resolution of peer details from node info command
2012-11-14 12:17:41 +10:30
Jeremy Lakeman
dd93f201e3
Add separate reverse lookup command
2012-11-14 12:17:14 +10:30
Andrew Bettison
5751569b59
Rhizome extract manifest to '-' writes to output
...
Instead of specifying a file path, if the file is given as '-' then the content
of the manifest is output in the 'manifest' key-value pair instead of written
to a file.
2012-11-07 20:29:12 +10:30
Andrew Bettison
00f9130f16
Get rid of unwanted DEBUG line
2012-11-07 17:27:40 +10:30
Andrew Bettison
5185c944c9
JNI interface returns byte[] instead of String
...
This allows the output fields of any command to contain nul characters, which
paves the way for extracting a manifest or other binary data directly instead
of having to write it into a temporary file.
2012-11-07 17:12:04 +10:30
Andrew Bettison
4450116472
Refactor string functions, add str_fromprint()
...
Move lots of non-Serval-specific string functions from "serval.h"/dataformats.c
to "str.h"/str.c.
Add str_fromprint() function that reverses the effect of toprint(): interprets
escape sequences in the source string "\n\t\r\0\xHH\\" and replaces them with a
single char in the destination string.
2012-11-07 16:42:45 +10:30
Jeremy Lakeman
de95bb3971
Gracefully disable rhizome if the database cannot be opened
...
- close database after every command line operation
- don't cache rhizome enabled configuration
- don't send advertisements unless the database is open and the web server is running
- don't provess advertisements unless the database is open
2012-10-29 13:05:03 +10:30
gardners
499c4018bf
Imported ref10/ implementation of crypto_sign from supercop-20120525
...
as recommended a while back by Dan Bernstein as offering the fastest
implementation of the crypto_sign() primitives for ARM.
Indeed this implementation IS faster. See comparison below for a
Rock 500 handset (800MHz(?) ARM6, no NEON):
Original ref/ implementation on an R500 stock rom (non-rooted)::
mean signature generation time = 96.80ms
mean signature verification time = 272.20ms
ref10/ implementations on an R500 stock rom (non-rooted):
mean signature generation time = 4.00ms
mean signature verification time = 13.00ms
Approximately 20x speed up, just like that :)
2012-10-18 17:26:48 +10:30
Andrew Bettison
c43a7ba8e6
Issue #17 , improve "rhizome extract manifest" command
...
Add ".readonly" output field, add logic to detect bundle author and update
MANIFESTS table 'author' column accordingly.
Add two 'rhizomeops' test cases to deal with authorless logic.
Rename some 'rhizomeops' test cases for consistency and to help filtering.
2012-10-15 16:48:04 +10:30
Andrew Bettison
eff3e9ec8f
Issue #17 , fix new 'rhizomeops' test
...
Was incorrectly supplying bundle secret to "rhizome add" command.
2012-10-15 14:01:48 +10:30
Andrew Bettison
3f1f495d68
Issue #17 , overhaul manifest author crypto logic
...
Add test case for new feature of the "rhizome add" command: if the author SID
is not specified (empty arg) then it searches the keyring for the author.
Removed "authorSid" argument from several functions that also take a struct
rhizome_manifest * arg, since the author, if known, is now supplied in the
struct.
Improve return value handling and refactored some rhizome crypto code.
2012-10-11 17:58:24 +10:30
Jeremy Lakeman
b22e3f1964
Add hop count to mdp ping
...
- Allow mdp client to specify ttl
- Copy ttl into and out of overlay frame
2012-10-10 16:22:31 +10:30
Andrew Bettison
3678522872
Issue #17 , add AUTHOR column to Rhizome MANIFESTS table
...
Replace ".selfsigned" column with ".author" and ".fromhere" columns in
output of "rhizome list" command. (Note that a "sender" column is
already present.)
Add 'author' field to struct rhizome_manifest.
Log all fully rendered SQL statements on DEBUG_RHIZOME.
Update 'rhizomeops' test cases and improve the assert_rhizome_list()
test function to be able to assert authorship of files.
2012-10-09 17:48:06 +10:30
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
Andrew Bettison
1af238a4f9
Rhizome extract commands handle missing pathnames properly
2012-05-25 11:52:49 +09:30
Jeremy Lakeman
26f3966002
Ignore node info results from incorrect sid's
2012-05-25 09:55:56 +09:30
Andrew Bettison
0ec3feaa29
Expunge setReason()
...
Replace with WHY() or WHYF() everywhere
Improve logMessage() to handle file/line/function printing internally
Mainly so that log messages from manifest alloc/free in rhizome_bundle.c
can make it into the Android log
2012-05-24 17:11:55 +09:30
Andrew Bettison
59e58da2f4
More fixes for varargs stuff
...
But still no luck on Android
2012-05-23 16:07:52 +09:30
Andrew Bettison
1af9125392
All rhizome database keys are uppercase hex
...
FILES.id, MANIFESTS.id, FILEMANIFESTS.fileid, FILEMANIFESTS.manifestid
Named constants for hex and binary ID sizes
2012-05-23 16:04:00 +09:30
Andrew Bettison
29502d8c81
Varargs and strbuf fixes
...
Add missing va_end() for all va_copy()
strbuf_sprintf() adds precautionary nul to end of string after vsnprintf()
2012-05-22 14:58:05 +09:30
gardners
740a64ed51
"servald stop" now checks monitor interface, and can kill the PID
...
even if there is no PID file, and the server process is stuck.
Now to find out how the process gets stuck to begin with ...
2012-05-21 20:57:31 +09:30
gardners
165ac03c7a
added use of server_probe() to "servald start" command.
...
Tries to kill existing server if present, and will abort if
there is an existing instance.
Old pid code not cleaned out.
2012-05-21 20:54:17 +09:30
gardners
e44294ea66
implemented server_probe(int *pid) that used monitor interface
...
to probe server status. Also returns PID if running (Linux only).
2012-05-21 20:45:07 +09:30
Andrew Bettison
f4293e8ab3
Add "rhizome hash file" command
...
Also fixed a file descriptor leak in rhizome_hash_file() -- missing fclose()
2012-05-21 14:42:53 +09:30
Daniel O'Connor
990a8f3057
Add support for srtuct ucred on BSD.
...
This requires building with _GNU_SOURCE to get access to struct ucred on Linux. Previously the test failed on every platform except glibc <2.8 or so.
Building with _GNU_SOURCE causes TRUE to be defined so we can't use this as a variable anymore, and MIN/MAX so don't define our own.
2012-05-21 12:22:50 +09:30
Andrew Bettison
ddd17db1c4
Make "rhizome add file" work for MeshMS
2012-05-21 00:09:14 +09:30
Andrew Bettison
e6575cb369
Introduce macro constants for Rhizome service names
...
Use "MeshMS1" instead of "MeshMS"... version 2 won't be far away
2012-05-20 16:07:22 +09:30
Andrew Bettison
41583c1011
Fix bug in "rhizome add file" command
...
Was not opening keyring file properly
2012-05-20 15:25:19 +09:30
Andrew Bettison
345b2c1c4c
Fix SEGV bug using new strbuf operations
2012-05-20 13:02:41 +09:30
Andrew Bettison
4b5e179841
Start support for MeshMS manifests
2012-05-19 14:09:50 +09:30
Andrew Bettison
0f65028a0b
Clean up keyring_open_with_pins() error reporting
2012-05-19 10:38:29 +09:30
Andrew Bettison
5ae14ad7bc
Fix bugs in rhizome_opendb()
...
Was calling exit() instead of returning -1 on error, which was causing
the serval app to exit in the JNI "start" command if rhizome could not
create its db file.
Use DEBUGF() instead of fprintf(stderr) in many places.
confValueGet() was not stripping \r\n off end of returned string.
rhizome_set_datastore_path() was keeping the pointer it was given (from
conValueGet()'s rotor) instead of making a strdup() copy.
2012-05-18 18:55:52 +09:30
gardners
80e013739d
improved error message reporting.
2012-05-18 17:08:45 +09:30
gardners
c9a58937ca
other bug fixes and cleanups for "dna lookup"
2012-05-18 12:55:56 +09:30
Andrew Bettison
9a51c76dfb
Insist on 'service' field in all manifests
...
The "rhizome file add" command assumes service=file if no manifest supplied
or the manifest lacks a service field.
The "rhizome extract manifest" command includes the service in its CLI output.
2012-05-17 17:00:14 +09:30
Andrew Bettison
2434d51bee
Remove "rhizome add authored file" command
...
Now "rhizome add file" takes SID and PIN args, and if SID is empty, an
unauthored bundle (no BK field) is created
Updated dna_rhizome test cases
2012-05-17 12:01:25 +09:30
gardners
74e0d69cb9
fixed various bugs with rhizome manifest extraction.
2012-05-16 15:55:03 +09:30
gardners
d51545b87a
fixed some bugs with BK handling. keyring gets loaded when
...
adding authored bundle so that we can lookup RS.
BK variable name case harmonised.
2012-05-16 15:41:41 +09:30
Andrew Bettison
33f7ea7103
Add three optional args to "rhizome list" command
...
service, sender_sid, recipient_sid - not yet implemented
2012-05-16 13:47:58 +09:30
gardners
39be8a0b75
added new command line option for adding rhizome bundle with authorship
...
so that it includes a BK.
All good, except the BK isn't being added. Yet to find out why.
2012-05-15 22:15:13 +09:30
gardners
0eafc34970
BK encoding and decoding complete, but untested.
2012-05-15 20:04:41 +09:30
gardners
525d3c4154
substantial work towards implementing BK field in rhizome manifests.
2012-05-15 17:24:25 +09:30
Andrew Bettison
f90b21ec78
Implement rhizome config options
...
rhizome.datastore_path - if not set, reverts to serval instance path
rhizome.enable - if not set, defaults to true
2012-05-15 12:56:10 +09:30
Andrew Bettison
d11258cefc
Overhaul debug flags
...
Config debug flags are now represented as individual items, eg:
servald config set debug.verbose yes
servald config set debug.rhizome yes
instead of aggregated, eg:
servald config set debug verbose,rhizome <-- no longer works
Added a debug flag "debug.all" that can be set and cleared, over which
individual flag sets/clears take priority.
Slimmed down dna.c by moving some globals and functions to the files where they
are used.
Default command line (help message) is now the new style, not the deprecated
style.
2012-05-14 18:37:32 +09:30
Andrew Bettison
e746557a08
Fix bug in overlay_gettime_ms()
...
The sequence start time was only getting set in overlay_interface_init(), which
was not always called, or was called after overlay_gettime_ms() had already
been used.
Added FATALF(), FATAL() and FATAL_perror() macros.
Removed a bunch of debug statements no longer needed in monitor.c and server.c.
2012-05-11 10:38:46 +09:30
Andrew Bettison
881576212c
Fix all trivial compiler warnings
2012-05-10 18:08:59 +09:30
Andrew Bettison
0fa40973ec
Make 'start' command call setpgrp() when detaching
2012-05-10 12:46:40 +09:30
Andrew Bettison
da9fe6fdca
Fix 'start' command bug when invoked via JNI
...
Child process was using return not exit(), which was unrolling the
JNI call stack in a sub-process and causing havoc.
2012-05-08 16:35:14 +09:30
Andrew Bettison
8dd9a70852
Fix 'stop' command
...
Do not fail with error if servald.pid is nonexistent/inaccessible
2012-05-08 14:53:34 +09:30
gardners
596b20b5e8
interactive servald monitor cli command implemented.
2012-05-08 14:41:21 +09:30
Andrew Bettison
391e8d7056
Fix broken stopfile logic
...
'start' command removes stopfile just before starting
'stop' command removes stopfile after stopping
2012-05-08 12:53:59 +09:30
Andrew Bettison
329189ec8c
Fix bodgy server start/stop logic
...
Rename pidfile 'serval.pid' to 'servald.pid'
Rename stopfile 'doshutdown' to 'servald.stop'
Reinstate checking of stopfile on signals and in main loops
Correct delay loops in 'start' and 'stop' commands
Move some code from commandline.c to server.c
2012-05-08 12:19:52 +09:30
Andrew Bettison
6376baf8b8
Follow-up fixes to serval.pid clobber termination
2012-05-08 11:27:07 +09:30
Andrew Bettison
acc5e48f4f
Terminate server process if serval.pid clobbered
2012-05-08 11:23:43 +09:30
Andrew Bettison
27f2d00d5e
Minor code refactor
2012-05-07 19:14:53 +09:30
Andrew Bettison
09f8434a21
Improve "start" command
...
Add "start exec <exec path>" variants for background mode
Add background startup wait logic, so that pid can be reported to caller
2012-05-07 19:14:52 +09:30
gardners
171eb75d48
fixed packet size calculation bug.
2012-05-07 16:50:49 +09:30
gardners
98607360f4
attempt at fixing wrong number in peerlist display bug in "node info"
...
command.
2012-05-07 15:29:31 +09:30
Andrew Bettison
cbc367b1f5
Rewrite server start/status/stop commands
...
Now correctly probes for server process existence using kill(pid, 0)
Status command does not dump config (use "config get" instead)
Output uses JNI cli output fields
Stop command uses 5 Hz wakeup, not busy wait while server exits
2012-05-07 13:49:38 +09:30
Andrew Bettison
97884ba069
Fix bug in output from "rhizome add file"
...
When a duplicate is detected, the 'manifestid' field must contain the public
key of the existing manifest.
2012-05-04 15:59:58 +09:30
Andrew Bettison
f31c326871
CLI output from "rhizome add file", with tests
2012-05-04 15:31:03 +09:30
Andrew Bettison
eab6dafcc7
Make commandline.c error messages appear on Android log
2012-05-03 14:50:14 +09:30
Andrew Bettison
5b85520f75
Fix JNI command-line interface; return 255 instead of -1
2012-05-03 12:17:49 +09:30
gardners
f3d288b10e
fixed accidental typo.
2012-05-03 11:36:44 +09:30
gardners
03bfa6e0c7
removed dna resolution poll failure error messages.
2012-05-03 11:25:27 +09:30
Andrew Bettison
7ba15ccdd7
Add "rhizome extract file" command with tests
2012-05-02 17:57:35 +09:30
Andrew Bettison
6e959fd34c
More tests for "rhizome extract manifest"
...
Proper handling of unknown and invalid manifest IDs
2012-05-02 16:24:27 +09:30
Andrew Bettison
146eb7cdfd
Add "rhizome extract manifest" command
2012-05-02 16:03:09 +09:30
gardners
6464ae8100
"dna lookup" now displays name
2012-05-01 14:42:15 +09:30
gardners
14e4af6392
DNA replies now include name. "set did" now accepts name.
...
Keyring now stores name. "node info resolvedid" now returns name.
2012-05-01 14:38:09 +09:30
gardners
4234cb3ed5
changed bcmp to memcmp
2012-05-01 13:41:22 +09:30
gardners
92192654d0
cli_puts()ify "dna lookup". Add duplicate suppression to dna lookup
2012-05-01 13:39:43 +09:30
gardners
44d0feb575
improved "stop" functionality to better realise when a process
...
is no longer running.
2012-05-01 07:05:02 +09:30
gardners
590b53975c
added some more debugging for finding out why numbers wont resolve
...
from servald in java interface.
2012-04-30 21:06:40 +09:30
gardners
cfe5f303e7
added cleaning up of client socket when ending command line
...
execution so that multiple calls from java can succeed.
2012-04-30 20:07:22 +09:30
Andrew Bettison
7e7ab30808
Refactor JNI command-line interface
...
Does not depend on ServalDResult class - appends output fields to a supplied
list instead, and returns the integer status
Does not depend on ServalDReentranceError class - uses
java.lang.IllegalStateException instead
2012-04-30 17:45:24 +09:30
gardners
e38854d4c0
improved "stop" command to try several times.
2012-04-30 15:34:41 +09:30
gardners
808ef53d0f
"node info" command can now do DNA lookups to get phone #
2012-04-30 15:12:31 +09:30
gardners
1ebe63a470
cleaned up some debug output introduced during previous bug fixes.
2012-04-30 06:25:54 +09:30
gardners
c3fe7ee8e3
"id peers" now returns something!
2012-04-30 06:16:03 +09:30
gardners
6fad530b28
fixed some bugs with node info and set sid
2012-04-27 14:17:41 +09:30
gardners
47f15bf259
converted node info to return each record as a set of strings to
...
make it easier to parse from Java.
2012-04-27 08:27:55 +09:30
gardners
ef6f2ef3d3
cleaned up id_self() output.
2012-04-27 07:17:50 +09:30
gardners
7f11e25922
added count to id self/list output to help debug calls from JNI
...
in batphone.
2012-04-27 05:58:31 +09:30
gardners
89c08fa2c3
improved diagnostics for incorrect command line invokations.
...
Fixed bug in servalwrap (needed to trim arg[0])
2012-04-26 16:59:55 +09:30
Andrew Bettison
18eb83ebf4
JNI-ify "keyring list" output
2012-04-26 15:54:40 +09:30
gardners
38c240be58
using cli_delim() where appropriate. more work on "id self" /
...
"id list".
2012-04-26 15:47:05 +09:30
gardners
88ba56b68b
work towards "node info" command, and renamed stop/start etc to
...
drop node keyword, that in retrospect is not appropriate.
2012-04-26 07:14:01 +09:30
gardners
d56780852c
added "id peers" with maximum reuse of "id self".
2012-04-26 06:06:04 +09:30
gardners
35f231dcb0
preparation for allowing MDP_GETADDRS to return either local IDs,
...
or SIDs of peers.
2012-04-26 05:58:16 +09:30
gardners
cf2216fecf
"id self" now correctly does multi-packet lists for when we have
...
lots of identities.
2012-04-26 05:54:54 +09:30
gardners
44a416b969
added "id self" command to get all local SIDs (BatPhone needs this)
2012-04-26 05:48:06 +09:30
gardners
98c3b72cf4
mdp based dna lookup works now, but lacks duplicate suppression.
2012-04-25 20:33:25 +09:30
gardners
a2880ada1e
closer to dna lookup working via mdp.
...
Bug to be fixed in sending replies.
2012-04-25 20:14:56 +09:30
gardners
4972da1b58
dna lookup via mdp nearly working.
2012-04-25 15:55:04 +09:30
gardners
f8a1ffc4c9
dna lookup command line utility mostly done. Now to make server
...
respond.
2012-04-25 15:24:21 +09:30
gardners
dfb8d0d482
getting ready for making dna lookup work via mdp
2012-04-25 14:35:44 +09:30
Andrew Bettison
6746fc4e36
Fix commandline.c when undefined HAVE_JNI_H
2012-04-24 18:03:52 +09:30
Andrew Bettison
f9d8536d7d
JNI-ize the output of "dna rhizome list"
2012-04-24 17:50:27 +09:30
Andrew Bettison
a496919e8a
First real servald JNI command-line test works!
2012-04-24 17:07:20 +09:30
gardners
03004bcfdc
added vomp dtmf command line interface to inject DTMF characters
...
into a call. This will be the initial codec/audio xfer app.
2012-04-24 12:06:28 +09:30
Daniel O'Connor
2188c807b2
Hook up dummy phone app to commandline.c
2012-04-23 20:58:28 +09:30
Andrew Bettison
1494172da6
Trival test of dna JNI command line entry point
2012-04-23 18:25:26 +09:30
Andrew Bettison
a73916e85a
Implement JNI command-line interface (untested)
...
- argv is (const char *const *) everywhere, to avoid having to strdup() all the
Java arg strings
- changed (char*) to (const char*) in lots of places to fix cascading compiler
warnings as a result of argv constness
- fixed a bug in "config get" command when used without 'variable' arg
2012-04-23 17:18:15 +09:30
Andrew Bettison
551f22092f
Make javac and jni.h optional in ./configure
2012-04-23 12:05:00 +09:30
gardners
76a1bec84e
Added initial work towards a call status monitoring commandline
...
option.
2012-04-22 18:47:24 +09:30
gardners
29b8454a94
vomp pickup and hangup commandline apps in place and working.
2012-04-22 12:51:58 +09:30
gardners
f4886d0a0a
added conditionality to JNI code in commandline.c
2012-04-20 17:21:03 +09:30
gardners
d843e59bd5
vomp status and vomp dial command line apps added.
...
now debugging dial operation.
2012-04-20 17:12:44 +09:30
Andrew Bettison
90a1317822
First cut of JNI entry point to command line
2012-04-20 17:02:29 +09:30
Andrew Bettison
2bfa0ee7d2
Tighten up command line parsing
...
- add optional offset and limit args to rhizome list
- validate argument values
2012-04-19 18:03:04 +09:30
Andrew Bettison
21592a44d0
Rename some command-line functions for consistency
2012-04-19 15:47:23 +09:30
gardners
899cf8fc69
general cleanups and formatting changes to mdp ping
2012-04-19 04:23:39 +09:30
gardners
71f5f9e72c
Removed unnecessary code in mdp pin.
2012-04-19 04:23:38 +09:30
Andrew Bettison
866ddea189
Get all rhizome add file test cases passing
...
- new test cases to cover new payload with different versions
- exit status of 2 when duplicate is detected
- tighten up other test cases
- fix bug in sqlite_exec_int64()
2012-04-16 11:46:58 +09:30
gardners
02b253bb29
moved unencrypted broadcast warning outside loop in MDP ping so
...
warning appears only once, instead of every second.
2012-04-16 07:06:22 +09:30
gardners
caab3078e5
substantial work towards public key signing of MDP frames and
...
the associated SID:SAS mapping cache and request packets.
2012-04-15 03:17:36 +09:30
gardners
5f01210353
Added warning to mdp ping to indicate that broadcast pings are
...
not encrypted.
2012-04-15 00:26:26 +09:30
gardners
c3800ff004
mdp ping shows whether replies are encrypted or plain text etc.
2012-04-14 23:18:18 +09:30
gardners
4de6622c68
Fixed bug in "keyring add" command.
...
Added opening of keyring in "mdp ping" command.
MDP ping now works with the new keyring framework (but authcryption
is not being attempted it seems).
2012-04-14 02:44:41 +09:30
gardners
baf9212c20
modified mdp ping to use authcryption when not broadcasting.
2012-04-14 02:37:50 +09:30
Andrew Bettison
de88d3db21
Make "dna rhizome add" work for more test cases
...
- adding a bundle using an existing manifest with an incorrect payload should
fail with an error
- adding a bundle using an existing manifest to update the payload to a new
version should succeed
- improve format of "dna rhizome list" output to one bundle per line
2012-04-13 18:03:19 +09:30
gardners
5ac83f9ca1
Replaced use of HLR with keyring for phone number lookups and
...
other functions. Not yet tested.
2012-04-13 09:25:03 +09:30
gardners
7b8d78533d
Added commandline interface to set a did.
...
Re-enabled payload rotation in keyring PKRs.
Getting and setting dids now works.
keyring list displays SID:DID pairs.
2012-04-12 23:16:25 +09:30
Andrew Bettison
7b53fd6782
Rhizome add does not add duplicate files
...
- If a bundle has the same payload hash and manifest.name as one already in
the rhizome store, then the "dna rhizome add" command will not add it
- Now passes fourth test case in tests/dna_rhizome
2012-04-12 18:33:43 +09:30
Andrew Bettison
6b8f504db4
Fix bugs revealed by dna config tests
2012-04-12 18:33:43 +09:30
gardners
635dd3867e
Keyring stuff now works :)
2012-04-12 15:52:41 +09:30
gardners
e89673ee89
Added command line access for simple keyring functions for testing.
...
Creating keyring files works.
Writing PKR blocks seems more or less working, but we can't (yet)
read them back.
2012-04-12 14:00:51 +09:30
Andrew Bettison
a87a78536c
Refactor rhizome_add_manifest()
2012-04-11 18:40:10 +09:30
Andrew Bettison
f52db7f406
Fix bugs revealed by rhizome "add manifest" test case
2012-04-10 18:13:05 +09:30
Andrew Bettison
74986a0c30
Implement "rhizome add file" and "rhizome list"
2012-04-02 17:42:40 +09:30
gardners
54da5f3ffc
Added output of statistics to MDP PING.
2012-03-29 20:31:01 +10:30
Andrew Bettison
3befe32711
New command "rhizome add", support optional args
2012-03-29 17:51:59 +10:30
Andrew Bettison
b8e3047479
Add 'get' and 'del' commands
2012-03-29 15:21:30 +10:30
Andrew Bettison
e87e80aee7
Create instance directory in "set" and "node start"
2012-03-29 15:03:17 +10:30
Andrew Bettison
a338c2f0f9
Refactor instance path handling
...
- handle buffer limits when forming path names within instance dir
- uniform use of serval_instancepath()
2012-03-29 14:07:07 +10:30
gardners
942605d247
Removed some debugging, improved MDP PING client output.
2012-03-28 13:26:14 +10:30
gardners
aeee2f993c
MDP ping client now shows pings coming in with their transit times.
...
(no TTLs etc, but hey, it is the first working use of MDP)
2012-03-28 13:16:06 +10:30
gardners
61920238d5
Fixed overlay_mdp_dispatch() versus overlay_mdp_send() confusion
...
bug in MDP ping client.
2012-03-28 13:10:55 +10:30
gardners
8fbbdc5087
More work on MDP.
...
Swapped functions of overlay_mdp_send() and overlay_mdp_dispatch()
to match normal socket operations and thus avoid programmer confusion.
2012-03-28 11:28:04 +10:30