Commit Graph

148 Commits

Author SHA1 Message Date
Jakob Borg c488179783 Correct Luhn alphabet names 2014-07-04 15:58:20 +02:00
Jakob Borg 3c4002e149 Merge branch 'v0.8'
* v0.8:
  Don't leak writer and index goroutines on close
  Clean up protocol locking and closing
  Send initial index in batches
  Always send initial index, even if empty (ref #344)
  Simplify locking in protocol.Index
  Protocol state machine on receiving side
  Log client version on connect
  Handle query parameters in UPnP control URL (fixes #211)
  Avoid deadlock during initial scan (fixes #389)
  Add temporary debug logging for #344 (revert later)
  Tone down UPnP not found message (fixes #406)
2014-07-04 15:16:41 +02:00
Jakob Borg a720f90a70 Don't leak writer and index goroutines on close 2014-07-04 15:16:33 +02:00
Jakob Borg 4a6b43bcae Clean up protocol locking and closing 2014-07-03 13:37:20 +02:00
Jakob Borg bc1d04f0b9 Always send initial index, even if empty (ref #344) 2014-07-02 21:50:11 +02:00
Jakob Borg 381795d6d0 Simplify locking in protocol.Index 2014-07-02 21:49:24 +02:00
Jakob Borg 6ade27641d Protocol state machine on receiving side 2014-07-02 21:33:30 +02:00
Jakob Borg b57f4ed97e Improve XDR performance 2014-06-30 13:35:48 +02:00
Jakob Borg 4f6ee7c8eb Fix linux/freebsd/windows compilation 2014-06-30 01:51:58 +02:00
Jakob Borg 8f3effed32 Refactor node ID handling, use check digits (fixes #269)
New node ID:s contain four Luhn check digits and are grouped
differently. Code uses NodeID type instead of string, so it's formatted
homogenously everywhere.
2014-06-30 01:42:03 +02:00
Jakob Borg 21518adfc8 Include MaxVersion in Cluster Config message 2014-06-23 09:31:59 +02:00
Jakob Borg 33e9a35f08 Don't deadlock on connect close while sending Index (fixes #386) 2014-06-22 08:17:58 +02:00
Jakob Borg 0e59b5678a Further clarify message ordering requirements (ref #377) 2014-06-19 01:59:58 +02:00
Jakob Borg de75550415 Clarify requirements on config messages (ref #377) 2014-06-19 01:27:03 +02:00
Jakob Borg 4dbce32738 Simplify memory handling 2014-06-19 01:02:32 +02:00
Jakob Borg 964c903a68 Only keep track of version (not modified) for sent index 2014-06-16 07:40:17 +02:00
Jakob Borg 537c6b3b69 Reduce ping time & timeout (ref #358) 2014-06-14 11:07:34 +02:00
Jakob Borg 66d4e9e5d7 Prevent possible reordering of Index/IndexUpdate on send (ref #344) 2014-06-12 18:07:06 +02:00
Jakob Borg e63596681d Fix header in protocol spec (fixes #360) 2014-06-11 16:27:39 +02:00
Jakob Borg 38ac4e8f79 Serialize incoming indexes (fixes #344) 2014-06-10 17:05:15 +02:00
Jakob Borg a477989950 Handle invalid file names (Windows) (fixes #238) 2014-06-04 10:09:27 +02:00
Jakob Borg 843fd9bdbd Add license header 2014-06-01 22:50:14 +02:00
Jakob Borg 2db76ae786 Total wire data should always be uint64 (fixes #315) 2014-06-01 21:56:05 +02:00
Chris Tonkinson f2459ef331 case change in documentation 2014-05-31 11:04:25 -04:00
Jakob Borg 0a37fac794 Catch escaped debug print 2014-05-28 20:45:29 +02:00
Jakob Borg ce4f565e2f Add forgotten file 2014-05-28 14:27:08 +02:00
Jakob Borg b44016ff70 Don't ping timeout during long transfers (fixes #280) 2014-05-28 13:25:06 +02:00
Jakob Borg 42ae2898e1 Revert "More memory efficient index sending"
This reverts commit 593f098276.
2014-05-28 10:11:17 +02:00
Jakob Borg 593f098276 More memory efficient index sending 2014-05-28 09:31:46 +02:00
Jakob Borg c2f75d3689 Show counters for total data transferred (fixes #265) 2014-05-24 21:34:11 +02:00
Jakob Borg 1a231d39a5 Default permission bits are 0666 2014-05-24 08:53:54 +02:00
Jakob Borg b60d648e22 Convenience functions for flag testing 2014-05-23 12:53:26 +02:00
Jakob Borg 7bc36cbbd1 Add bit 17, No Permission Bits 2014-05-23 12:53:11 +02:00
Jakob Borg 0d3caa2183 Increase file limit from 100.000 to 1.000.000 2014-05-13 10:05:36 -03:00
jpjp 5ed319ea42 Update PROTOCOL.md
Correct typos
2014-05-13 14:45:32 +02:00
jaseg b61f418bf2 PROTOCOL.md: Fixed typo 2014-05-13 07:11:09 +02:00
Jakob Borg abbb40abd2 Don't deadlock on closing while sending index (fixes #189) 2014-05-11 21:35:44 -03:00
Jakob Borg 1a1f118f1a Restructure protocol code with less locking 2014-05-11 14:30:29 -03:00
Jakob Borg b115fca8a9 Increase ping timeout 2014-05-11 14:30:15 -03:00
Jakob Borg 482795bab0 Streamline error handling and locking, with fix for close() race 2014-05-04 18:22:25 +02:00
Jakob Borg ecc6476308 Revert "Fix protocol close test"
This reverts commit 92c1ce57a6.
2014-05-04 08:16:45 +02:00
Jakob Borg 28e347002a Revert "Streamline error handling and locking" (fixes #172)
This reverts commit 116f232f5a.
2014-05-04 08:11:06 +02:00
Jakob Borg 92c1ce57a6 Fix protocol close test 2014-04-27 13:25:35 +02:00
Jakob Borg 116f232f5a Streamline error handling and locking 2014-04-27 13:10:50 +02:00
Jakob Borg 1207223f3d Report rates over the wire, not uncompressed 2014-04-21 12:49:47 +02:00
Jakob Borg 5064f846fc New Cluster Configuration message replaces Options (fixes #63) 2014-04-13 15:28:26 +02:00
Jakob Borg 15699a39cf Synchronize directory existence & metadata (fixes #11) 2014-04-02 11:57:18 +02:00
Jakob Borg 5eb5a056bf Basic support for synchronizing multiple repositories (fixes #35) 2014-03-30 21:28:13 +02:00
Jakob Borg 2a5c0646c0 Format list of cipher suites 2014-03-29 18:41:06 +01:00
Jakob Borg 7d3c51df9e Spurious whitespace 2014-03-29 18:40:25 +01:00
Jakob Borg 6d314cdc04 Spec clarifications and tightening 2014-03-29 18:34:09 +01:00
Jakob Borg f87b1520e8 The Great Rewrite (fixes #36, #61, #94, #101)
Rewrite of the file model and pulling mechanism. Needs lots of cleanup
and bugfixes, now...
2014-03-29 13:47:21 +01:00
Jakob Borg 804cce7ba0 Ensure that we make progress on the read side of a connection 2014-03-23 08:44:27 +01:00
Jakob Borg 168b23556a Improve TestClose 2014-03-22 17:10:26 +01:00
Jakob Borg 513100bb92 Fix tests for >1 CPU (fixes #99) 2014-03-22 17:06:15 +01:00
Jakob Borg 68d9454bc4 Enforce correct filename normalization (fixes #96) 2014-03-21 09:09:01 +01:00
Jakob Borg 2df78a9313 Reimplement quick startup scan 2014-03-16 08:14:55 +01:00
Jakob Borg 446b21c568 Package descriptions for godoc 2014-03-12 06:32:26 +01:00
Jakob Borg 434a0ccf2a golint 2014-02-24 13:29:30 +01:00
Jakob Borg e7bf3ac108 go vet 2014-02-24 13:24:03 +01:00
Jakob Borg a57e2b358f Fix tests 2014-02-23 13:58:10 +01:00
Jakob Borg 5837277f8d Rework XDR encoding 2014-02-20 17:42:17 +01:00
Jakob Borg f89fa6caed Factor out XDR en/decoding 2014-02-15 12:08:55 +01:00
Jakob Borg 21a7f3960a Add multi-repository support to protocol (ref #35) 2014-02-13 12:52:47 +01:00
Jakob Borg fc6eabea28 Enforce identical member configuration among nodes (fixes #63) 2014-02-09 23:13:06 +01:00
Jakob Borg 9bd4fa5008 Make immediate write error only slightly less cryptic (fixes #51) 2014-02-05 20:58:39 +01:00
Jakob Borg 2ea3558283 Add Options message to protocol 2014-01-23 13:12:45 +01:00
Jakob Borg 4ac204b604 Fine grained locking 2014-01-20 07:38:48 +01:00
Jakob Borg 45fcf4bc84 Implement new puller routine (fixes #33) 2014-01-12 11:02:16 -07:00
Jakob Borg 2935aebe53 Benchmarking 2014-01-09 14:11:55 +01:00
Jakob Borg 1ef86379fb Actually send index updates for version bumps 2014-01-08 14:21:47 +01:00
Jakob Borg 2cfb24892f Add version and invalid bit to protocol 2014-01-07 22:44:21 +01:00
jpjp 2bdab426ff synch -> sync 2014-01-06 22:27:57 +01:00
Jakob Borg 6679c84cfb Refactor statistics printing 2014-01-05 16:20:18 +01:00
Jakob Borg 7e0be89052 Simplify index sending, prevent ping timeout 2013-12-31 21:22:49 -05:00
Jakob Borg 632bcae856 Mostly lock free receive loop 2013-12-30 22:10:54 -05:00
Jakob Borg 42ad9f8b02 Increase ping timeout 2013-12-30 21:32:20 -05:00
Jakob Borg 0f6b34160c Propagate and log reason for connection close 2013-12-30 21:25:45 -05:00
Jakob Borg af3e64a5a7 Remove broken Ping latency measurement 2013-12-30 20:52:36 -05:00
Jakob Borg 7948d046d1 Fix locking around close events 2013-12-30 15:27:20 -05:00
Jakob Borg 673ab42c3c Remove race / unnecessary check 2013-12-30 10:05:13 -05:00
Jakob Borg 005b207737 Atomic connection stats updates 2013-12-30 09:53:54 -05:00
Jakob Borg 1c757db153 Avoid deadlock in index exchange by more fine grained locking 2013-12-30 09:22:34 -05:00
Jakob Borg 976baff44f Memory usage optimizations 2013-12-29 20:33:57 -05:00
Jakob Borg 454e672d42 Handle calls on closed connection 2013-12-28 10:33:18 -05:00
Jakob Borg 74c27ad4e2 Index Updates 2013-12-28 08:10:36 -05:00
Jakob Borg fc4b23fbc6 Locking/Ping cleanup 2013-12-24 11:45:16 -05:00
Jakob Borg 746d52930d Report transfer stats 2013-12-23 12:28:19 -05:00
Jakob Borg 7d235a454d Refactor length check 2013-12-21 23:52:20 +01:00
Jakob Borg 5c1db4f0f4 Close on unknown message type 2013-12-21 08:15:19 +01:00
Jakob Borg 8d3aa97047 Close on version mismatch 2013-12-21 08:06:54 +01:00
Jakob Borg f5987fba32 Error handling, testing 2013-12-21 07:52:32 +01:00
Jakob Borg f774b0a5dc Error handling 2013-12-18 18:29:15 +01:00
Jakob Borg bef9ccfa71 Do ping check after 5 minute inactivity 2013-12-15 16:19:45 +01:00
Jakob Borg 768a7d5052 Simplify async results 2013-12-15 15:58:27 +01:00
Jakob Borg e86296884a Crash for explainable reason when protocol is out of sync (version skew) 2013-12-15 13:18:03 +01:00
Jakob Borg 8589a0fb40 Don't crash on reading empty index 2013-12-15 13:12:32 +01:00
Jakob Borg bfe935b5ab REBASE! 2013-12-15 11:43:40 +01:00