Andrew Bettison
974c7a56a0
Issue #11 : Use rhizome_filehash_t everywhere
2013-10-11 15:35:27 +10:30
Andrew Bettison
c97bd4a69a
Rewrite two major SQL queries using new bind syntax
...
Extend bind varargs syntax to handle optionally-NULL parameters.
2013-10-10 17:17:03 +10:30
Andrew Bettison
a95ef79139
Use sid_t everywhere
...
Remove stowSid() at last
Change API of tohex() and strbuf_tohex(), to pass string length instead of
binary byte count. This allows odd numbers of hex digits to be produced.
Remove alloca_tohex_sid(); replace with alloca_tohex_sid_t()
New alloca_tohex_sid_t_trunc() macro
2013-10-09 18:54:21 +10:30
Andrew Bettison
7a8d750a0e
Issue #11 : uint16_t instead of short for TCP port number
2013-10-07 23:37:37 +10:30
Andrew Bettison
55edc74482
Fix intermittent 'rhizomeops' test failure
2013-10-07 04:47:14 +10:30
Andrew Bettison
7b427d48ee
A few more uses of rhizome_bid_t
...
Now the TEXT_TOUPPER SQL bind action is only used for filehash hex
strings; all Bundle ID parameters are bound using RHIZOME_BID_T.
2013-10-04 04:50:37 +09:30
Andrew Bettison
ab31420faf
rhizome_bid_t
...
Consistent type for internal binary representation of Rhizome Bundle ID
(aka Manifest ID)
2013-10-03 23:16:45 +09:30
Andrew Bettison
d18e48868d
Issue #69 : transient text SQL binding
2013-10-03 23:16:02 +09:30
Andrew Bettison
41e18e587d
Issue #69 : replace sqlite3_bind_xxx() calls
...
Use the new sqlite_bind() and sqlite_prepare_bind() calls instead.
Add cmp_sid_t() function, use it instead of memcmp().
Use alloca_tohex_sid_t() in preference to alloca_tohex_sid() when the
argument is a sid_t.
2013-10-03 16:44:06 +09:30
Andrew Bettison
7e3a552011
Issue #69 : refactor all Rhizome SQL queries to use binding
...
Remove all uses of sprintf(3) and its ilk to form SQL query commands.
Use the new sqlite_bind() and sqlite_prepare_bind() functions instead.
2013-10-03 15:15:30 +09:30
Andrew Bettison
8f7d600216
Issue #69 : continue work on multi-bind varargs
...
Revise sqlite_prepare() macro et al and underlying functions to use bind
varargs instead of sprintf(3)-style varargs.
Convert all SQL function calls in rhizome_database.c
2013-10-03 01:16:10 +09:30
Andrew Bettison
772e1bf9d6
Issue #69 : start writing SQLite multi-bind function
2013-10-02 18:19:20 +09:30
Andrew Bettison
06d7620314
Add "rhizome add file" --force-new option
...
Overrides the default behaviour of de-duplicating added manifests
New 'rhizomeops' test case: AddForceDuplicate
2013-09-30 16:48:18 +09:30
Andrew Bettison
162108dd18
Fix duplicate payload logic
...
rhizome_finish_write() was treating a duplicate file hash as an error,
instead of dealing with it sensibly
2013-09-30 16:32:08 +09:30
Jeremy Lakeman
931ca60554
Refactor and simplify http server
...
- Define a function per page that is responsible for parsing requests
- Define a "generator" callback function for filling the buffer for a response
- Remove features that have never been used
- Remove functions that are no longer used
2013-09-24 14:34:50 +09:30
Jeremy Lakeman
38fe34e6e5
Bump rhizome idle timeout for congested links
2013-09-20 14:41:50 +09:30
Jeremy Lakeman
2a5ba97b48
Add rhizome test over fakeradio
2013-09-13 14:02:35 +09:30
Jeremy Lakeman
8accabfcac
Always store payloads with a temporary id
2013-08-27 16:15:51 +09:30
Jeremy Lakeman
643b21d6a7
Fetch file payloads if they are missing, even if we already have the manifest
2013-08-22 15:14:21 +09:30
Jeremy Lakeman
f9b828c3dd
Remove payload if hash doesn't match when reading back
2013-08-21 15:45:18 +09:30
Jeremy Lakeman
1468d2deb0
Pre-emptively send small payloads via MDP
2013-08-21 09:21:40 +09:30
Jeremy Lakeman
bf7d0d5b16
Cache rhizome read state when serving content via MDP
2013-08-16 14:57:28 +09:30
Jeremy Lakeman
771cb4151b
Fetch journal range via HTTP
2013-08-15 17:00:43 +09:30
Jeremy Lakeman
21132466f1
Serve a range of a file payload via HTTP
2013-08-15 16:31:26 +09:30
Jeremy Lakeman
e322114850
Only transfer new journal content via MDP
2013-08-15 14:36:56 +09:30
Jeremy Lakeman
68bf04f69d
Change manifest service to MeshMS2
2013-08-01 11:37:35 +09:30
Jeremy Lakeman
0c237db66a
Add API to create bundles with deterministic ID's
2013-07-25 14:46:34 +09:30
Jeremy Lakeman
57fd0020c7
Add API for bufferred reading of rhizome bundles
2013-07-25 14:42:30 +09:30
Jeremy Lakeman
f9bc9d1913
Add support for encrypted journals with tail>0
2013-07-22 15:04:26 +09:30
Jeremy Lakeman
15ad333195
Implicitly buffer all writes to database blobs
2013-07-18 17:04:12 +09:30
Jeremy Lakeman
7d1714d398
Refactor database writes to reduce open/close calls
2013-07-18 13:52:42 +09:30
Jeremy Lakeman
a4bf4edbfc
Write out of order packets with MDP transport
...
- add random order writing to rhizome store API
- remove rhizome flush, force all callers to provide buffer
2013-07-17 16:57:59 +09:30
Jeremy Lakeman
8ac359e550
Use consistent integer types for 64bit compilation
2013-07-13 14:47:06 +09:30
Jeremy Lakeman
a1ac7febe2
Add rhizome fetch status html page
2013-07-11 12:32:06 +09:30
Jeremy Lakeman
62a4cd407d
Identify a journal bundle by the presense of a tail field
2013-07-08 14:57:47 +09:30
Jeremy Lakeman
e758e0130f
Create journal append command
2013-07-08 14:29:08 +09:30
Jeremy Lakeman
53f3920b90
Move cli global state into a structure and pass it around
2013-07-03 16:51:27 +09:30
Jeremy Lakeman
8249f65f8f
Don't create unused import folder
2013-07-03 10:54:05 +09:30
Jeremy Lakeman
adbbed5275
Add new rhizome sync protocol
2013-06-19 12:05:57 +09:30
Jeremy Lakeman
b67516558e
Add clean command to verify all bundles
2013-06-14 11:58:19 +09:30
Jeremy Lakeman
96c0889f9a
Don't ask for manifests if we don't have room in transfer queues
2013-04-11 15:24:41 +09:30
Andrew Bettison
6eb08ae805
Add new "config dump" command - not working yet
...
Add cf_fmt_xxx() functions for converting configuration structs into a
config object model tree.
2013-02-26 18:09:08 +10:30
Jeremy Lakeman
90386ce1b1
Merge remote-tracking branch 'origin/development' into serial
...
Conflicts:
rhizome.h
rhizome_database.c
rhizome_fetch.c
rhizome_store.c
2013-02-20 17:23:03 +10:30
Jeremy Lakeman
73786bcb5d
Refactor all rhizome reading and writing
...
- The API in rhizome_store.c is used for all reading and writing
- external storage is now usable for all transport options
2013-02-20 16:18:59 +10:30
Andrew Bettison
390655580d
Add 'rhizome delete' and 'rhizome clean' commands
...
sqlite_void_exec() and its ilk now return the count of changed rows, not
just zero, on success
sqlite_exec_prepared() and its ilk now return the count of rows (number
of step results SQLITE_ROW), instead of just zero, on success
rhizome_clean() function now produces an optional report of its changes
rhizome_fail_write() and rhizome_finish_write() now log WARNings not
ERRORs if the SQL DELETE FROM FILES or DELETE FROM FILEBLOBS statements
fail
Refactor rhizome_open_read() to use sqlite_exec_int64()
Ensure that 'rhizome extract' and 'rhizome dump' commands return exit
status of 1 in "not found" conditions, not 255, which is reserved for
errors
Test cases for four new commands: 'rhizome delete bundle', 'rhizome
delete manifest', 'rhizome delete payload' and 'rhizome delete file'
(no test case for 'rhizome clean' yet)
2013-02-20 15:37:09 +10:30
gardners
641d749ab4
Create files for large rhizome bundles
...
- configurable size threashold
2013-02-20 15:36:32 +10:30
Jeremy Lakeman
e4d6520c46
Don't request manifests that are already in the fetch queue
2013-02-20 15:36:25 +10:30
Jeremy Lakeman
ba1800012e
Only advertise BAR's on an alarm
...
- we no longer hit the database for every outgoing packet, attempting to announce bundles
- we no longer advertise manifests periodically
- when an interesting bar arrives, we ask for the manifest to be announced, which uses the existing packet format
2013-02-20 15:36:23 +10:30
Jeremy Lakeman
340003ed99
Don't keep sql blob open from http server
2013-01-30 11:46:10 +11:00
Jeremy Lakeman
3a93fee8a5
New JNI interface to better support cursor result sets
2013-01-23 14:43:50 +10:30