Commit Graph

1652 Commits

Author SHA1 Message Date
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
Andrew Bettison
a29f685bdd Fix assertion failure in new Rhizome fetch queue logic
Revealed by improved Rhizome stress test that uses wide range of file sizes.
2012-11-05 14:46:16 +10:30
Andrew Bettison
548b837d2a Rhizome stress test: increase timeout from 3 to 10 minutes 2012-11-05 14:45:23 +10:30
Andrew Bettison
54d0e49a1d Improve Rhizome test defs: bundle_received_by()
Introduce per-instance server cache directory and use it to suppress duplicate
log messages from bundle_received_by().
2012-11-05 14:43:57 +10:30
Andrew Bettison
2b5b7fa896 Improve test framework: tfw_nolog() 2012-11-05 14:43:07 +10:30
Andrew Bettison
1ee62b7587 Fix bug in test framework: local $njobs used by other function 2012-11-05 12:07:44 +10:30
Jeremy Lakeman
780daa3aa4 Prevent segfault for interfaces with no address 2012-11-01 14:00:18 +10:30
Jeremy Lakeman
b4b256a5ea Remove dead code 2012-11-01 11:22:47 +10:30
Andrew Bettison
03f71dcccf Improve rhizome stress test
Generate test files from 2KiB to 32MiB in size, instead of all about 13 bytes
in size.  Guess what?  Found a bug!
2012-10-31 18:17:06 +10:30
Andrew Bettison
d9fb8d7956 Refactor 'interfaces' config parsing
Use new "str.h" str_to_ll_scaled() function to implement parse_quantity().
2012-10-31 18:16:05 +10:30
Andrew Bettison
d38ce66c95 Improve test framework: create_file()
New executable in Makefile 'all' target: tfw_createfile.

New str.h function: str_to_ll_scaled().
2012-10-31 18:13:33 +10:30
Andrew Bettison
aba7e417c4 Remove README.WHYNOTSIPS
The text of this historical note has been transplanted in slightly improved
form into the Serval wiki VoMP page:

http://developer.servalproject.org/dokuwiki/doku.php?id=content:technologies:vomp
2012-10-31 10:14:58 +10:30
Andrew Bettison
3c7eb7b058 Add missing sqlite3_blob_close()
Fixes #33.
2012-10-30 16:12:40 +10:30
Andrew Bettison
934ae73a3d Minor improvements to INSTALL.md 2012-10-30 15:05:24 +10:30
Andrew Bettison
c3ef89acc1 Fix bug: "interfaces=+" not working
The logic was clobbered back in June in a refactor by Daniel.
2012-10-30 14:50:47 +10:30
Andrew Bettison
a1cc415a4f Move information from BUILD.txt into INSTALL.md
Also remove out of date TODO file, no longer relevant.
2012-10-30 14:49:50 +10:30
Andrew Bettison
7cae7f5324 Replace README.DUMMYNETS with doc/Servald-Configuration.md 2012-10-30 12:44:43 +10:30
Andrew Bettison
4da7e29b05 Fix README.md -- Markdown typo 2012-10-28 23:18:12 -07:00
Andrew Bettison
a3cdf3c942 Add README.md and INSTALL.md
Also capture some documentation of Serval Infrastructure services.
2012-10-29 16:43:27 +10:30
gardners
b23b28b16d Changed rhizome manifest signature block type code semantics to
allow signature blocks of 256 bytes, and to allow multiple
signature types with same length. #34
2012-10-29 16:07:42 +10:30
Jeremy Lakeman
a4b392d693 Don't include rhizome adverts in packets with voice frames 2012-10-29 13:10:20 +10:30
Jeremy Lakeman
8dd7a81c71 Remove unused variables 2012-10-29 13:05:03 +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
f7ee962df3 Updated build files for openwrt (now all live in openwrt/). #26
This apparently works for building on openwrt, but servald
segfaults when activating an interface.
2012-10-29 07:38:16 +10:30
gardners
be3b529504 refactored Makefile.in and Anrdoid.mk so that source file lists are
included into each from separate .mk files. #32
2012-10-25 04:30:14 +10:30
Andrew Bettison
d503c8da75 Fix Android compile error 2012-10-24 15:36:52 +10:30
Andrew Bettison
6516d6bb11 Merge branch 'rhizomeslots' into 'master'
Fixes #30.
2012-10-24 15:22:30 +10:30
Andrew Bettison
39fc4ce6de Issue #30, remove periodic Rhizome fetch alarm
Replace the main-loop scheduled periodic alarm with an "activate" alarm that is
scheduled whenever a fetch candidate is added to any queue, unless the alarm is
already scheduled.

Replace the "rhizome.fetch_interval_ms" config item with
"rhizome.fetch_delay_ms" [default 50], which is the number of milliseconds
between adding a fetch candidate and firing the "activate" alarm.  This allows
time for a few more Rhizome advertisment packets to arrive after the first one,
before deciding which fetches to start first.

Add new `is_scheduled()` alarm primitive.
2012-10-24 15:13:50 +10:30
Andrew Bettison
935a545ac7 Issue #30, fix Rhizome fetch slot allocation logic
Also improve the block comment documentation of many functions.
2012-10-24 12:08:41 +10:30
Andrew Bettison
9ee9b63aad Issue #30, fox SEGV bug in new Rhizome fetch queue code
The rhizomestress test now passes, also all rhizomeprotocol tests.
2012-10-24 09:59:36 +10:30
Andrew Bettison
a9d3a1387c Issue #30, rewrite Rhizome fetch queues and slots
Causes SEGV in rhizomestress test.
2012-10-23 18:10:20 +10:30
Andrew Bettison
5d62be7b0f Issue #30, easy logging of struct sockaddr 2012-10-23 18:07:56 +10:30
Jeremy Lakeman
001bbe5c6c If a call is not found, answer with a hangup command. Fixes issue #31 2012-10-23 13:26:45 +10:30
Jeremy Lakeman
760bd04189 Estimate required jitter buffering 2012-10-22 14:05:15 +10:30
Andrew Bettison
21125bc9bc Improve monitor CLI client error handling 2012-10-19 19:38:59 +10:30
Andrew Bettison
cfc16e8e87 Improve monitor client logging
To assist diagnosis of latest Solaris port bug, issue #16.
2012-10-19 19:38:59 +10:30
Jeremy Lakeman
f93216f369 Remove dead code 2012-10-19 15:02:22 +10:30
Jeremy Lakeman
f1b0374b97 Extract crypto signing primitives from mdp processing 2012-10-19 14:54:41 +10:30
Jeremy Lakeman
bb973e764e Don't send duplicate payloads over unicast 2012-10-19 10:40:35 +10:30
Jeremy Lakeman
95843e1f20 Pass overlay frame into mdp processing 2012-10-19 10:40:03 +10:30
Jeremy Lakeman
01bcd07d6f Only unschedule when we know it may already be scheduled 2012-10-19 10:40:03 +10:30
Jeremy Lakeman
3ab474be16 Always update unicast addresses 2012-10-19 10:40:02 +10:30
Andrew Bettison
839de7557c Merge branch 'rhizomestress' into 'master' 2012-10-18 17:57:10 +10:30
Andrew Bettison
af1a6c4297 Split Rhizome stress test into separate file 2012-10-18 17:46:17 +10:30
Andrew Bettison
65ea612e27 Fix bugs revealed by Rhizome stress test
Overhauled the file fetch queue logic in rhizome_fetch.c.

Now the 'rhizomeprotocol' stress test passes in approximately 5 minutes on my
2009-vintage Dell laptop.

Added a call to rhizome_enqueue_suggestions() in rhizome_fetch_close() so that
a new Rhizome GET request is sent as soon as a fetch slot becomes free, instead
of waiting for the (default 5 second) timer to trigger the next GET.
2012-10-18 17:30:22 +10:30
Andrew Bettison
877f76557a Fix 'rhizomeprotocol' stress test 2012-10-18 17:29:58 +10:30
gardners
a40fcfec66 cleaned up NaCl build to just compile using make. #17 2012-10-18 17:26:52 +10:30
gardners
55c9cff8cd added code to replace old-format SAS with new crypto_sign implementation
type on next use (so that people upgrading automatically get a new valid
SAS instead of continuing to try to use an invalid one -- this is only
a reasonable course of action since we have made no formal releases of
the code). #17
2012-10-18 17:26:49 +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