e2ae508382
Refactor storage interface to return io.Reader and Writer instances
...
Doing so will enable encrypting/decrypting files in a 'pipeline' without
having to write the intermediate results to a file or store them in
their entirety in memory.
This commit also updates the existing storage classes (local and FTP) to
meet the new interface definition.
2013-09-11 19:37:42 -04:00
1254a7fb45
Still send event when files' permissions change
2013-09-08 23:30:13 -04:00
1b4104a928
Don't ever use UNIX file modification time for event modification time
...
Doing so can cause inconsistency and cause events to get dropped that
shouldn't. Also add warning to local event side if an event is reported
by the watcher that is not more recent than the event which was
previously the latest local event.
2013-09-08 22:51:36 -04:00
d7cd6f348c
Update timestamp on events even if they match
...
If we don't do this, we don't maintain the invariant that the timestamp
of the latest locally-stored event for a path is the last time this path
was updated. Not maintaining this invariant can cause to incorrect
behavior (i.e. files being deleted when they shouldn't).
2013-09-08 22:13:04 -04:00
793e4eb6b2
client: add batching of sending events to the server
2013-09-05 23:20:29 -04:00
65e692b701
Add support for adding multiple events to the database atomically
2013-09-05 21:06:15 -04:00
fcf61701cc
Process remote events in their own goroutines
2013-09-05 19:59:45 -04:00
d97b424e98
watcher: Begin watching added directories before walking them to add subdirectories
2013-09-05 19:58:32 -04:00
90533c9e2d
Keep statistics on the number of events being sent to the server
2013-09-04 23:51:28 -04:00
11b57cda66
Add statistics to client and command to view them
2013-09-04 23:09:28 -04:00
e375489cae
Add copyright information
2013-09-04 22:02:17 -04:00
393eb31c3c
Add version information
2013-09-04 21:29:53 -04:00
d883e3d92d
Generalize RPC client code, add basic RPC functionality to client
2013-09-03 23:33:36 -04:00
2dcd08d502
Re-factor clean exiting to be usable in the client also
2013-09-03 22:25:41 -04:00
4eb75e1db1
Continue reorganization, add asinkd stop cmd, make asinkd socket configurable
2013-09-02 23:35:48 -04:00
2599717d09
Combine server into single 'git-style' executable
2013-09-02 09:36:03 -04:00
a6c296e0fd
go vet
2013-09-01 09:53:33 -04:00
aef7e308d0
Add FTP storage method
2013-08-29 23:39:06 -04:00
47c785b4d3
go fmt
2013-08-29 07:38:55 -04:00
78bfae8005
Make server properly report that it needs authentication via HTTP
...
headers
2013-08-29 07:36:16 -04:00
9c442254a7
Finish adding simple user authentication
2013-08-28 23:05:28 -04:00
7009b0eda8
go fmt
2013-08-27 09:41:55 -04:00
219eecbfda
Finish core funtionality for server user-administration tool
2013-08-27 00:03:38 -04:00
4d7d82ed94
Make watcher scan all directories for client, start adding user
...
management to server with socket communication via admin binary
2013-08-23 00:10:52 -04:00
6f72225b5b
Automatically create/delete directories around file creation/removal
2013-08-14 23:00:52 -04:00
ccb35fc7a6
Miscellaneous fixups
2013-08-14 23:00:52 -04:00
f80639c815
Save relative file paths (not absolute ones)
2013-08-14 21:10:16 -04:00
6bdb81834c
Improve error handling by adding DISCARDED state for events
2013-08-14 07:26:52 -04:00
0c9b4cb057
Upload the cached version of the file instead of trying to upload the
...
original, in case the original has since been deleted
2013-08-14 07:25:17 -04:00
78e45facd7
Add file permission detection/restoring
2013-08-13 23:18:17 -04:00
fae1ed38d5
Finish unfinished ProcessRemoteEvent functionality
2013-08-13 23:17:45 -04:00
d5c199c021
remove unneeded event.Status field updates
2013-08-13 23:13:54 -04:00
f3b4294b23
add ErrorFileNotFound util function
2013-08-13 23:12:08 -04:00
bdd8032f29
Miscellaneous bug fixes
2013-08-13 21:55:17 -04:00
2569f4cfbf
Add path map and convert asink client event processing to that model
2013-08-13 21:51:19 -04:00
cfc45fec71
Fixup client/database so it doesn't leak open cursors
2013-08-13 21:45:52 -04:00
9c8730f60a
Add Predecessor field to events, which holds the hash of the previous file at that path
2013-08-13 21:43:05 -04:00
3f113aea42
Make event's methods pointer receivers
2013-08-13 20:42:51 -04:00
e5fabc27e3
Add states to Event to handle incoming events
2013-08-07 23:43:38 -04:00
49b0f75714
client/storage_local.go: os.Create is for opening files as writable
2013-07-24 22:14:42 -04:00
24253d2e1e
server: Surround sqlite3 transactions with a lock to handle concurrency
2013-07-19 22:15:53 -04:00
ada1317ec8
Add downloading of remotely-updated files
2013-04-01 23:59:40 -04:00
3a166dbc9a
Fix server error message, go fmt
2013-03-18 07:17:44 -04:00
ad8156210f
server.go: Handle errors on inserting individual events
2013-03-17 23:04:23 -04:00
4fda36f75e
server/database.go: remove unnecessary function/code
2013-03-17 23:04:04 -04:00
a4bce8a07b
client: Retrieve events sent to server
2013-03-17 23:02:51 -04:00
11bcf164c6
Surround sqlite3 transactions with a lock to handle concurrency
2013-03-10 23:13:30 -04:00
1ddbcb3636
server: add long-polling support
2013-03-09 22:47:49 -05:00
94823e104d
Add server database, returning events
2013-02-22 00:06:10 -05:00
3fc3e3a963
Restructured to have subpackages, added server communication
2013-02-20 23:43:01 -05:00