Andrew Bettison
53e4e5be5f
Improve 'rhizomerestful' journal append test case
...
Add asserts for the returned status codes
2015-04-13 14:43:52 +09:30
Andrew Bettison
7734e24006
/restful/rhizome/append on existing journal
...
Refactor Rhizome insert/append logic into functions used by both CLI and
RESTful API. Improve RESTful diagnostic messages.
2015-03-30 18:24:12 +10:30
Andrew Bettison
214dad421b
Rename 'rhizomerestful' journal test cases
2015-03-30 18:21:31 +10:30
Jeremy Lakeman
fea91f3f82
Use configured reachable timeout for network links, read dummy files even when not ticking
2015-03-30 17:38:40 +10:30
Jeremy Lakeman
943bca3bea
Add transmit timeout config per network destination for low bandwidth links
2015-03-30 14:15:08 +10:30
Andrew Bettison
da22816784
Add 'rhizome add file --bundle=BID' option
...
A convenience to re-use an existing manifest, instead of having
to extract the manifest, erase some fields, then pass the result
back into the 'rhizome add file' command
2015-03-28 05:09:38 +10:30
Andrew Bettison
b17848a438
Improve 'rhizomeops' test fixtures
...
Use extract_stdout_manifestid() instead of extract_stdout_keyvalue()
2015-03-28 05:09:37 +10:30
Andrew Bettison
dbea301ce2
Rhizome test defs support 'tail' field
2015-03-28 05:09:37 +10:30
Andrew Bettison
987ec00183
Improve 'rhizomeops' test speed
...
Only create the identities needed, not five in every test
2015-03-25 00:55:37 +10:30
Andrew Bettison
16355df04b
Fix failing 'rhizomejava' test
...
Handle missing payload-status headers in Java test client
2015-03-23 23:26:09 +10:30
Andrew Bettison
705dbeff09
Fix bug in rhizome_write_open_journal()
...
Was treating PAYLOAD_STATUS_NEW as an error
2015-03-23 17:40:08 +10:30
Andrew Bettison
015b4a0b07
Refactor and improve "journal append"
...
Distinguish between fatal and user-supplied-input errors, return
error descriptive text in a strbuf to allow dynamic content, apply
user-supplied field assgnments/deletions _after_ copying existing
manifest fields, use exit status 4 (invalid manifest) when applying
journal append to a non-journal or vice versa
2015-03-23 17:38:46 +10:30
Jeremy Lakeman
f7dbe06836
Rearrange interface config to support unicast settings
2015-03-23 13:35:22 +10:30
Andrew Bettison
655b94eb3c
Fix failing 'rhizomeops' tests
2015-03-19 03:21:27 +10:30
Andrew Bettison
c9131f43a2
POST /restful/rhizome/append for journals
2015-03-02 18:52:12 +10:30
Andrew Bettison
4b234fbfbd
Fix /restful/rhizome/insert HTTP status code
...
Return 403 "Forbidden" instead of 501 "Not implemented" when
given a journal bundle
2015-03-02 18:49:51 +10:30
Andrew Bettison
d44d18280a
Rhizome test: cannot use "add file" to create a journal
2015-03-02 18:49:51 +10:30
Andrew Bettison
b2919a3a5e
Rhizome test: cannot use "add file" to update a journal
...
Journal bundles can only be modified using "journal append"
2015-03-02 18:49:51 +10:30
Andrew Bettison
e0684567e8
Add Rhizome test case: import journal bundle
...
Also fix a bug thus revealed
2015-03-02 18:49:51 +10:30
Andrew Bettison
e2ef96a57d
Improve some Rhizome test case comments
2015-03-02 18:49:50 +10:30
Jeremy Lakeman
3ae0e95e0b
Treat null strings as empty
2015-03-02 15:44:34 +10:30
Andrew Bettison
e6bdeeb337
Increase timeouts on MeshMS newsince tests
...
So they don't fail during large parallel test runs
2015-02-23 15:57:24 +10:30
Jeremy Lakeman
032502f80c
keyring create test now does what it says (and fails)
2015-01-17 21:57:59 +10:30
Andrew Bettison
e633c0fa0a
"rhizome add file" manifest field=value varargs
...
Now a new manifest can be formed, and an existing manifest modified, by
giving "field=value" or "!field" command-line arguments at the end of
the "rhizome add file" command (after the <bsk> argument).
This makes it easier to script rhizome operations.
2014-11-19 13:26:50 +10:30
Andrew Bettison
ff339011b4
Refactor Rhizome manifest parsing
...
Now the parsing code uses the set/del functions for all supported
manifest fields, so no duplicate logic any more
2014-11-19 10:49:13 +10:30
Andrew Bettison
2f1843858d
Support unrecognised manifest fields
...
Refactor Rhizome manifest parsing in preparation for command-line
field assignment
2014-11-19 10:47:31 +10:30
Andrew Bettison
081f7ab8c8
Add recent bundle secret improvements to RESTful API
...
The "#passphrase" notation was already supported, and now the RESTful
API can be used to create and update anonymous and authored bundles
using only the bundle secret, just like the CLI.
2014-11-14 17:31:08 +10:30
Andrew Bettison
65d6005cbf
Create authored bundle from bundle secret
...
Improve the logic in rhizome_fill_manifest() to handle the case where
the secret and author are both supplied, by setting the BK field so the
secret can be recovered from the manifest later
2014-11-14 13:11:44 +10:30
Andrew Bettison
e743e4d7f9
Create authorless bundle from bundle secret
...
Until now, the bundle secret was never used to create a new bundle,
only to update a bundle whose secret was known from its creation.
2014-11-14 13:11:44 +10:30
Andrew Bettison
c3fdb12991
Fix assert_stdout_add_file() Rhizome test function
...
Correct 'author' and 'secret' fieldnames to '.author' and
'.secret'
2014-11-14 13:11:43 +10:30
Andrew Bettison
1cbc2a365b
Improve Rhizome AddUpdateSameVersion test
...
If 'rhizome add file' command does not return status 1,
then cat the standard error (log) to the test log
2014-11-14 13:11:43 +10:30
Andrew Bettison
a4be1b0b0c
Fix RESTful MeshMS newsince ACK logic
...
/restful/meshms/newsince/SID1/SID2/newsince/TOKEN/messagelist.json now
always lists an ACK as soon as it is received, instead of waiting for a
message to arrive as well.
2014-11-12 23:09:00 +10:30
Andrew Bettison
3c4703feb4
Reduce DB locking issues in RESTful tests
...
Add environment variable SERVALD_RHIZOME_DB_RETRY_LIMIT to extend the
Rhizome DB retry period, set it to 60 seconds in RESTful tests to
override the default 5 seconds
2014-11-12 23:08:19 +10:30
Jeremy Lakeman
6ab2cc5bb6
Only support one keyring pin per open file
2014-10-31 15:30:07 +10:30
Jeremy Lakeman
851144ea0a
Refactor keyring identity iteration
2014-10-31 15:19:59 +10:30
Tobias Wooldridge
e79e74feb9
Exposes a list of configured identities through the REST API at /keyring/identities.json
2014-10-31 15:19:59 +10:30
Jeremy Lakeman
1848493468
New messages bump the conversation to the top
2014-10-27 11:08:02 +10:30
Jeremy Lakeman
91d3f78f8e
Revert slack ping delivery in routing tests
2014-10-01 15:53:18 +09:30
Jeremy Lakeman
c7e397cadf
Trace network paths that are supposed to exist
2014-09-23 14:54:22 +09:30
Jeremy Lakeman
2ec63b371a
Build the array of console commands by using linkage tricks
2014-08-22 10:36:52 +09:30
Jeremy Lakeman
31cf3a67b5
Allow lcal http servers to perform cross site scripting of restful APIs
2014-07-28 12:54:57 +09:30
Jeremy Lakeman
435ffecfa8
Add message timestamps to restful meshms
2014-07-18 14:11:57 +09:30
Jeremy Lakeman
69ffe6a56c
Fix meshmsjava tests with additional timestamps
2014-07-14 16:21:12 +09:30
Jeremy Lakeman
bc87f8c7c0
Add timestamps to meshms messages and acks
2014-07-14 13:43:37 +09:30
Andrew Bettison
89623015fc
MeshMS Java API: list messages new since token
2014-07-14 06:06:21 +09:30
Andrew Bettison
4c6612a61e
Rhizome Java API: list bundles new since token
2014-07-12 22:49:00 +09:30
Andrew Bettison
2757a08b87
Rhizome Java API: insert inconsistent bundle
2014-07-11 11:15:08 +09:30
Andrew Bettison
8842f32b19
Rhizome Java API: insert journal is not implemented
...
Change the HTTP response code for unimplemented operations from 403 to
501
2014-07-10 22:23:11 +09:30
Andrew Bettison
e35bf77938
Rhizome Java API: insert/update empty bundle
2014-07-10 22:06:46 +09:30
Andrew Bettison
a87133d4d3
Rhizome Java API: insert anonymous bundle
2014-07-10 21:19:15 +09:30
Andrew Bettison
04b2a20e54
Rhizome Java API: improved form-data headers
...
Change manifest Content-Type from rhizome-manifest/text to
rhizome/manifest; format="text+binarysig"
Add "Content-Transfer-Encoding" form-part headers to Java API
sent form parts, although not currently checked by Rhizome
RESTful interface
2014-07-10 21:12:40 +09:30
Andrew Bettison
a81d05b4f6
Rhizome Java API: insert bundle
2014-07-10 06:43:17 +09:30
Andrew Bettison
3715c5bf0b
Rhizome Java API: negative fetch tests
2014-07-10 06:30:50 +09:30
Andrew Bettison
2aec8f31a4
Rhizome Java API: get decrypted payload
2014-07-10 06:30:50 +09:30
Andrew Bettison
d16be8f42d
Improve MeshMS HTTP RESTful interface
...
Provide "meshms_status_message" in returned JSON status content
2014-07-10 06:30:50 +09:30
Andrew Bettison
cf43635789
Improve Rhizome HTTP RESTful interface
...
Add RHIZOME_BUNDLE_STATUS_READONLY enum value
Tighten up switch statements on bundle and payload status enums (no
default labels)
Rename some recently added enum entries
Return bundle status and payload status in HTTP responses
Add test for failing to decrypt a foreign encrypted bundle payload,
fix bug that caused an assertion failure
Add tests for fetching a non-existent manifest and fetching bundles
whose payload blob is not in the store
2014-07-10 06:29:51 +09:30
Andrew Bettison
34b6ff48bf
Rhizome Java API: get raw payload
...
Added more "Serval-Rhizome-Bundle-xxx" headers to /restful/rhizome/
responses, so that a more complete manifest can be constructed from
them
2014-07-10 06:29:09 +09:30
Andrew Bettison
93e67ede63
Rhizome Java API: get manifest
...
Fixes assertion violation in GET /restful/rhizome/<BID>.rhm when <BID>
not found
2014-07-10 06:29:09 +09:30
Andrew Bettison
db8ee79a4e
Rhizome Java API: list bundles
2014-07-10 06:29:09 +09:30
Andrew Bettison
a9ec5dcf69
Refactor Rhizome test script ready for re-use
...
Move add_bundles() function from 'rhizomerestful' test script into
testdefs_rhizome.sh, rename to rhizome_add_bundles() and add a new
SID argument
2014-06-30 11:11:01 +09:30
Andrew Bettison
067340bbba
Change HTTP Authorization realm to "Serval RESTful API"
...
Was "Serval Rhizome", which is not accurate
2014-06-30 11:11:01 +09:30
Andrew Bettison
11e9d38299
Rename config 'rhizome.api.restful' to 'api.restful'
2014-06-30 11:11:01 +09:30
Jeremy Lakeman
63f02607e6
Fix duplicate payload detection over unicast links
2014-06-26 17:20:06 +09:30
Andrew Bettison
776d4de894
Split up 'rhizomehttp' test script
...
New scripts 'rhizomerestful' and 'meshmsrestful'
New testdefs_json.sh
Improved testdefs.sh functions for discovering HTTP server port
2014-06-26 15:08:48 +09:30
Andrew Bettison
660daf0438
Merge latest MeshMS Java API additions into 'development'
2014-06-24 15:10:16 +09:30
Andrew Bettison
c79a382a27
MeshMS Java API: mark messages as read
2014-06-24 12:12:48 +09:30
Andrew Bettison
7736a4ceb1
New HTTP RESTful requests: MeshMS read message(s)
2014-06-24 12:11:58 +09:30
Jeremy Lakeman
9f6ace518a
Test that msp listen --service_name shuts down
2014-06-23 14:23:30 +09:30
Jeremy Lakeman
ca8f651b8d
Cleanup the rhizome database every 30 minutes or so
2014-06-23 13:49:58 +09:30
Andrew Bettison
eba7f6555f
MeshMS Java API: send message
2014-06-23 13:20:57 +09:30
Jeremy Lakeman
2ef73884a1
Add configurable limit to ensure a minimum amount of free space is preserved
...
- default to 100MB of free space
- currently disabled on android due to missing sys/statvfs.h
2014-06-23 13:06:21 +09:30
Andrew Bettison
819b8dc9e7
MeshMS RESTful API stricter on incoming form data
...
/restful/meshms/SID/SID/sendmessage now enforces Content-Disposition:
form-data (was ignoring), and enforces Content-Type: text/plain;
charset=utf-8 (was ignoring)
New negative test cases to ensure that these are treated strictly
2014-06-23 12:27:09 +09:30
Jeremy Lakeman
68dbaef38d
Refactor Java API
...
Add stateful class to represent the state of the serval daemon, shifting some functions from BatPhone
Add convenience functions to get pre-configured MDP and HTTP Restful client classes
2014-06-20 10:55:09 +09:30
Andrew Bettison
f948f8e12e
Include Java tests in 'tests/all' if Java compiler available
2014-06-19 11:38:39 +09:30
Andrew Bettison
b14c58bdf6
Merge NAF4 MeshMS Java API into development
...
Currently implements "list conversations" and "list messages"
2014-06-19 11:21:37 +09:30
Jeremy Lakeman
7ff89afcf4
Reinstate rhizome database storage limit
...
- old / large payloads should be evicted to fit more payloads
- if there isn't enough space, new payloads will not be added
2014-06-19 11:09:09 +09:30
Andrew Bettison
e9437e9a61
MeshMS Java API: list messages
2014-06-19 10:37:33 +09:30
Andrew Bettison
9cbd7c365c
MeshMS Java API: list conversations
2014-06-19 09:55:12 +09:30
Andrew Bettison
f2772b0ce8
Refactor tests: testdefs_java.sh, testdefs_meshms.sh
...
meshms_add_messages() now puts message texts into TEXT[$n] array
instead of "text$n" files
2014-06-19 09:54:29 +09:30
Jeremy Lakeman
f4e6841ed7
Ensure directory service tests aren't creating a global routing table
2014-06-16 17:22:46 +09:30
Jeremy Lakeman
80e139c2d9
Ensure orphan payloads or manifests are cleaned up
2014-06-16 15:56:31 +09:30
Jeremy Lakeman
ee37385ec7
Recalculate routing table after last neighbours is lost, or interface is down
2014-06-12 17:15:29 +09:30
Jeremy Lakeman
52da7778cd
Allow closing a monitor connection to force the server to quit
2014-06-11 20:39:26 +09:30
Andrew Bettison
11dcc3e972
Fix minor bugs in server start/kill tests
2014-06-11 11:15:28 +09:30
Jeremy Lakeman
afd31fe12c
Ensure a race condition while starting servald only starts one process
2014-06-11 09:01:56 +09:30
Jeremy Lakeman
0b0e4cc8b4
Delay rhizome open database using an alarm, close on config change
2014-06-11 09:01:55 +09:30
Jeremy Lakeman
f09e6c38d2
Test that server quits after deleting pid file
2014-06-05 14:55:50 +09:30
Jeremy Lakeman
6d4ad0e150
Rework scheduler to allow for lazy but important alarms
2014-06-04 17:13:08 +09:30
Jeremy Lakeman
2a572d19bf
Rework rhizome store to write content more lazily and cleanup more carefully
2014-06-04 17:13:08 +09:30
Jeremy Lakeman
77be2c7ef3
Fix mdp trace assert
2014-06-04 17:13:08 +09:30
Jeremy Lakeman
b6de3fcd34
Only send rhizome sync packets when we have neighbours
2014-05-30 15:03:22 +09:30
Jeremy Lakeman
0c294079af
Improve reliability of routing tests
2014-05-30 14:56:31 +09:30
Andrew Bettison
33c61d64b9
Fix a faulty MSP test
2014-05-26 16:15:52 +09:30
Andrew Bettison
757e6c62ab
Merge network simulator into development
2014-05-26 15:52:40 +09:30
Jeremy Lakeman
9f23b9bdcd
Fix remove obsolete debug flags from test scripts
2014-05-26 14:16:35 +09:30
Jeremy Lakeman
3373d64079
Routing tests shouldn't care about prefer_unicast default value
2014-05-26 13:57:27 +09:30
Jeremy Lakeman
06f7eed260
Add msp test over unreliable link
2014-05-23 10:47:22 +09:30
Jeremy Lakeman
4dd2d2991e
Use simulator for existing msp tests
2014-05-23 10:47:22 +09:30
Jeremy Lakeman
7420f46653
Create new AF_UNIX based network simulator
2014-05-23 10:47:22 +09:30
Jeremy Lakeman
c0c5412931
Add support for STOPping a connection before shutdown
2014-05-21 17:17:07 +09:30
Jeremy Lakeman
ca9faeef9b
Remove respawn_on_crash behaviour, we aren't using or testing it
2014-05-12 13:44:51 +09:30
Jeremy Lakeman
672104bdd8
Create extensible service discovery protocol, with initial basic implementation
2014-05-09 11:21:18 +09:30
Jeremy Lakeman
4204973052
Allow for more duplicates in 2hop test
2014-05-09 11:21:16 +09:30
Andrew Bettison
df1814309b
Improve MDP filter rules file syntax
2014-05-05 14:45:33 +09:30
Jeremy Lakeman
8ddd256b5c
Add more asserts for ping stats, with some slack
2014-05-05 14:35:31 +09:30
Jeremy Lakeman
ab915a13fc
Use routing table to check if a node is unreachable
2014-05-05 13:22:36 +09:30
Andrew Bettison
206aa936c0
Refactor 'vomp' test fifo handling
...
Use new execute --stdout-file=PATH test framework feature
Remove unnecessary shell variable indirection
2014-04-30 17:21:58 +09:30
Andrew Bettison
5035abde34
Improve test framework: assert_fork_is_running
...
Also assert_fork_is_not_running
Added 'framework' test case for fork primitives
2014-04-30 11:10:20 +09:30
Andrew Bettison
525aee88c5
Fix test framework bug: needed shopt -s extglob
2014-04-30 11:08:53 +09:30
Andrew Bettison
ea9de737a2
MDP packet filter rules configuration
...
Configurable rules file path: mdp.filter_rules_path
Add filter rules parsing code, add filtering to outgoing as well as
incoming packets
New test script: tests/mdp with two test cases
Improve test defs: new execute_servald() function
Widen MDP port number format from 8 to ten chars to accommodate leading
"0x"
2014-04-29 15:31:50 +09:30
Andrew Bettison
684735b11c
Fix config file timestamp bug
...
Ensure that timestamp always advances by at least one second every time
the config file is modified, add test case
Refactor test defs: detecting started HTTPD is not specific to Rhizome
Refactor struct file_meta and associated functions into "io.h" and io.c
Add various strbuf helper functions for formatting struct timespec
and struct file_meta to assist debug logging
2014-04-29 15:04:20 +09:30
Andrew Bettison
459c5a2303
Improve "mdp ping" command
...
Packet stats now exclude duplicate pong replies
With <count> arg, exits immediately once a pong has been received for
every ping, unless new --wait-for-duplicates option given
Routing tests for unreliable links now assert all pongs received and
very few duplicates
2014-04-17 16:09:34 +09:30
Andrew Bettison
8bc746af25
New "config sync" command
2014-04-16 19:28:16 +09:30
Andrew Bettison
2716228074
Add server watchdog and config reload test
2014-04-16 18:06:27 +09:30
Jeremy Lakeman
c6e461bcb0
Attempt to create folders for binding AF_UNIX sockets
2014-04-11 17:00:47 +09:30
Jeremy Lakeman
14be44d211
Enhance console command to allow multiple concurrent calls
2014-04-10 13:46:07 +09:30
Jeremy Lakeman
23cb4600e2
Improve VOMP testing
2014-04-10 11:14:46 +09:30
Andrew Bettison
6371203703
Finish removing SLIP code and test case
...
More simplification of "serval.h"
2014-04-07 16:22:31 +09:30
Andrew Bettison
53c1b1c04c
Filesystem Heirarchy Standard (FHS) paths
...
If no instance directory specified, then use paths like
/etc/serval/serval.conf
/var/cache/serval
/var/log/serval
/var/run/serval
etc. for files, instead of all in a single directory.
Log all directory creation as INFO messages.
Interpretation of log.file.directory_path has changed slightly.
Updated servald configuration tech doc.
2014-03-26 15:35:43 +10:30
Andrew Bettison
53d5a8734b
Fix Rhizome cleanup to remove temporary payloads
...
Fix test case to properly assert that all stale payloads are
deleted
2014-03-18 16:03:26 +10:30
Andrew Bettison
dc588e964d
Fix "name=/file" bug in Rhizome add
...
Improved Rhizome test scripts and added new assert_manifest_fields()
function to Rhizome test defs
2014-03-12 15:48:00 +10:30
Jeremy Lakeman
a6d6175576
Add config set warning if attempting to drop packets on datagram sockets
2014-03-12 14:55:46 +10:30
Jeremy Lakeman
2e4835d7d6
Ensure tests with packet filtering are using the dummy network interface
2014-03-12 14:32:59 +10:30
Jeremy Lakeman
ee68856878
Reduce log spam from debug.rhizome
2014-03-12 14:32:59 +10:30
Andrew Bettison
0bef066949
Store Rhizome external blob files in "blob" subdirectory
...
This will make issue #50 a bit easier to tackle
2014-03-07 16:55:38 +10:30
Jeremy Lakeman
6b17cd580f
Enable rhizome HTTP transfers over loopback while using local sockets
2014-03-05 09:55:23 -08:00
Andrew Bettison
fd1b36a9da
Refactor new MissingPayload test case
...
Move more code into fixture, add TODO comment
2014-03-03 15:14:34 +10:30
Andrew Bettison
19aed8ecb5
Fix test defs: pop_instance did not restore instance
...
Add push_and_set_instance() function
Remove redundant set_instance calls in test cases
Cope if error() returns (can happen during teardown)
2014-03-03 15:14:34 +10:30
Andrew Bettison
08e02b18db
Improve test framework: tfw_run() function
2014-03-03 15:14:34 +10:30
Jeremy Lakeman
974c87adf2
Remove orphan file rows if we notice the payload is missing
2014-03-01 05:45:32 +10:30
Jeremy Lakeman
1ade36f8df
A missing payload should be re-fetched
2014-02-28 10:00:49 +10:30
Jeremy Lakeman
a6f408f013
Return mdp inet & http port numbers in servald start & status
2014-02-25 12:42:36 +10:30
Jeremy Lakeman
33cbc98300
Add proc files for http server & mdp udp ports
2014-02-24 17:15:28 +10:30
Jeremy Lakeman
dfda3f7a74
Move generic command line API to test package
2014-02-24 17:13:41 +10:30
Jeremy Lakeman
20494a90d5
Add Java MDP Client API
...
- support mdp clients over loopback UDP
Note this is using an environment variable to specify the port number
In future we expect to support environments where this port is already bound
- monitor mdp sockets in a single & separate thread
2014-02-21 16:39:47 +10:30
Jeremy Lakeman
693d1e9b60
Add clearer example java api usage
2014-02-20 15:35:31 +10:30
Jeremy Lakeman
7ed6be3690
Introduce basic vomp console test
2014-02-19 16:39:05 +10:30
Jeremy Lakeman
6f75d93460
Shift echo service to new internal api, ensure local services can respond to local clients
2014-02-19 16:34:47 +10:30
Jeremy Lakeman
487df0408d
Refactor mdp packet processing to avoid using struct overlay_mdp_frame
2014-02-19 16:34:11 +10:30
Jeremy Lakeman
9e704e5b01
Capture servald log from test completion
2014-02-19 16:03:57 +10:30
Jeremy Lakeman
46ef40cf23
Migrate and refactor more interfaces from batphone
2014-02-19 15:35:08 +10:30
Andrew Bettison
4062b3adbf
Fix typos in 'keyring' test suite
2014-02-17 17:13:58 +10:30
Jeremy Lakeman
348fc5f23b
Fix meshms conversations parsing when looking for a single SID
2014-02-12 15:08:24 +10:30
Jeremy Lakeman
99fb8b6108
Move jni interface classes from batphone repo
2014-02-12 13:09:17 +10:30
Andrew Bettison
0769fa54e8
Improve MeshMS RESTful HTTP failure reporting
...
Add "meshms_status_code" element to simple JSON responses
2014-02-07 16:28:40 +10:30
Andrew Bettison
5dd9ea7a6b
Improve MeshMS failure handling
...
Introduce "enum meshms_status" to replace int -1,0,1 for return values
from MeshMS internal functions
Add test cases to check that status 2 is returned when attempting to
send a message from an identity that is not known (unlocked)
2014-02-06 18:10:00 +10:30
Andrew Bettison
fd86a3d17f
Implement HTTP POST /restful/meshms/<SID>/<SID>/sendmessage
...
Rename struct meshms_ply fields from "buffer" to "record" for
consistency with comment terminology
2014-02-05 14:28:15 +10:30
Andrew Bettison
015ed0b181
Refactor to rename "Rhizome HTTP server" to "HTTPD server"
...
Move HTTPD start/stop/dispatch logic from rhizome_httpd.c into new
httpd.c
Rename config.debug.httpd -> config.debug.http_server
Rename config.debug.rhizome_httpd -> config.debug.httpd
Rename config.debug.rhizome_nohttptx -> config.debug.nohttptx
2014-02-03 15:56:07 +10:30
Andrew Bettison
f4249707a4
Implement HTTP GET /restful/meshms/<SID>/<SID>/newsince/<token>/messagelist.json
...
Two new test cases
2014-01-31 14:58:30 +10:30
Andrew Bettison
ebe444ffe3
Refactor rhizomehttp MeshMS message list test
...
New function add_messages() to use in fixture
Improve existing test case by adding more ACKs and messages
2014-01-31 14:30:01 +10:30
Andrew Bettison
c73bc49cf0
Improve MeshMS RESTful HTTP requests
...
Include local (my) and remote (their) SIDs in JSON responses for
conversationlist.json and messagelist.json, so that the same JSON
structures can be used in future for non-SID-specific queries.
Refactor MeshMS message iterator, rename "sender" and "recipient" fields
to "my" and "their", for consistency with the rest of the MeshMS source
code, and because "sender" and "recipient" are properties that apply to
a single message or single ply, not to a message thread (conversation).
2014-01-31 14:29:57 +10:30
Andrew Bettison
7b5752a111
Implement HTTP GET /restful/meshms/<SID>/<SID>/messagelist.json
2014-01-28 15:09:51 +10:30
Andrew Bettison
8897563d09
Implement HTTP GET /restful/meshms/<SID>/conversationlist.json
2014-01-23 10:52:43 +10:30
Andrew Bettison
6a1c8bcf5a
All HTTP RESTful responses are JSON, not HTTP
...
Even error responses (typically code 403)
2014-01-20 15:44:21 +10:30
Jeremy Lakeman
68421db114
Add msp debug flag
2014-01-09 15:06:35 +10:30
Jeremy Lakeman
48dce9a575
Add tcp forwarding on the listen end of an MSP connection
2014-01-09 15:06:35 +10:30
Jeremy Lakeman
99e08d1516
Add command to support forwarding TCP connections to an MSP service
2014-01-09 15:06:35 +10:30
Jeremy Lakeman
e09387b27d
Refactor stdio handling
2014-01-09 15:06:34 +10:30
Jeremy Lakeman
6d942f8d4f
Improve tests
2014-01-09 15:01:38 +10:30
Jeremy Lakeman
4bb3336b33
Generalise method for defining multiple interfaces
2014-01-09 15:01:38 +10:30
Jeremy Lakeman
506518ad06
Allow interfaces to use local unix addresses
...
- broadcast packets are sent to all sockets in the same folder
- switched most tests to use local sockets
2014-01-09 15:01:38 +10:30
Jeremy Lakeman
df6af96455
Test connection keep alive and timeouts
2014-01-09 15:01:37 +10:30
Jeremy Lakeman
741442c54c
Pipe file contents across msp connection
2014-01-09 15:01:37 +10:30
Jeremy Lakeman
3a533187b7
Improve msp failure handling
2014-01-09 15:01:37 +10:30
Jeremy Lakeman
db7f68afd7
Initial msp library implementation with connection state tracking
2014-01-09 15:01:37 +10:30
Andrew Bettison
669080edc8
Add 'rhizomehttp' to 'all' tests
...
Disable unused 'rhizomehttp' tests
2013-12-30 18:10:39 +10:30
Andrew Bettison
ee9c96bb8c
Implement HTTP POST /restful/rhizome/insert
...
Change HTTP request buffer pointers from (const char*) to (char*)
because some Rhizome operations can modify received data in-place, eg,
when decrypting it.
2013-12-30 18:09:56 +10:30
Andrew Bettison
34188fa489
Replace config 'rhizome.external_blobs' with 'rhizome.max_blob_size'
2013-12-30 16:30:43 +10:30
Andrew Bettison
72040517e1
New enum rhizome_payload_status
...
Refactor a lot of Rhizome bundle storage code to use the new "enum
rhizome_payload_status" instead of mysterious int values to represent
the outcome of the operation.
2013-12-30 16:30:35 +10:30
Andrew Bettison
9ebef81a49
Formalise "rhizome add file" exit status
...
Formalise add-bundle result in "enum rhizome_bundle_status"
Rewrite rhizome_manifest_finalise(), rhizome_find_duplicate() and
rhizome_add_manifest() to return enum rhizome_bundle_status
New function rhizome_manifest_check_stored() that compares a manifest
with its stored counterpart and returns enum rhizome_bundle_status
Remove redundant rhizome_manifest_check_sanity(), consolidating all
manifest validation rules in rhizome_manifest_validate(), which now
checks the 'id' field is present, and that 'sender' and 'recipient' are
both present for MeshMS
Correct manifest finalisation logic: set the 'finalised' flag in
rhizome_manifest_validate(), not in rhizome_manifest_verify() (which
sets 'selfSigned'), and consistently clear 'finalised' flag in all
attribute setter functions
Remove manifest 'ttl' field and all references thereof (leaving unused
space in Rhizome BAR)
Rename some payload functions for clarity
2013-12-21 14:37:18 +10:30
Andrew Bettison
39b2f3a6f5
Improve 'rhizomehttp' test descriptions
2013-12-19 11:29:28 +10:30
Andrew Bettison
6798e943ec
Implement HTTP GET /restful/rhizome/<BID>/decrypted.bin
2013-12-16 15:09:46 +10:30
Andrew Bettison
8c9ac6c1a5
Improve test case for /restful/rhizome/<BID>/raw.bin
...
Include some encrypted payloads in the test
2013-12-13 17:41:26 +10:30
Andrew Bettison
b53cabaae5
Unify output manifest fields from CLI rhizome commands
2013-12-13 17:24:59 +10:30
Andrew Bettison
6361bfd757
Implement HTTP GET /restful/rhizome/<BID>/raw.bin
2013-12-13 16:36:37 +10:30
Andrew Bettison
183cb46000
Add Rhizome HTTP response headers to /restful/rhizome/<BID>.rhm
2013-12-13 14:49:55 +10:30
Andrew Bettison
26e0120898
Implement HTTP GET /restful/rhizome/<BID>.rhm
2013-12-05 17:25:58 +10:30
Andrew Bettison
6bff87f7e5
Increase 'rhizomeprotocol' test case timeout
...
The 50% MDP packet loss test case is now likely to take more than 60
seconds to transfer the bundles, probably because of stricter manifest
syntax
2013-12-01 05:49:50 +10:30
Andrew Bettison
8db5f9c14a
Merge branch 'anyservice' into 'development'
...
Allows any valid "service" manifest field in the "rhizome add file"
command
Many improvements in Rhizome manifest parsing; stricter manifest syntax
rules (no comment or blank lines, field names must be alphanumeric
identifiers), faster preliminary manifest inspection when receiving
manifest advertisements or syncing manifests
The 'development' branch introduces "struct socket_address" which
coincidentally fixed the recently encountered Linux kernel 3.12
recvmsg(2) EINVAL problem, so that 'rhizomeprotocol' tests which fail on
the 'anyservice' branch will pass after this merge
2013-12-01 05:44:01 +10:30
Andrew Bettison
0dd1b302b5
Rewrite Rhizome manifest parsing
...
Move validation checks into new function rhizome_manifest_validate()
Remove rhizome_manifest 'errors' field
Replace rhizome_manifest 'warnings' with 'malformed'
Replace rhizome_manifest 'manifest_bytes' with 'manifest_body_bytes' and
refactor to use 'manifest_all_bytes' in all manifest i/o
Refactor rhizome_manifest_verify() and reverse sense of return value to
match rhizome_manifest_validate()
New function rhizome_manifest_inspect() -- lightweight manifest parser
used when receiving Rhizome advertisements
New 'rhizomeops' test case for invalid manifest "service" field values,
now passes
2013-12-01 05:13:34 +10:30
Andrew Bettison
5e5e097d7f
Accept any well formed Rhizome service field
...
Do not limit service field to only recognised supported values 'file',
'MeshMS1' and 'MeshMS2'
New test case checks for malformed service field, fails
2013-12-01 05:13:33 +10:30
Jeremy Lakeman
1681abd620
Increase default mdp timeout & make it configurable
2013-11-27 13:10:11 +10:30
Jeremy Lakeman
1b34c2dc13
Improve test reliability
2013-11-27 13:10:09 +10:30
Jeremy Lakeman
ad33264834
Rename mavlink to radio_link
...
- split link state from slip structures and encapsulate it completely
- allocate interface specific buffers on demand
2013-11-27 13:09:26 +10:30
Jeremy Lakeman
5ea19ab538
Better approximation of TDMA timing
2013-11-27 13:00:02 +10:30
Andrew Bettison
851dbb4d64
Add 'debug.subscriber' config option
...
Add debug logging to find_subscriber() function
2013-11-26 15:33:54 +10:30
Andrew Bettison
59a6ded10c
Update 'dnaprotocol' debug flags
2013-11-26 15:33:54 +10:30
Andrew Bettison
711364ad8d
Merge branch 'meshextender' into 'development'
2013-11-21 17:05:03 +10:30
Andrew Bettison
513aa15968
Finish HTTP /restful/rhizome/newsince/... test case
...
Uses new test framework fork support
2013-11-20 15:06:58 +10:30
Andrew Bettison
a882b8ebc6
Fix Rhizome Direct stress test - longer command timeouts
...
Since a default timeout was added to the execute() primitive
(b1b5a79
) the Rhizome Direct test fails.
2013-11-20 15:06:07 +10:30
Andrew Bettison
c5014baf62
Improve test framework: better fork functions
...
Replace forkKillAll with fork_terminate_all
Replace forkWaitAll with fork_wait_all
Add fork_terminate and fork_wait functions
Introduce fork labels '%<alphanumeric>' as arguments to all fork
functions
Treat a forked process exit status 143 (killed with SIGTERM) as a
failure or error -- it happens when a forked process is terminated
using fork_terminate or fork_terminate_all
2013-11-20 15:01:37 +10:30
Andrew Bettison
29fab6dcb7
Add 'rhizome.api.restful.newsince_poll_ms' config option
2013-11-20 14:50:57 +10:30
Andrew Bettison
833466411c
Test case for HTTP /restful/rhizome/newsince/...
...
Not passing yet
2013-11-19 17:28:04 +10:30
Andrew Bettison
f8f7716544
Improve HTTP /restful/rhizome/bundlelist.json token
...
Now tokens are included in each row instead of a single token in the
enclosing JSON object. Only puts tokens on the first row, and
thereafter all rows with a rowid higher than for the previous row that
had a token.
2013-11-18 15:10:28 +10:30
Andrew Bettison
973bb9c897
Merge branch 'naf4' into 'development'
2013-11-13 17:59:01 +10:30
Andrew Bettison
4380fdcccd
Token in /restful/rhizome/bundlelist.json output
2013-11-13 16:58:28 +10:30
Jeremy Lakeman
0b404b0260
Implement id list command
2013-11-13 12:00:46 +10:30
Jeremy Lakeman
ff1f1ff093
Allow tag primitives to be used outside of keyring entries
2013-11-13 12:00:05 +10:30
Jeremy Lakeman
9680b24f23
Add support for adding and updating tags in the keyring
2013-11-13 11:59:21 +10:30
Jeremy Lakeman
534b01ba2a
Add explicit set did test
2013-11-13 11:52:46 +10:30