44 "context"
55 "crypto/tls"
66 "errors"
7+ "fmt"
78 "log"
89 "net/http"
910 "time"
@@ -26,15 +27,21 @@ type ServerManager struct {
2627 useKeyring bool
2728 prefetchCoverCB func (string )
2829 appName string
30+ appVersion string
2931 config * Config
3032 onServerConnected []func ()
3133 onLogout []func ()
3234}
3335
3436var ErrUnreachable = errors .New ("server is unreachable" )
3537
36- func NewServerManager (appName string , config * Config , useKeyring bool ) * ServerManager {
37- return & ServerManager {appName : appName , config : config , useKeyring : useKeyring }
38+ func NewServerManager (appName , appVersion string , config * Config , useKeyring bool ) * ServerManager {
39+ return & ServerManager {
40+ appName : appName ,
41+ appVersion : appVersion ,
42+ config : config ,
43+ useKeyring : useKeyring ,
44+ }
3845}
3946
4047func (s * ServerManager ) SetPrefetchAlbumCoverCallback (cb func (string )) {
@@ -194,8 +201,10 @@ func (s *ServerManager) connect(connection ServerConnection, password string) (m
194201 }
195202 }
196203 } else {
204+ ua := fmt .Sprintf ("%s/%s" , s .appName , s .appVersion )
197205 cli = & subsonicMP.SubsonicServer {
198206 Client : subsonic.Client {
207+ UserAgent : ua ,
199208 Client : & http.Client {Timeout : 10 * time .Second },
200209 BaseUrl : connection .Hostname ,
201210 User : connection .Username ,
@@ -206,6 +215,7 @@ func (s *ServerManager) connect(connection ServerConnection, password string) (m
206215 s .checkSetInsecureSkipVerify (cli .(* subsonicMP.SubsonicServer ).Client .Client )
207216 altCli = & subsonicMP.SubsonicServer {
208217 Client : subsonic.Client {
218+ UserAgent : ua ,
209219 Client : & http.Client {Timeout : 10 * time .Second },
210220 BaseUrl : connection .AltHostname ,
211221 User : connection .Username ,
0 commit comments