cmd/syncthing: Allow custom event subscriptions (fixes #1879)
This adds a parameter "events" to the /rest/events endpoint. It should be a comma separated list of the events the consumer is interested in. When not given it defaults to the current set of events, so it's backwards compatible. The API service then manages subscriptions, creating them as required for each requested event mask. Old subscriptions are not "garbage collected" - it's assumed that in normal usage the set of event subscriptions will be small enough. Possibly lower than before, as we will not set up the disk event subscription unless it's actually used. GitHub-Pull-Request: https://github.com/syncthing/syncthing/pull/4092
This commit is contained in:
committed by
Audrius Butkevicius
parent
75460be98d
commit
d48e46a29c
@@ -118,6 +118,67 @@ func (t EventType) MarshalText() ([]byte, error) {
|
||||
return []byte(t.String()), nil
|
||||
}
|
||||
|
||||
func UnmarshalEventType(s string) EventType {
|
||||
switch s {
|
||||
case "Starting":
|
||||
return Starting
|
||||
case "StartupComplete":
|
||||
return StartupComplete
|
||||
case "DeviceDiscovered":
|
||||
return DeviceDiscovered
|
||||
case "DeviceConnected":
|
||||
return DeviceConnected
|
||||
case "DeviceDisconnected":
|
||||
return DeviceDisconnected
|
||||
case "DeviceRejected":
|
||||
return DeviceRejected
|
||||
case "LocalChangeDetected":
|
||||
return LocalChangeDetected
|
||||
case "RemoteChangeDetected":
|
||||
return RemoteChangeDetected
|
||||
case "LocalIndexUpdated":
|
||||
return LocalIndexUpdated
|
||||
case "RemoteIndexUpdated":
|
||||
return RemoteIndexUpdated
|
||||
case "ItemStarted":
|
||||
return ItemStarted
|
||||
case "ItemFinished":
|
||||
return ItemFinished
|
||||
case "StateChanged":
|
||||
return StateChanged
|
||||
case "FolderRejected":
|
||||
return FolderRejected
|
||||
case "ConfigSaved":
|
||||
return ConfigSaved
|
||||
case "DownloadProgress":
|
||||
return DownloadProgress
|
||||
case "RemoteDownloadProgress":
|
||||
return RemoteDownloadProgress
|
||||
case "FolderSummary":
|
||||
return FolderSummary
|
||||
case "FolderCompletion":
|
||||
return FolderCompletion
|
||||
case "FolderErrors":
|
||||
return FolderErrors
|
||||
case "DevicePaused":
|
||||
return DevicePaused
|
||||
case "DeviceResumed":
|
||||
return DeviceResumed
|
||||
case "FolderScanProgress":
|
||||
return FolderScanProgress
|
||||
case "FolderPaused":
|
||||
return FolderPaused
|
||||
case "FolderResumed":
|
||||
return FolderResumed
|
||||
case "ListenAddressesChanged":
|
||||
return ListenAddressesChanged
|
||||
case "LoginAttempt":
|
||||
return LoginAttempt
|
||||
default:
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
const BufferSize = 64
|
||||
|
||||
type Logger struct {
|
||||
|
||||
Reference in New Issue
Block a user