diff --git a/cmd/syncthing/usage_report.go b/cmd/syncthing/usage_report.go index 3318547b8..97744db76 100644 --- a/cmd/syncthing/usage_report.go +++ b/cmd/syncthing/usage_report.go @@ -15,17 +15,20 @@ import ( "net" "net/http" "runtime" + "sort" "time" + "github.com/syncthing/protocol" "github.com/syncthing/syncthing/lib/config" "github.com/syncthing/syncthing/lib/model" + "github.com/syncthing/syncthing/lib/upgrade" "github.com/thejerf/suture" ) // Current version number of the usage report, for acceptance purposes. If // fields are added or changed this integer must be incremented so that users // are prompted for acceptance of the new report. -const usageReportVersion = 1 +const usageReportVersion = 2 type usageReportingManager struct { model *model.Model @@ -120,6 +123,92 @@ func reportData(m *model.Model) map[string]interface{} { if err == nil { res["memorySize"] = bytes / 1024 / 1024 } + res["numCPU"] = runtime.NumCPU() + + var rescanIntvs []int + folderUses := map[string]int{ + "readonly": 0, + "ignorePerms": 0, + "ignoreDelete": 0, + "autoNormalize": 0, + } + for _, cfg := range cfg.Folders() { + rescanIntvs = append(rescanIntvs, cfg.RescanIntervalS) + + if cfg.ReadOnly { + folderUses["readonly"]++ + } + if cfg.IgnorePerms { + folderUses["ignorePerms"]++ + } + if cfg.IgnoreDelete { + folderUses["ignoreDelete"]++ + } + if cfg.AutoNormalize { + folderUses["autoNormalize"]++ + } + } + sort.Ints(rescanIntvs) + res["rescanIntvs"] = rescanIntvs + res["folderUses"] = folderUses + + deviceUses := map[string]int{ + "introducer": 0, + "customCertName": 0, + "compressAlways": 0, + "compressMetadata": 0, + "compressNever": 0, + "dynamicAddr": 0, + "staticAddr": 0, + } + for _, cfg := range cfg.Devices() { + if cfg.Introducer { + deviceUses["introducer"]++ + } + if cfg.CertName != "" && cfg.CertName != "syncthing" { + deviceUses["customCertName"]++ + } + if cfg.Compression == protocol.CompressAlways { + deviceUses["compressAlways"]++ + } else if cfg.Compression == protocol.CompressMetadata { + deviceUses["compressMetadata"]++ + } else if cfg.Compression == protocol.CompressNever { + deviceUses["compressNever"]++ + } + for _, addr := range cfg.Addresses { + if addr == "dynamic" { + deviceUses["dynamicAddr"]++ + } else { + deviceUses["staticAddr"]++ + } + } + } + res["deviceUses"] = deviceUses + + defaultAnnounceServersDNS, defaultAnnounceServersIP, otherAnnounceServers := 0, 0, 0 + for _, addr := range cfg.Options().GlobalAnnServers { + switch addr { + case "udp4://announce.syncthing.net:22027", "udp6://announce-v6.syncthing.net:22027": + defaultAnnounceServersDNS++ + case "udp4://194.126.249.5:22027", "udp6://[2001:470:28:4d6::5]:22027": + defaultAnnounceServersIP++ + default: + otherAnnounceServers++ + } + } + res["announce"] = map[string]interface{}{ + "globalEnabled": cfg.Options().GlobalAnnEnabled, + "localEnabled": cfg.Options().LocalAnnEnabled, + "defaultServersDNS": defaultAnnounceServersDNS, + "defaultServersIP": defaultAnnounceServersIP, + "otherServers": otherAnnounceServers, + } + + res["usesRelays"] = cfg.Options().RelaysEnabled + res["usesRateLimit"] = cfg.Options().MaxRecvKbps > 0 || cfg.Options().MaxSendKbps > 0 + + res["upgradeAllowedManual"] = !(upgrade.DisabledByCompilation || noUpgrade) + res["upgradeAllowedAuto"] = !(upgrade.DisabledByCompilation || noUpgrade) && cfg.Options().AutoUpgradeIntervalH > 0 return res } diff --git a/gui/syncthing/usagereport/usageReportPreviewModalView.html b/gui/syncthing/usagereport/usageReportPreviewModalView.html index c53167cd4..66b8e8bec 100644 --- a/gui/syncthing/usagereport/usageReportPreviewModalView.html +++ b/gui/syncthing/usagereport/usageReportPreviewModalView.html @@ -1,5 +1,7 @@

The encrypted usage report is sent daily. It is used to track common platforms, folder sizes and app versions. If the reported data set is changed you will be prompted with this dialog again.

The aggregated statistics are publicly available at {%url%}.

-
{{reportData | json}}
+
+ +
diff --git a/lib/auto/gui.files.go b/lib/auto/gui.files.go index 28ed83381..cdf70f93a 100644 --- a/lib/auto/gui.files.go +++ b/lib/auto/gui.files.go @@ -5,7 +5,7 @@ import ( ) const ( - AssetsBuildDate = "Sat, 05 Sep 2015 06:22:12 GMT" + AssetsBuildDate = "Sun, 06 Sep 2015 15:04:44 GMT" ) func Assets() map[string][]byte { @@ -107,7 +107,7 @@ func Assets() map[string][]byte { assets["syncthing/usagereport/usageReportModalDirective.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/1yOwQ6CMBBE73xFbwsJKXc5+QFeTPTewAqbLC1Zthpj+HdrTQg6x3k7O+P8ENmJnUIfGUtYnr7Tkfxg4+IGFJyDKFSFSbI9CXZK93SX6TnTU+gdQ21uMUUpeFNW5pUDHwlqFL8zvuaiQp0eDByh/kGK08xO8SKc6Dan2c1p/suvhA876sSwvVrbYq3a4g0AAP//AQAA//9JzMWj3wAAAA==") assets["syncthing/usagereport/usageReportModalView.html"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/5RTTW/bOBC976+YJZBgF1hZWCCnxnIRoJdeiiJoDj0VI2oksaZIlRzZUdP8944+7MSJE6eHxNR8vHnz+LgszAZMkakuKNAWY8xU4wu0UGJBCgpkTHLU6yL4NlORkY2ew2vqc49Bmku0UYoZc+MKus1U8r9a/TViP8ZMCoPWVzB92EpqAJ5Xae+YHI/ZY/mahFoAtBR4+p8YV/q5Xjrqi8MGNmxJrZaxRbfLlCgbymYh0TUGGbZMh/RcxAFdtMi0urLWb+HKedc3votwE7EiuKbWBzauer9rS+uLmW8qhF+invuif+DZPprzpSYgp0PfMhXQjVPCOAVMhCh6iOjG9gv4OEa6KGXsBwS9Bu2bxjtoBar0oYn/QentIFI0PykCugKwbWFDIRrvooCUwPVugiANFypTRmgRxFUS630HW2Mt5ARt8M3IbGu4llYpmy8TKzRusUzbY2s9nJIN2o6SLthMLRHqQGV2/qPzfFkzt/Fdmg4UFrF3WtBdtXDEU15sFSriufpbbtGtp/Pq5dZliis1iopVFajCgfvo3igGFkWC7NTl1mjbA25EWcytFDPcnQnHs/uDjfKOWeTlvqVMTR/715KzA/lLCiqxszyeY6PAVYkW+LU8mtpvJ8N8DrQxtP3n3zE9xDP1d3ic2ptDpj63a2ksJUy3nPi9Yc9dHtvLp7ad4Q7sOjfslkqnRR6uTSQRVqbM1BNKy9igtau7uyn+YfDKL/gevbu/F9AxKXIFesMLKL1nCuqPpI2d1hTjEWlREi3fXIuirwqna9LrE5J9pXhCoTfZYHg74QjVguTg6DRXNg3FE1w/+deo7i9gPhz+/AYAAP//AQAA///2veJQ8wUAAA==") assets["syncthing/usagereport/usageReportPreviewModalDirective.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/3SOQQqDMBBF954iu1GQuK+rHqBQCu0+6FQHxkTGiaUU797UgthF/yr8l/k857vITuwQ2siYw/T0jfbkOxsn16HgGEShyEyKbUmwUZrTv5VeVnoWnAkfp9A6htLcY1qg4E1emNd694mgRvG74ltOKtTowcARyh+kOIzsFK/CiW5W1c6q+uNwSw/b68CwLS51thR19gYAAP//AQAA//+g77Sd7QAAAA==") - assets["syncthing/usagereport/usageReportPreviewModalView.html"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/3RSTY/UMAy9z6+wIi17YabiCm0lJC7cEIIzclNPGjZNSuzMULr977gdViMh7c2K34ffa+sx9RjA940p+Uumi6erARaUwo3hYi0xG/A2xcZ0mI92wCwGxEugxizL48eY4jymwvCd0RF8pSll8dE9wjNIxsgBhdbVQMDslDOTCtqQ+GUW7Hzs6Xdjju9MewCopzux/TYQULR5noR6KLtH3j3AMzBFgR59mE/weX8prDBJm4J9ApvGMUWYVOqc8shv4ZxCTxnY/yEGjD3gNMGFMvsUWUXOIMOLgyr1KKguu7Rmj07f5lTg6kOAjmDKadwvu3oZlKqw3mNIDtChj6e6mv6PdJ+OFwyFjiWHxtQIQ6Zz8+ZXSfJhEJn4fVVt9ieeo1Xl6E6R5LbX0rRM+Yf+0QWMT7e5fZ1aV9iavVB0LpPD7e7tW3sWb7WNrHlKF7wNM+BFW8UuKFhgedAbH9Z7mkxtzSOG0C7LratPW1HP8JNTXNe6ui0Vr8hDXe2/WXv4CwAA//8BAAD//5X0mcRvAgAA") + assets["syncthing/usagereport/usageReportPreviewModalView.html"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/3SSQY/UPAyG7/srrEj77eWbKXCEthISF24IwRm5qScNmyYldma2dPvfcTsMKyFxsxz7ee03rsfUYwDfN6bkT5nOni4GWFAKN4aLtcRswNsUG9NhPtgBsxgQL4EasywP72OK85gKw1dGR/CZppTFR/cAzyAZIwcUWlcDAbPTnpkUaEPiWyzY+djTU2MOr017B1BPL43tl4GAos3zJNRD2TXyrgGegSkK9OjDfISPe6awlknaCPYRbBrHFGFS1Cnlkf+HUwo9ZWD/kxgw9oDTBGfK7FNkhZxAhpuCknoUVJUdrbtHp7k5Fbj4EKAjmHIa98kuXgZt1bLeY0gO0KGPx7qa/l7pJTqcMRQ6lBwaUyMMmU7Nfz9KkneDyMRvq2qTP/IcrZKjO0aS67uapmbK7+pvXcD4eI3bf7fWFbZmNxSdy+Rwm3v7a8/irbqRdZ/SBW/DDHhWV7ELWiyw3OuM9+ufbTYv90DoSSch1A9F1ovZHg56LJJTMJDTRXNvXpl2Wa6OftjsfIbvnOK61tWtfWdVV2pd7TfZ3v0CAAD//wEAAP//TxJx8JwCAAA=") assets["vendor/angular/angular-dirPagination.js"], _ = base64.StdEncoding.DecodeString("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") assets["vendor/angular/angular-translate-loader.min.js"], _ = base64.StdEncoding.DecodeString("H4sIAAAJbogA/0SPsW4iMRCG+3sKM0I6W7L8AKCrTtw16ZIOURh7nDXx2pvxLAQtvHucJZBuPP413/fb/DomS6YvfkwoYbDV2TQQuo4Nk801WUZQJljHhc4Slo/tM1uO7l9MWJ+K9Uigt7B8Bw3LjnkAHcbsOJYsrd6riZBHyuKxdGqKQS7c5bJwphFD/JjHOoY2Ku6onETGk9gQFZLwt4zJ598sUoOJOsNF+KJrkYu4XRCFxO2AqAO6GCL6Baj10ZLwf6zxGJCkWn/L7OU0Ulpt7wLamTc867vEzhxKzBJA6R65K34F/zcvoAdLtq8rgKtqSeewVvlTVk3eENaSjtgeLYJzgUfg9n9Ax3LGtYj2TaD0seL1ulPrX58AAAD//wEAAP//1rAncZcBAAA=") assets["vendor/angular/angular-translate.min.js"], _ = base64.StdEncoding.DecodeString("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") diff --git a/lib/upgrade/upgrade_supported.go b/lib/upgrade/upgrade_supported.go index 2abb8be87..974a1513a 100644 --- a/lib/upgrade/upgrade_supported.go +++ b/lib/upgrade/upgrade_supported.go @@ -29,6 +29,8 @@ import ( "github.com/syncthing/syncthing/lib/signature" ) +const DisabledByCompilation = false + // This is an HTTP/HTTPS client that does *not* perform certificate // validation. We do this because some systems where Syncthing runs have // issues with old or missing CA roots. It doesn't actually matter that we diff --git a/lib/upgrade/upgrade_unsupp.go b/lib/upgrade/upgrade_unsupp.go index 16b9447d4..4a22845f5 100644 --- a/lib/upgrade/upgrade_unsupp.go +++ b/lib/upgrade/upgrade_unsupp.go @@ -8,6 +8,8 @@ package upgrade +const DisabledByCompilation = true + func upgradeTo(binary string, rel Release) error { return ErrUpgradeUnsupported }