Archived
Compression as a user option (fixes #446)
This commit is contained in:
1 parent
933b61f99f
commit
67a3fb8bf2
10 files changed
+45
-24
No files matched your search
+3
-3
@@ -28,7 +28,7 @@ func init() {
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
Assets["angular.min.js"] = bs
|
||||
|
||||
bs, _ = hex.DecodeString("1f8b080000096e8800ffec7c7173dbb692f8fffe1478fae53d528e4c39497f9d77519c5eeaa6effc9a269938e9dd8cebce502224b1a64895006d6b127ff7db05400a20008a8ad3dcbb99d3b48e042c168bc562b1bb58603c26a7c57a53a68b2527e1e9903c3e7ef40df9677c554cc9f745b920719e0044cecb745af1a26424649412bea4e4f4cdebf7efcebefff0fecdbb73324f333a8c0e00dd8b2c23021d232565b4bca649443e304a8a39344b19614555ce2899150925f073515cd332a709996ea033f2f3d9fb23c63719455c593aa339c3ee624e66503ba5645e5440529a0b1a5e9d9dbe7c7dfe52741f1d1c8c0f7f67599a73322d8b1be8fb29e1654547d057ced3bca2f5ef755631fc5ffe26876368b9c88a699c91074fc93cce1800c5f9a2cae252fd46a083a0822f0c7831e3c1e4e0e03a2e09dbe4331856be2027758b6855245546c3a0a90b46e42258c76c1667eb92ce963ce2659cb32ce634b81c4e04a2aacca631a03f2101f00df163e9759ca5c92b40cca0e2224828a00a682efe32fc3b2ff1ef9ae35f761d5c02594db7118c7b9e2ec2790505699193f0c192f3f5dbb2b84e135a8ec883868cba6c483e1e10f818805142e771957116ddb272fe1f3486b2d7f14ad0fa5f47a7e7ef7e3c7a5f5c0155935d6d4f8be22aa5755ba3a56c6a111401cbcf79ccd3d98f30c7ec55819d879248fc003fe7e9ed531264c0a4a360d454b06a2e2ba2df599107a2fc0e788dff9b2ce2659165803438af4b4f7999014335beb159b106991043d3f906dfb362162354cd3a9c36a0eafa07a886511e4f9ad205e56f7e822214ba6d29ce765c72294242d66a66884e91c29c0a3a50063ede4d5a9530c376f96a73f603b238304a73587342902e1d48ce721cbf419eaa5f97052f664576ba041ec34a6dc8d4606859a276b07083b6c85f629d4d0d2c139ad9a497745d38468ac52507a6c6bebab7c0f494de38c9abd68b1224e72c9f17aaf95654239897502dbf8783310ad26018b16a36a38c698b072b583dcbf5ec61e1a42999c338432c4ec5ccc33fcf04048b329a2ff8124a1e3ed451e00701005cc05da49713a3329d23c25a0944699ed0db377341cb903c874edad8cc6584cb47024f2ca86949e32bb3f8eec0fc76373444f14191878346e0a5389c4b3e0df4e5e262128cb06909521197b365388c4cf6e160e5c8cc31758fe7ae59db86ac539abcd82e9b063a28570168851f68a6290b284cd252959310be0ff55a541758890b442fe745355b62c5877582ba5c56ddb5c9389b798828e90a763f271d76554d4452dce419a841272131e3b44cd955438af8a799199074315f34a189314bc8f9bf08fd64f15e8e23cd531eb684e84118fcbf9cf29ba2bc124b3c18e29a8eb3305882ea0e5ad0b6f6db32ab2661ab0bf72463dbb09b088465cb8a2313bb215d6ad924dac1dc1f63d8a46ccefa8755525e95b98f1dee09f171fde3349e5d2565b106396062cb843dec8a6ea6455c26ca8cb9f34c4ad7001b253b87712c11d8b9d02d5d4a1e9260cc362091abc0a54f61c9c4edc199023a718980c40864607b8de4a1dc834237750a793d417abbedf737d3df61a78d80672cd477a361048afd650c1a6b8b3c4ddae871c6f8664dc1d0d577b88b34b9242727b0fd81e10ac60ad8ba814b6983bdfb9a822d4ce694cf96681053e895dacaddc967d1d57748ed4900053447fbfac3bbb3d362b52e729a7324b8ef2cb438ae0da3c5741713c56f42d16676ec4c7ee2c7307606247de941e0b4607da4f093e7d6b8ea2a1f8aafccf6bdd9ef9b86a67cf78439d7837bcc9a41da7b5da3159017689ba1590c86e84d381c19101cedca10618e1af37948c6e4d1f1f1b10999266aa7af3f9ab50dedcd81098b2c150ea38fe562ef1312b28cd99b9b1c5c8f352df9464c9d678a6a8fd2b114ac125e6e3c58b053217f693e5da385f073cc97d12abe0d8f47e4efe450f252409ce5df6f3865ef0b0e4eea91c337b0a090793cf1484483b7a8f8aeaedf54bc4fdf0698b7f33bf0e341bd9190fa586b31e5b8ef101c80771e29c78fd3bf6a6f2abb1683f47b7aaf83b6b7e4eeee6e72d0766fd007ae98b1f96271dbd270ed3f08b77307928608425ce5681be9b680d1838d1a264a7828e42fd8851733e3c57a0d3d3b31d740a8441d3da03943bdbc39cd62f615589382f3f827f025412faa74231611262e555b0fded4b4a826d0264d32ea9f1129b281cffcdca241df43d8d61e4ceb325dc5e5c689c9c1bed61c22f6b7b49cc176192fe89f3e91b0a3f846ec60af8c0b0acd26f05b0eb71bab3185eb1987510104e855a79ca06329bb18bb00341a266dbe0abd3dcf0ab07ca11bb702c1b80f3aa1066bb1f074be68fbeaa80ed157b795bc6a10bd466c3f5c9a2287802e8318cb23b486322aba451602235ccabf1694e22ae8694dd62d946bd26ed6a56856b07b33b7388a715a2ae55f965df62aeec5337bc9eee4997f05e3585f2449f99539a608134cc3ee810d5d1ae8bb8ef9d658fe3f36048d08302dfedaa94dfd43f985ee9c0624c6a454089a163bf690a92094bbe4a2efcf644f96c20ef18bbfef1df30c9b42821d5bdc31878b2358a18d2a42e57ae41c30649cea1106a4b7ee36dfb29248ac13c37ec4212abc2a1a0c860179e41971b38b750c5461bb38bef40a833a6ad9290d6a4f55b53d37d2c1c0b78f36f30cdd7b1aeb201d63342506acec29e325fa28dfbab73a3c627ced1a787b8a732909ad66616bc234bef4654aa84c68d168d8c9a25dfce9c39cde9ca149cacf29c72824f372663c0683e28a9298607c11839fd076b3f58114b756eb37ebda63aa4f3d1130344e942205a43b516d04d187772ff3789a8963a5d055fd02b6b73587fae7607bb930fde3c359371900a037c410b0e243dfd829c6ac3dce198baf61f750a77035532d699be1a222ff3c7ff33ac2f3e37c91ce5b546a14628362cdc591c1529cb6b2a7e46380c7f0a0008fde834c8a58ff7a9da5f240652cce38efeedadeeaba6056ec06fa82b1014123d189cb73b5bc565f1c08708dc5b9c43e212ef7a9a308c0e8652dc3c411b275cc446f016755097f8a159587f73379b469ce5973dcf9975ab8e81f559c31b7948f6ce11e924f9face1cb4f374a90d89129e12dbda4686bb317d33996747685301543674a1e8de210973123534a7342d57a2b4a92a44c7cb7ecd0ae75fab7bf399771b34e9ff94e25bb1a0933f7d869c38af8dc7d0842c5b13739478fda96b197d3f5f938b949b38ce0891fe105e6aad4120442a88e805a8cb6a73dfac0e8fb57e72266600880aaf00fc43ea5374fdadc8378014a640334df905a27123ca5cdb2cd81a30f53e23d5a5793ff490712bfdab624de4b41f42a65a01395ed6fd89c36d4392f23062a9387c108157fbcd694d5ad66c9dd46a0a257600a6c0f955b546c95be719474d0bdc90cf09c71e08bf109f9f0ea2de338d29c58130340bc4f7986b6cde05d5334f0Line truncated
|
||||
bs, _ = hex.DecodeString("1f8b080000096e8800ffec7c7173dbb692f8fffe1478fae53d528e4c39497f9d77519c5eeaa6effc9a269938e9dd8cebce502224b1a64895006d6b127ff7db05400a20008a8ad3dcbb99d3b48e042c168bc562b1bb58603c26a7c57a53a68b2527e1e9903c3e7ef40df9677c554cc9f745b920719e0044cecb745af1a26424649412bea4e4f4cdebf7efcebefff0fecdbb73324f333a8c0e00dd8b2c23021d232565b4bca649443e304a8a39344b19614555ce2899150925f073515cd332a709996ea033f2f3d9fb23c63719455c593aa339c3ee624e66503ba5645e5440529a0b1a5e9d9dbe7c7dfe52741f1d1c8c0f7f67599a73322d8b1be8fb29e1654547d057ced3bca2f5ef755631fc5ffe26876368b9c88a699c91074fc93cce1800c5f9a2cae252fd46a083a0822f0c7831e3c1e4e0e03a2e09dbe4331856be2027758b6855245546c3a0a90b46e42258c76c1667eb92ce963ce2659cb32ce634b81c4e04a2aacca631a03f2101f00df163e9759ca5c92b40cca0e2224828a00a682efe32fc3b2ff1ef9ae35f761d5c02594db7118c7b9e2ec2790505699193f0c192f3f5dbb2b84e135a8ec883868cba6c483e1e10f818805142e771957116ddb272fe1f3486b2d7f14ad0fa5f47a7e7ef7e3c7a5f5c0155935d6d4f8be22aa5755ba3a56c6a111401cbcf79ccd3d98f30c7ec55819d879248fc003fe7e9ed531264c0a4a360d454b06a2e2ba2df599107a2fc0e788dff9b2ce2659165803438af4b4f7999014335beb159b106991043d3f906dfb362162354cd3a9c36a0eafa07a886511e4f9ad205e56f7e822214ba6d29ce765c72294242d66a66884e91c29c0a3a50063ede4d5a9530c376f96a73f603b238304a73587342902e1d48ce721cbf419eaa5f97052f664576ba041ec34a6dc8d4606859a276b07083b6c85f629d4d0d2c139ad9a497745d38468ac52507a6c6bebab7c0f494de38c9abd68b1224e72c9f17aaf95654239897502dbf8783310ad26018b16a36a38c698b072b583dcbf5ec61e1a42999c338432c4ec5ccc33fcf04048b329a2ff8124a1e3ed451e00701005cc05da49713a3329d23c25a0944699ed0db377341cb903c874edad8cc6584cb47024f2ca86949e32bb3f8eec0fc76373444f14191878346e0a5389c4b3e0df4e5e262128cb06909521197b365388c4cf6e160e5c8cc31758fe7ae59db86ac539abcd82e9b063a28570168851f68a6290b284cd252959310be0ff55a541758890b442fe745355b62c5877582ba5c56ddb5c9389b798828e90a763f271d76554d4452dce419a841272131e3b44cd955438af8a799199074315f34a189314bc8f9bf08fd64f15e8e23cd531eb684e84118fcbf9cf29ba2bc124b3c18e29a8eb3305882ea0e5ad0b6f6db32ab2661ab0bf72463dbb09b088465cb8a2313bb215d6ad924dac1dc1f63d8a46ccefa8755525e95b98f1dee09f171fde3349e5d2565b106396062cb843dec8a6ea6455c26ca8cb9f34c4ad7001b253b87712c11d8b9d02d5d4a1e9260cc362091abc0a54f61c9c4edc199023a718980c40864607b8de4a1dc834237750a793d417abbedf737d3df61a78d80672cd477a361048afd650c1a6b8b3c4ddae871c6f8664dc1d0d577b88b34b9242727b0fd81e10ac60ad8ba814b6983bdfb9a822d4ce694cf96681053e895dacaddc967d1d57748ed4900053447fbfac3bbb3d362b52e729a7324b8ef2cb438ae0da3c5741713c56f42d16676ec4c7ee2c7307606247de941e0b4607da4f093e7d6b8ea2a1f8aafccf6bdd9ef9b86a67cf78439d7837bcc9a41da7b5da3159017689ba1590c86e84d381c19101cedca10618e1af37948c6e4d1f1f1b10999266aa7af3f9ab50dedcd81098b2c150ea38fe562ef1312b28cd99b9b1c5c8f352df9464c9d678a6a8fd2b114ac125e6e3c58b053217f693e5da385f073cc97d12abe0d8f47e4efe450f252409ce5df6f3865ef0b0e4eea91c337b0a090793cf1484483b7a8f8aeaedf54bc4fdf0698b7f33bf0e341bd9190fa586b31e5b8ef101c80771e29c78fd3bf6a6f2abb1683f47b7aaf83b6b7e4eeee6e72d0766fd007ae98b1f96271dbd270ed3f08b77307928608425ce5681be9b680d1838d1a264a7828e42fd8851733e3c57a0d3d3b31d740a8441d3da03943bdbc39cd62f615589382f3f827f025412faa74231611262e555b0fded4b4a826d0264d32ea9f1129b281cffcdca241df43d8d61e4ceb325dc5e5c689c9c1bed61c22f6b7b49cc176192fe89f3e91b0a3f846ec60af8c0b0acd26f05b0eb71bab3185eb1987510104e855a79ca06329bb18bb00341a266dbe0abd3dcf0ab07ca11bb702c1b80f3aa1066bb1f074be68fbeaa80ed157b795bc6a10bd466c3f5c9a2287802e8318cb23b486322aba451602235ccabf1694e22ae8694dd62d946bd26ed6a56856b07b33b7388a715a2ae55f965df62aeec5337bc9eee4997f05e3585f2449f99539a608134cc3ee810d5d1ae8bb8ef9d658fe3f36048d08302dfedaa94dfd43f985ee9c0624c6a454089a163bf690a92094bbe4a2efcf644f96c20ef18bbfef1df30c9b42821d5bdc31878b2358a18d2a42e57ae41c30649cea1106a4b7ee36dfb29248ac13c37ec4212abc2a1a0c860179e41971b38b750c5461bb38bef40a833a6ad9290d6a4f55b53d37d2c1c0b78f36f30cdd7b1aeb201d63342506acec29e325fa28dfbab73a3c627ced1a787b8a732909ad66616bc234bef4654aa84c68d168d8c9a25dfce9c39cde9ca149cacf29c72824f372663c0683e28a9298607c11839fd076b3f58114b756eb37ebda63aa4f3d1130344e942205a43b516d04d187772ff3789a8963a5d055fd02b6b73587fae7607bb930fde3c359371900a037c410b0e243dfd829c6ac3dce198baf61f750a77035532d699be1a222ff3c7ff33ac2f3e37c91ce5b546a14628362cdc591c1529cb6b2a7e46380c7f0a0008fde834c8a58ff7a9da5f240652cce38efeedadeeaba6056ec06fa82b1014123d189cb73b5bc565f1c08708dc5b9c43e212ef7a9a308c0e8652dc3c411b275cc446f016755097f8a159587f73379b469ce5973dcf9975ab8e81f559c31b7948f6ce11e924f9face1cb4f374a90d89129e12dbda4686bb317d33996747685301543674a1e8de210973123534a7342d57a2b4a92a44c7cb7ecd0ae75fab7bf399771b34e9ff94e25bb1a0933f7d869c38af8dc7d0842c5b13739478fda96b197d3f5f938b949b38ce0891fe105e6aad4120442a88e805a8cb6a73dfac0e8fb57e72266600880aaf00fc43ea5374fdadc8378014a640334df905a27123ca5cdb2cd81a30f53e23d5a5793ff490712bfdab624de4b41f42a65a01395ed6fd89c36d4392f23062a9387c108157fbcd694d5ad66c9dd46a0a257600a6c0f955b546c95be719474d0bdc90cf09c71e08bf109f9f0ea2de338d29c58130340bc4f7986b6cde05d5334f0Line truncated
|
||||
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
Assets["app.js"] = bs
|
||||
@@ -73,7 +73,7 @@ func init() {
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
Assets["favicon.png"] = bs
|
||||
|
||||
bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d697bdc3692f0f7fc0ab8278734afd82dd98e27af2269578733510e5b8f244f369b273b0f9a44371191040d80927b14cd6fdf2a80f7d164ebb266271f6c3549b05028d40da0b8f3ece8ede1f9cf27af89afc360ef939d678ef3c964420e45bc907cee6bb276b84e9e6f6ebd24dfd10b31250742ce098d3c681169c9a78916529135c518d13e23876fdf9c9f1e1fbc3b7f7b7a46663c60eb6304b71f04c480534432c5e425f3c6e49d6244cce035ae88128974197185c7085ccec5259311f3c874019d911f8fcf1da517014358017759a4b03baa890b4fa78ccc440228f1c8e0f0c3f1e1eb3767af4df7e34f1c0746858323018de6bb23168d483477681cef8ed42272a1fb686e6eb9382211044cee8eceb227875a0623e20654a9dd11360a04bd18214846bdbd4f08d90999a6c4f5a9544cef8e123d73be1a150f7cad6387bd4ff8e5eee8bf9c77fbcea10863aaf9346000167a6411bc75fc7a977973567a2fa221db1d5d7276150ba94b4dafb8a7fd5d8f5d02191c73b10103e79ad3c0512e0dd8eed678b301c863ca953cd65c4425588d6634d1be908d16018f2e60e202a0183cd66ea2097711922fd96c7734a39778398e81907b9fe00b9aeb80ede54424bf93eb6b9ce73730bf6fa0a7b5f59b9b9d896d957760814d85d04a4b1a4f5ca526f9d538e4d118ee8c523c901b94cf98b6189a6ba217310c42b30f1a5f364f08990a6f41aecd4f4262ea79809033155a8b709bfc6533fef075fa6c0683766634e4c1629b8cbe65c125d3dca5e40d4bd86883e43736c8be046a6f104523e50037f3990571f389f99304ffcfff32ef31a472ce23478b789b6c8dbf6461a5ed18917542110915531080eb365c7e64512036c88f22a22efc05c953021872838c0e416c389380e215609883a9754181d990bb3d941b6f4f1bd6d5720f59a7f914e9d5fd740613d2fd3487ec2d85dcfa3487ece554980ae93169691789a836ae40cc458dccdb64f3ebea4c97ee1830ce97c584c7427194886de42990c9cb7a075c692712ce3401a5a0f3aecc6dc3700e329c45adf6220c2c48c2287fc7e32a0e28cc258f80d799330d847b91e101ac6d2519f831e38f9c718cda04d6291e4ca97b3197a8f1b0172101fdf974edf98b571be4f9cb4dfc6f6bfdeb2a0525f578a2b6c98bd2e033fa6cc51fc8cbe27e46c8e770fb7976fba63e2e60b368ec51501c353e0fd80cb0dd2c18bd32bcadcde2b6e17c1af039d21f07f9753fad3202678ab8495f9c0bf28c87a83569a45b24016c44feda95cf35738ccce0ab57a0682adae08a59eabfdcdc6c85e435148b1dff73502b7d58786315d220702a54ec44287df93f43e6714ad642fa21a5e95f5efd25feb09e0348e50aac6c0c6a02587acfde294b5fde9890c99f81f7c1d66a4249ae6b0958328d6a9b8de7e3edbc2df9331045829699826125b10f94562054040621ae084ed554327aa1d00e07025e972c9602de098005270a2c2418f42baefd3244cb4f6a4cfe3cc96fd78820814cd9acdce4ecb8333122089678624df1273b6684c6fe801743ce450ca222093a00782fa297b91da797f8c4fe41f592fdf4d88c2601985bf0039869c7e7d4184d6b4b763c9e03411b4961d0327d865608a4a2da873395e02c8df6767838cf9ea0de1a11255d34630e5e395bcfbf32d69358eb3e7af11c6cabe13dfb7bb2477263ba63d82603e6730f14a8f301ac5db57f6b5812cda0f7df8158f068afd50a1b707b698b6c2449501a47469dd24f23b0f9c08d0547178a83014fe239a81b761ccdc438625725fa9886e0316a11a5a6da5ee4fed554475907f813fe153362bd03eba8810b789177b4b65eeda04c8479b0887df44d48fecb717d7629e16f128fb2517fce42950b7e0104642152601858f1cbb9a44102ff33a9802b7647d7d7e5e1620ba56f6e467befec5d604272fd59dafab39b2a914d47134b8212252701afd2351d8b2745ec89aba83a5a9a12e64fa37a3be0ebf91cbd4c5430e945194a6d8c7baf3dae2d82ef3f8fa6408f9d69ceea20ba1aa935857fb4d27fc12879bf218b920a9266187b39aae53904ad79ca628173d83b71bee7d566ac3e847dcf23080eccba908bb429625c256a1f46281f833002aa5c314b991eac10641f3e3921f925f7506c56c01aac823eb35a5b0d42dd15f31eb43370b723231f4ec5f712c3be3e6c7cb031c7470f4943e5271a197810d26236ebc5d882bb1dfdc0806b2af540369c4173bf079f530bf1212948a722198632986ca91d16c67ad1273d087309d23b932468d79ec5939d098cc6c48913302fd61de8b0e4b63dfa0fdf70a9343802571b4444c18240e87b15113e2311739952542ebe26294dc91595113a4ca9af91824f0de233803fe3f3e3084d78aea60170e1385490099cd0038fa06c5d4bcf810e2c20e67f27edb66a11ea6d91d69e69b5e3bf28d9b44a1b138a8f321e81789279cc03cfeac55e4ebbee0ed0efaa2bfcb83485e73e667690068934de14f1a92253c6208ea09798e54934f879e083ba1084c11bdeb870774898e034a488a1bb993632b91e7030aaa0c73b93b8ca1ebde863e059f35206f829e89ca8b0eca39018e2c4d4337a5449aebb100d960a40da66fcc3a86532ab372a97a58bf4674338d83c09c091065eaeb17e85c93378f862619e4d1c4dd6d0fbc6a069bd80d02a10af96c98383f1703c22dc437aa73d70a6964b462a45d7d7f8ca213e58c35fe3e323708ccd14c225a3dac2c4b006fffe0068d77ccea5525769072d4108db44afd6ccb87615cf0de810d058650e5d0c3e1966e8fe54196fe60de24d18d8a73cf2d80774481be00778ca65878b582a8d8fb864ae99bedf8949069e50eddfdcf4812f448314110b52584140e8fa96c2679aeaa4988356a49bbe790ec4b9f219b8e44974111907f79dfdd174ba87c352c09d31465067f6c79d60b934b2dafa2cfdd50fad0103b4621b5375e06032b03d1d11b2767d8d704f987481a3e89c95a4e0b3f576ec56c69c7bad4cde8ef631347e449cbb9ed4621d7b0b4c6255f2eb2a355506992a2a4b6155f0338126b964377a1b626aeb0deb09a076d9b749a8f22ba496914daf9596dc88403b516d5aa96b5eb5ec7a840ffd7e830853db6b0c7383520a0f00f6928ebd4a9224cd65a40aeef8c82c4d789d639a740feaeee3b5c93247c42cea19f737a6e53d0c38d7e8771a77e6ec8610ca05bfa494fc75cca34b1af02eee194c96d4d175149ff7d1e5b594e28e64691fc3c7648b7920a67d11f25fa10d0ddaf21ff74184b981fe0d0f9802cb4f832bba506f9270cae4cd4d437f730d18a6dd6f900e58070b6d604d794491f90e3e1e797d11f651f707e13e1c7103047e3fb435a09e1069dd40249e83799040d0befcdd5b8803dfce4cec7717fa76b7a71d6a2a8278d7d27f8f6c567342e20a83e1c229cdd21ecd592c80dc75121152cb1c36bc91d2c832a76be9e0767761747b9b3de86c9283Line truncated
|
||||
bs, _ = hex.DecodeString("1f8b080000096e8800ffec7d697bdc3692f0f7fc0a9893439a57ec966cc79357917a578733510edb8f244f369b273b0f9a44772322091a0025f7289adfbe5500efa3c9d665cf4e3ed86a92205055a81b4071efc9f1eba3f39fdfbc240b1d06934ff69eb8ee27e3313912f152f2f942938da34df2747be739f98e5e88293914724e68e4438b484b3e4db4908a6c28c6885e3072f4fad5f9e9c9e1dbf3d7a76764c603b639c2ee0e828098ee14914c3179c9fc1179ab181133788d2ba244223d463ce13302977371c964c47c325dc260e4c7937357e965c0b0af807b2c52381cd5c483a7534666220190786460f8e1e4e8e5abb39766f8d127ae0b58217224a0d17cdf619143a2b94be378df51cbc883e1a3b9b9e52146220898dc77ceb227475a060ef102aad4be838d02412f1cec92517ff209217b21d394780b2a15d3fb4ea267ee574ef160a175ecb27709bfdc77fecb7d7be01e8930a69a4f0306ddc2882c82b74e5eee337fce4aef453464fbce256757b190bad4f48afb7ab1efb34b20836b2eb60071ae390d5ce5d180edef8cb61b1df94c7992c79a8ba8d457a3194df442c8468b804717307101500c1e6b2fd1847bd8d342b2d9be33a39778398a8190934ff005cd75c0263911c9efe4fa1ae7f915ccef2b186963f3e6666f6c5be503d8cea64268a5258dc79e52e3fc6a14f26804779c140ee406b5604c5b08cd35d1cb1890d0ecbdc697cd1342a6c25f926bf3939098fa3e00e44e85d622dc257fd98edf7f9d3e9b01d2ee8c863c58ee12e75b165c32cd3d4a5eb184395b24bfb1450e24507b8b281a2917b899cf6c17379f983f49f0ff165fe6238654ce79e46a11ef929dd1972cacb41d21b06e2822a1620a0270dd06cb8f2c0ac416f95144d483bf20794a00436e11e708c4863309205e01847937b52128301b72b78f72e34fb4615d2d27c83acda748afeea7339890eea779cffeca9e5b9fe63dfb3915a642fa4c5ada4522aae11588b9a89179976c7f5d9de9d21dd38dfb6531e1b1501c256217790a64f2b23e0057da8d843b4d4029e87c2873db309c8b0c6741abbd0888054918e5eff85cc50185b9e411f03a73a781f02e323880b5ad24033f66fc91338e519bc03ac58329f52ee612351e8e2224803f9f6e3c7df6628b3c7dbe8dffed6c7e5da5a0a43e4fd42e7956423ea3cf4efc9e3c2fee67847c0ab79f66b76fea78019b45239f82e2a8f179c06600ed76c1e815f476b68bdb86f369c0e7487f44f2eb7e5a6504ce147193be3817e4090f516bd248b74802d888fcb5ab05d7cc353283af5e81a2a968832b66a9ff7c7bbbb527bfa1582cfe4f41adf441e18f544883c0ad50b113a0f4e5ff0c99cf29d908e9fb94a67f79f197f8fd66de412a576065635013c0d2137ba72c7d796342c67f06de075bab0925b9ae2560c934aa6d369a8f76f3b6e4cf4014095a660a8695c40ba0b402a1228084b822385553c9e885423b1c08785db2580a782700161c2bb09060d0afb85e947bb4fca446e4cfe3fc768d0812c894cdca4dce8e7b6323826089c7d6147fb2673034f607bc18722e62101549d001c07b11bdcced38bdc427f60faa97eca7cf663409c0dc821fc04c3b3ea7c6685a5bb2e7f3bc13b491149096e933b4422015d531dca90467c999ecf1709e3d41bde510253d34632e5eb93b4fbf32d69358ebee3c7b0ab6d5f09efd3d9e90dc98ee19b6c93a5b701f14a8fb1eac5d757c6b5812cd60f4df8158f068d26a854d7793b44586491294f0c8a853fa69043647dc587074a13818f0249e83ba6127d14c8c227655a28f69081ea316516aaaed45ee5f4d75940d803fe15f3123d63bb08e1ab88017f9401b9bd501ca449807cb7881be09c97fb9de825d4af89bc44e86f5e72c54b9e0179d802c440a0c032b7eb9973448e07f261570c5be737d5d46175b287d73e34cdedabbc084e4fab3b4f5673755229b81c69604254a8e035ea56b8a8b2f45ec8baba88a2d4d09f327a7de0ef87a3e472f13154c7a51eea586e3e4a5cfb505f0dde7d114e8b137cd591d445723b5a6f08f56c62f18251f3764515201d2a031c9412dcf2168cd53160b9cc3de895bf87e6dc6ea281cf83ec1eec0ac0bb94c9b22c455a2f64184f2310822a0ca15b394e9810abbec83272724bfe43e8acd1a508355d067566bab41a07b62de0376d6ddedc8c88753f19dc4b0af0f9a05d89893e387a4a15a241a197810d06236eb85d876773bfa8101d754ea816c3883e68b1e784e6d8f0f49413a15c93090c1644bedb230d6cb3ee9c13e5700bd374e8276ed593cd91b0336264e1c8379b1ee408725b7edd17ff8864ba5c111b8da22220a960442dfab88f0198998c794a272f93549694aaea88cd0614a7d8db4fbd4203e81fe677c7e12a109cfd534745c380e15600237f4c123285bd7d273a0030b88f9df4d87ad5a847a5ba4b56f5aed2d9e956c5aa58d09c59d8c47209e643ef3c1b37a36c969d73d00fa5d75851f97a6f07c81991da441228d374516549129631047d04bccf2241afc3cf0413d08c2e00d7f54b83b244c701a52c0d0dd4c1b995c0f3818d5ae477be3b8ca1ebde063e059f35206f829e89ca8b0eca39018e2c4d4337a5449aebb100d960a40da66fcbdd33299d51b95cbd245fab3211c6c9e04e048032fd758bfc2e4597ff862619e4d1c4d36d0fbc6a069b3e8a155205eac920717e3e1d821dc477aa72370a6564b462a45d7d7f8ca113ed8c05fa39363708ccd14c225a3daf689610dfefd01c0aef99c2ba5aed20e5a8210b6895ead9971ed2a9e1bd021a0b1ca1cba187c32ccd0fda9826fe60de24d40ec531ef9ec3d3aa48dee0778ca65878b582a8d8eb9649e99bedf894906bea17a7173d3d77d211aa4885890c20a02426f61297ca6a94e8a396805bae99be79db8570b062e79125d44c6c17d6b7f349deee17d29e0ce1823a833fbe34e7d7934b2dafa2cfdd5df5ba30fd08a6d4cd50183c9c0f60c44c8c6f535f6fb86490f388ace59490a3edb6c876e6dc8b9dfcae4ed609f40e34784b9eb492dd6b1b7c0245625bfae52536590a9a2b21456053f1368924b7663b421a6b6deb09e006a977d9b842abf426a19d9f45a69c98d08b413d5a695bae655cbae47f870d16f10616a7b8d616e504ae101f4bd6260bf9224497319a9823b39364b137e274ee36ea4ee8eaf4d96b92266510fdedf9896f78070aed1ef8477e6ec8610ca05bfa494fc75c4a34b1af02eee194c96d4d175159ff7d1e5a594e28e6469c7e143b2c53c10d3be08f9afd086066df98ffb20c2dcf4fe0d0f9802cb4f832bba54af9270cae4cd4d437f730d10a6c36f918ebe0e97daf435e51145e63bfc70e45d88b08fba3f08efe1881b60e7f7435bd3d547445a2f1089ef621e2410b42f7ff71ae2c0d73313fbdd85bedded69879a8a20deb5f49f90ed6a4e485c61305c38a559daa3398b4527779d44eca9650e1bde4809b3cce95a89dcfe3e6037d9ee01679b1cLine truncated
|
||||
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
Assets["index.html"] = bs
|
||||
@@ -88,7 +88,7 @@ func init() {
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
Assets["lang-de.json"] = bs
|
||||
|
||||
bs, _ = hex.DecodeString("1f8b080000096e8800ffd459ef6e1cb90dff7e4f411838c006dcbdf47aed877c299ca4b9ba499c4562370860a0d08e34bb8267a43949b39b3dc3459fa6405fa38fd227294949f36f77e3dc9fe4920fc96ac81f258a222952befd0a008ecee6e7f04c6d8f1ef6c3d3c858d8363099078928255c58a9989ec73deb956aacd7c1ba6d060c281dcc29ef139f8723861ab254c7ac2abb813363cdb6b6ad872b2f968a2777419be59f59e63e4c9aca18db9a42c16be5d6cab1e484948107668a22879851f851bbe48df06f243d9e5fc155d095fe51046d0d71a7a404acac670bc74122da66ebf47215e0bfff816f1ffcfe3bf89bb8b10b7864dd12849110560a4a4b36402de0b135c1e9458b96f70f79ae5f221f5578a22a1558b1344a64ed0b6b8c2a8292cc1c7e27882dda5a99d06d7c4cc8a08da9ac409f116995112182fe22353b25fff6a4ce29fb8f0173ec965352021ab1a8145ccdcd9c4183cf0c08ca4161eb5a80578d70a89484eb23dd3ca4a3bf3e02919d16ac4386dc1a51eb0219c142a35c695d0d022d5ae3ae0b906426f4b62dd8928d9fc46771f94fb558da9c739643210e22f1a9460bfc5d398f6794dc7e4a1a0071d15a7b62c042070fc229d04b631d2abe59290395b537e45aa81a142b6196cacf307a14a0c4d3b34b287116bff541d5d1061f61d65edd38538d3691643189f6051f44dde0f73aeecf83362060e64347c0f890782ebcb0534d250a84e3c292e341c2620b7e6b8ab0428dba3d7c8aa5a61b6b9c0d1c80503a5b67c3402d241bc6a20b38301826fe1430c8770038ad673e6c7455c10235c66825f5c979d0734276a4a26ad1b86eb2dbdf60fd6402361b2b134791fcfdd5399cb58837180d9c74602ebcdf58c729eb7dec8313a093b903c2ccea059f6b54d1c0e886db4b4f22ca28977260374eacca2e44054f723833644a1b41c7b96f9718c1e7b2e2e5f8379138ca60de0520abbd871ae1cf946a726660e4981041cf71279e926fa544bce2269404b3c5749353d25e20cc3137ee4147fa50646c951d5a84be10e4594c27d4f03303de0167a9c7ecbe7c4fc1f133fde81b7f1225dec3efa778d906cc0746521a7ba57e68d1203e8befe545d10bd6eac2769f182de74f222d0e078c0b51ab8ec51f99894e9b383c8ae497cf8884ffa7cfb2acb461581e2686e9e86648c6907e59c26b4c50cc1b7c7680a5e53d91499eeb1aafe481e1dec74e13e0b93a2db369d95e3bb4089d8bb0ea33473ee3986514de1f74f678d3362da5117893f24de114dfb9ba045c5c5a45f928807a87313b834b94c4ba0dd7c2cce544418e71fccf13288421e1d6a3a4c054087e85ae57e0fecb78bf7e3eca24e370dcc146c4b26af899004eadb5da8cca5c46eea3479157672fa685ee9494802a158a704ef5ce1af77e1c1de000278b75768bfe3e26ec8062e04e8089b803a6039a409994819eacbaabee2eb91308225a2c0f470cb8504ac6ba794289b0d762cde1c5bf89844be57aac1b2716a651b419b9125faee4697e4517325fa80387dbe8b0e23bfba78ae48502353b3ece90c689c5c26f10cc7578844c6903a8647a874a9f19805e0518d278b5961add9aaabc71e8cce0051600e4e744f798d9289804c64daa0ce2b6e25e7fc5e93a0537c909f3b06718acea50041b18ac55524ea6426f50b6502118da4ebb9f2492176a8344c138431a27966d1d36b58f536b34fc4c00f6b747ce6e5229332664906d9ae8a17998186d43410fdfc053ebda9a0113520262de87395684b6b0d5de62e81e443fcdca61dfd1a79529a907e6f848c39ec10533ac301f2e142ee2d16440369b65f861c074126df048386446adb3b765d890bfa373f1a30095f354f02a5b3e1caff2b36698aae115f63614b6e8b4a4e82944afa64e89b23ed6e2d8cad61cbfb045278879ca282cbb6392c5f96798c283dbe27cfffbd7bfc74a7e84f9e316e8de12cba5534bbedcc8aff1e475915a887651e9a2da82580b5d71372e02dcdeb6aebabb230d7f8978af00aa58ea65eb62e1de1fbba0768d5a13ba68f14ed56b5a6506bd5d6a4a142e256d344f06c55c8a57e368ea5956f9d32dd86f5299c26d1bb252cbd7b5e3eb9a8e8fdb2a8916c2cc77ce142e17a842c14ae2869f20504dec3f033d2960bb46b2e0f58fd4e9192c2c9aa6eb62718ab2cba78e96c366971e3078e2d8e3497291aeab43dfa9592f761ebe71a416955de2c90add1bedcbddc0f010302a1069525aefca387ac2002c1bb4e42d6095d656922617f0c76f07359d0f8edc004fd993a3e3102f890a6f5fd49eb762da7a81e3d3a88c6f4491f628855f297234166ac83d443530eee7a6586fb4ac13d53996efe54525cc4da7fb41feee14e812bc53e0d4958ae3d2b6a846ba61afe3dbe075fbe0c11f14a40bfdfa289f682ad2fbc70b0cce9dad70da4e1b81e3f45475b2a3ef6fabccc0387c32745eb61a3c47a17a37d8bf9fd2fb1b3fa1f51bf860817d8b74f83a5559223349eb8387fc73e57b15dcb04538b8d03da843d3f5caf8698579fca7effa40e1b7da0a6b9a93fdb1729a03a57b90a77f1275389e9d9cf2a1c2f1ef4e988b9e82c082dce9f81f27a3350ce6c2fd3bfa1c15bdcfa8add13fb4ea9e0d65d0dec91aeab93fe0c8f7e3e29457e6c6a42a3b0f13a321df7f929eeb065f99bd74f4a67969e1f6ebe4bd5fdf4568cfb94d9cae32b96a467f09197e26005d83cce241262af8ebe5e5fc353736df5f9d47c09418c1e9698e207918196fe8c959487e72125c57507a39e5f8a6e4546b3e731106afb49d634949cfd4c3dce4e9452658cb16ff68731f52bd3fdefd8b28183d1e8cea073df00ecd9df152f1b20b153654b3c55690de5fb69c6a0b7a3bc1820425f45ab1f7b3f2b508c50ad43bf47b2c48b33435957d6ffaa5aa1e0dff36f6716fbb66ed2dd6483c016b8efad2c352c0d3533987f3ae3f041627d4f4171c128983afeefe0f0000ffff010000fffff97a48b0bf1e0000")
|
||||
bs, _ = hex.DecodeString("1f8b080000096e8800ffd459ef6e1cb90dff7e4f411838c006dcbdf47aed877c299ca4b9ba499c4562370860a0d08e34bb8267a43949b39b3dc3459fa6405fa38fd227294949f36f77e3dc9fe4920fc96ac81f258a222952befd0a008ecee6e7f04c6d8f1ef6c3d3c858d8363099078928255c58a9989ec73deb956aacd7c1ba6d060c281dcc29ef139f8723861ab254c7ac2abb813363cdb6b6ad872b2f968a2777419be59f59e63e4c9aca18db9a42c16be5d6cab1e484948107668a22879851f851bbe48df06f243d9e5fc155d095fe51046d0d71a7a404acac670bc74122da66ebf47215e0bfff816f1ffcfe3bf89bb8b10b7864dd12849110560a4a4b36402de0b135c1e9458b96f70f79ae5f221f5578a22a1558b1344a64ed0b6b8c2a8292cc1c7e27882dda5a99d06d7c4cc8a08da9ac409f116995112182fe22353b25fff6a4ce29fb8f0173ec965352021ab1a8145ccdcd9c4183cf0c08ca4161eb5a80578d70a89484eb23dd3ca4a3bf3e02919d16ac4386dc1a51eb0219c142a35c695d0d022d5ae3ae0b906426f4b62dd8928d9fc46771f94fb558da9c739643210e22f1a9460bfc5d398f6794dc7e4a1a0071d15a7b62c042070fc229d04b631d2abe59290395b537e45aa81a142b6196cacf307a14a0c4d3b34b287116bff541d5d1061f61d65edd38538d3691643189f6051f44dde0f73aeecf83362060e64347c0f890782ebcb0534d250a84e3c292e341c2620b7e6b8ab0428dba3d7c8aa5a61b6b9c0d1c80503a5b67c3402d241bc6a20b38301826fe1430c8770038ad673e6c7455c10235c66825f5c979d0734276a4a26ad1b86eb2dbdf60fd6402361b2b134791fcfdd5399cb58837180d9c74602ebcdf58c729eb7dec8313a093b903c2ccea059f6b54d1c0e886db4b4f22ca28977260374eacca2e44054f723833644a1b41c7b96f9718c1e7b2e2e5f8379138ca60de0520abbd871ae1cf946a726660e4981041cf71279e926fa544bce2269404b3c5749353d25e20cc3137ee4147fa50646c951d5a84be10e4594c27d4f03303de0167a9c7ecbe7c4fc1f133fde81b7f1225dec3efa778d906cc0746521a7ba57e68d1203e8befe545d10bd6eac2769f182de74f222d0e078c0b51ab8ec51f99894e9b383c8ae497cf8884ffa7cfb2acb461581e2686e9e86648c6907e59c26b4c50cc1b7c7680a5e53d91499eeb1aafe481e1dec74e13e0b93a2db369d95e3bb4089d8bb0ea33473ee3986514de1f74f678d3362da5117893f24de114dfb9ba045c5c5a45f928807a87313b834b94c4ba0dd7c2cce544418e71fccf13288421e1d6a3a4c054087e85ae57e0fecb78bf7e3eca24e370dcc146c4b26af899004eadb5da8cca5c46eea3479157672fa685ee9494802a158a704ef5ce1af77e1c1de000278b75768bfe3e26ec8062e04e8089b803a6039a409994819eacbaabee2eb91308225a2c0f470cb8504ac6ba794289b0d762cde1c5bf89844be57aac1b2716a651b419b9125faee4697e4517325fa80387dbe8b0e23bfba78ae48502353b3ece90c689c5c26f10cc7578844c6903a8647a874a9f19805e0518d278b5961add9aaabc71e8cce0051600e4e744f798d9289804c64daa0ce2b6e25e7fc5e93a0537c909f3b06718acea50041b18ac55524ea6426f50b6502118da4ebb9f2492176a8344c138431a27966d1d36b58f536b34fc4c00f6b747ce6e5229332664906d9ae8a17998186d43410fdfc053ebda9a0113520262de87395684b6b0d5de62e81e443fcdca61dfd1a79529a907e6f848c39ec10533ac301f2e142ee2d16440369b65f861c074126df048386446adb3b765d890bfa373f1a30095f354f02a5b3e1caff2b36698aae115f63614b6e8b4a4e82944afa64e89b23ed6e2d8cad61cbfb045278879ca282cbb6392c5f96798c283dbe27cfffbd7bfc74a7e84f9e316e8de12cba5534bbedcc8aff1e475915a887651e9a2da82580b5d71372e02dcdeb6aebabb230d7f8978af00aa58ea65eb62e1de1fbba0768d5a13ba68f14ed56b5a6506bd5d6a4a142e256d344f06c55c8a57e368ea5956f9d32dd86f5299c26d1bb252cbd7b5e3eb9a8e8fdb2a8916c2cc77ce142e17a842c14ae2869f20504dec3f033d2960bb46b2e0f58fd4e9192c2c9aa6eb62718ab2cba78e96c366971e3078e2d8e3497291aeab43dfa9592f761ebe71a416955de2c90add1bedcbddc0f010302a1069525aefca387ac2002c1bb4e42d6095d656922617f0c76f07359d0f8edc004fd993a3e3102f890a6f5fd49eb762da7a81e3d3a88c6f4491f628855f297234166ac83d443530eee7a6586fb4ac13d53996efe54525cc4da7fb41feee14e812bc53e0d4958ae3d2b6a846ba61afe3dbe075fbe0c11f14a40bfdfa289f682ad2fbc70b0cce9dad70da4e1b81e3f45475b2a3ef6fabccc0387c32745eb61a3c47a17a37d8bf9fd2fb1b3fa1f51bf860817d8b74f83a5559223349eb8387fc73e57b15dcb04538b8d03da843d3f5caf8698579fca7effa40e1b7da0a6b9a93fdb1729a03a57b90a77f1275389e9d9cf2a1c2f1ef4e988b9e82c082dce9f81f27a3350ce6c2fd3bfa1c15bdcfa8add13fb4ea9e0d65d0dec91aeab93fe0c8f7e3e29457e6c6a42a3b0f13a321df7f929eeb065f99bd74f4a67969e1f6ebe4bd5fdf4568cfb94d9cae32b96a467f09197e26005d83cce2412652795f375436a70a794aea817fbdbc9cbfe60ee8fbabf30c1d132338bde111240f23e30dbd4d0bc96f53820b10ca43a79c08288bd59a9d4384c1736ee78152d27bf63089797aba09d6f2d17cb4b90fa9defbc1fe45148c5e194685861eb891e6167aa978d9850a1b2aee62cf480f355bcec9053db260e582127aad384c58f95a846205ea1d060856ae599abacfbe89fd52558f867f1b1bbeb75d57f7168b299e8035477de9052ae0e9a99cec79d71f028b136afa530f89c4c15777ff070000ffff010000ffff15606253e81e0000")
|
||||
gr, _ = gzip.NewReader(bytes.NewBuffer(bs))
|
||||
bs, _ = ioutil.ReadAll(gr)
|
||||
Assets["lang-en.json"] = bs
|
||||
|
||||
@@ -288,6 +288,7 @@ func restPostConfig(m *model.Model, w http.ResponseWriter, r *http.Request) {
|
||||
nm := newCfg.NodeMap()
|
||||
for k := range om {
|
||||
if _, ok := nm[k]; !ok {
|
||||
// A node was removed and another added
|
||||
configInSync = false
|
||||
break
|
||||
}
|
||||
|
||||
@@ -654,7 +654,7 @@ next:
|
||||
wr = &limitedWriter{conn, rateBucket}
|
||||
}
|
||||
name := fmt.Sprintf("%s-%s", conn.LocalAddr(), conn.RemoteAddr())
|
||||
protoConn := protocol.NewConnection(remoteID, conn, wr, m, name)
|
||||
protoConn := protocol.NewConnection(remoteID, conn, wr, m, name, nodeCfg.Compression)
|
||||
|
||||
l.Infof("Established secure connection to %s at %s", remoteID, name)
|
||||
if debugNet {
|
||||
|
||||
+4
-3
@@ -93,9 +93,10 @@ func (r *RepositoryConfiguration) NodeIDs() []protocol.NodeID {
|
||||
}
|
||||
|
||||
type NodeConfiguration struct {
|
||||
NodeID protocol.NodeID `xml:"id,attr"`
|
||||
Name string `xml:"name,attr,omitempty"`
|
||||
Addresses []string `xml:"address,omitempty"`
|
||||
NodeID protocol.NodeID `xml:"id,attr"`
|
||||
Name string `xml:"name,attr,omitempty"`
|
||||
Addresses []string `xml:"address,omitempty"`
|
||||
Compression bool `xml:"compression,attr"`
|
||||
}
|
||||
|
||||
type OptionsConfiguration struct {
|
||||
|
||||
+1
-1
@@ -372,7 +372,7 @@ syncthing.controller('SyncthingCtrl', function ($scope, $http, $translate, $loca
|
||||
};
|
||||
|
||||
$scope.addNode = function () {
|
||||
$scope.currentNode = {AddressesStr: 'dynamic'};
|
||||
$scope.currentNode = {AddressesStr: 'dynamic', Compression: true};
|
||||
$scope.editingExisting = false;
|
||||
$scope.editingSelf = false;
|
||||
$scope.nodeEditor.$setPristine();
|
||||
|
||||
@@ -313,6 +313,11 @@
|
||||
<th><span class="glyphicon glyphicon-comment"></span> <span translate>Synchronization</span></th>
|
||||
<td class="text-right">{{connections[nodeCfg.NodeID].Completion | alwaysNumber}}%</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><span class="glyphicon glyphicon-compressed"></span> <span translate>Use Compression</span></th>
|
||||
<td translate ng-if="nodeCfg.Compression" class="text-right">Yes</td>
|
||||
<td translate ng-if="!nodeCfg.Compression" class="text-right">No</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><span class="glyphicon glyphicon-cloud-download"></span> <span translate>Download Rate</span></th>
|
||||
<td class="text-right">{{connections[nodeCfg.NodeID].inbps | metric}}bps ({{connections[nodeCfg.NodeID].InBytesTotal | binary}}B)</td>
|
||||
@@ -428,6 +433,13 @@
|
||||
<input placeholder="dynamic" ng-disabled="currentNode.NodeID == myID" id="addresses" class="form-control" type="text" ng-model="currentNode.AddressesStr"></input>
|
||||
<p translate class="help-block">Enter comma separated "ip:port" addresses or "dynamic" to perform automatic discovery of the address.</p>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" ng-model="currentNode.Compression"> <span translate>Use Compression</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
||||
@@ -101,6 +101,7 @@
|
||||
"Upgrade To {%version%}": "Upgrade To {{version}}",
|
||||
"Upload Rate": "Upload Rate",
|
||||
"Usage": "Usage",
|
||||
"Use Compression": "Use Compression",
|
||||
"Use HTTPS for GUI": "Use HTTPS for GUI",
|
||||
"Version": "Version",
|
||||
"When adding a new node, keep in mind that this node must be added on the other side too.": "When adding a new node, keep in mind that this node must be added on the other side too.",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<node id="JMFJCXB-GZDE4BN-OCJE3VF-65GYZNU-AIVJRET-3J6HMRQ-AUQIGJO-FKNHMQU"></node>
|
||||
<versioning></versioning>
|
||||
</repository>
|
||||
<node id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" name="s1">
|
||||
<node id="I6KAH76-66SLLLB-5PFXSOA-UFJCDZC-YAOMLEK-CP2GB32-BV5RQST-3PSROAU" name="s1" compression="true">
|
||||
<address>127.0.0.1:22001</address>
|
||||
</node>
|
||||
<node id="JMFJCXB-GZDE4BN-OCJE3VF-65GYZNU-AIVJRET-3J6HMRQ-AUQIGJO-FKNHMQU" name="s2">
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
<versioning></versioning>
|
||||
<syncorder></syncorder>
|
||||
</repository>
|
||||
<node id="I6KAH7666SLLL5PFXSOAUFJCDZYAOMLEKCP2GB3BV5RQST3PSROA" name="s1">
|
||||
<node id="I6KAH7666SLLL5PFXSOAUFJCDZYAOMLEKCP2GB3BV5RQST3PSROA" name="s1" compression="true">
|
||||
<address>127.0.0.1:22001</address>
|
||||
</node>
|
||||
<node id="JMFJCXBGZDE4BOCJE3VF65GYZNAIVJRET3J6HMRAUQIGJOFKNHMQ" name="s2">
|
||||
<node id="JMFJCXBGZDE4BOCJE3VF65GYZNAIVJRET3J6HMRAUQIGJOFKNHMQ" name="s2" compression="true">
|
||||
<address>127.0.0.1:22002</address>
|
||||
</node>
|
||||
<node id="373HSRPQLPNLIJYKZVQFP4PKZ6R2ZE6K3YD442UJHBGBQGWWXAHA" name="s3">
|
||||
|
||||
+19
-13
@@ -18,8 +18,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
BlockSize = 128 * 1024
|
||||
MinCompressedSize = 128 // message must be this big to enable compression
|
||||
BlockSize = 128 * 1024
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -101,6 +100,8 @@ type rawConnection struct {
|
||||
closed chan struct{}
|
||||
once sync.Once
|
||||
|
||||
compressionThreshold int // compress messages larger than this many bytes
|
||||
|
||||
rdbuf0 []byte // used & reused by readMessage
|
||||
rdbuf1 []byte // used & reused by readMessage
|
||||
}
|
||||
@@ -124,20 +125,25 @@ const (
|
||||
pingIdleTime = 60 * time.Second
|
||||
)
|
||||
|
||||
func NewConnection(nodeID NodeID, reader io.Reader, writer io.Writer, receiver Model, name string) Connection {
|
||||
func NewConnection(nodeID NodeID, reader io.Reader, writer io.Writer, receiver Model, name string, compress bool) Connection {
|
||||
cr := &countingReader{Reader: reader}
|
||||
cw := &countingWriter{Writer: writer}
|
||||
|
||||
compThres := 1<<32 - 1 // compression disabled
|
||||
if compress {
|
||||
compThres = 128 // compress messages that are 128 bytes long or larger
|
||||
}
|
||||
c := rawConnection{
|
||||
id: nodeID,
|
||||
name: name,
|
||||
receiver: nativeModel{receiver},
|
||||
state: stateInitial,
|
||||
cr: cr,
|
||||
cw: cw,
|
||||
outbox: make(chan hdrMsg),
|
||||
nextID: make(chan int),
|
||||
closed: make(chan struct{}),
|
||||
id: nodeID,
|
||||
name: name,
|
||||
receiver: nativeModel{receiver},
|
||||
state: stateInitial,
|
||||
cr: cr,
|
||||
cw: cw,
|
||||
outbox: make(chan hdrMsg),
|
||||
nextID: make(chan int),
|
||||
closed: make(chan struct{}),
|
||||
compressionThreshold: compThres,
|
||||
}
|
||||
|
||||
go c.readerLoop()
|
||||
@@ -470,7 +476,7 @@ func (c *rawConnection) writerLoop() {
|
||||
// Uncompressed message in uncBuf
|
||||
uncBuf = hm.msg.AppendXDR(uncBuf[:0])
|
||||
|
||||
if len(uncBuf) >= MinCompressedSize {
|
||||
if len(uncBuf) >= c.compressionThreshold {
|
||||
// Use compression for large messages
|
||||
hm.hdr.compression = true
|
||||
|
||||
|
||||
Reference in new issue
Block a user