Skip to content

Commit 9fcffa8

Browse files
author
Roberto Sora
committed
add user agent specific for daemon mode via DownloaderHeaders property for ArduinoCoreServerImpl
1 parent 7a7159b commit 9fcffa8

File tree

2 files changed

+19
-9
lines changed

2 files changed

+19
-9
lines changed

cli/daemon/daemon.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,13 @@ import (
2121
"fmt"
2222
"log"
2323
"net"
24+
"net/http"
25+
"runtime"
2426

2527
"github.com/arduino/arduino-cli/cli"
2628
"github.com/arduino/arduino-cli/daemon"
2729
"github.com/arduino/arduino-cli/rpc"
30+
"github.com/arduino/arduino-cli/version"
2831
"github.com/spf13/cobra"
2932
"google.golang.org/grpc"
3033
)
@@ -53,7 +56,14 @@ func runDaemonCommand(cmd *cobra.Command, args []string) {
5356
log.Fatalf("failed to listen: %v", err)
5457
}
5558
s := grpc.NewServer()
56-
rpc.RegisterArduinoCoreServer(s, &daemon.ArduinoCoreServerImpl{})
59+
60+
userAgentValue := fmt.Sprintf("%s daemon/%s (%s; %s; %s) Commit:%s/Build:%s ", version.GetApplication(),
61+
version.GetVersion(), runtime.GOARCH, runtime.GOOS, runtime.Version(), version.GetCommit(), version.GetBuildDate())
62+
headers := http.Header{"User-Agent": []string{userAgentValue}}
63+
64+
coreServer := daemon.ArduinoCoreServerImpl{DownloaderHeaders: headers}
65+
66+
rpc.RegisterArduinoCoreServer(s, &coreServer)
5767
if err := s.Serve(lis); err != nil {
5868
log.Fatalf("failed to serve: %v", err)
5969
}

daemon/daemon.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ import (
3636
)
3737

3838
type ArduinoCoreServerImpl struct {
39-
downloaderHeaders http.Header
39+
DownloaderHeaders http.Header
4040
}
4141

4242
func (s *ArduinoCoreServerImpl) BoardDetails(ctx context.Context, req *rpc.BoardDetailsReq) (*rpc.BoardDetailsResp, error) {
@@ -94,7 +94,7 @@ func (s *ArduinoCoreServerImpl) Init(req *rpc.InitReq, stream rpc.ArduinoCore_In
9494
resp, err := commands.Init(stream.Context(), req,
9595
func(p *rpc.DownloadProgress) { stream.Send(&rpc.InitResp{DownloadProgress: p}) },
9696
func(p *rpc.TaskProgress) { stream.Send(&rpc.InitResp{TaskProgress: p}) },
97-
s.downloaderHeaders,
97+
s.DownloaderHeaders,
9898
)
9999
if err != nil {
100100
return err
@@ -124,7 +124,7 @@ func (s *ArduinoCoreServerImpl) PlatformInstall(req *rpc.PlatformInstallReq, str
124124
stream.Context(), req,
125125
func(p *rpc.DownloadProgress) { stream.Send(&rpc.PlatformInstallResp{Progress: p}) },
126126
func(p *rpc.TaskProgress) { stream.Send(&rpc.PlatformInstallResp{TaskProgress: p}) },
127-
s.downloaderHeaders,
127+
s.DownloaderHeaders,
128128
)
129129
if err != nil {
130130
return err
@@ -136,7 +136,7 @@ func (s *ArduinoCoreServerImpl) PlatformDownload(req *rpc.PlatformDownloadReq, s
136136
resp, err := core.PlatformDownload(
137137
stream.Context(), req,
138138
func(p *rpc.DownloadProgress) { stream.Send(&rpc.PlatformDownloadResp{Progress: p}) },
139-
s.downloaderHeaders,
139+
s.DownloaderHeaders,
140140
)
141141
if err != nil {
142142
return err
@@ -160,7 +160,7 @@ func (s *ArduinoCoreServerImpl) PlatformUpgrade(req *rpc.PlatformUpgradeReq, str
160160
stream.Context(), req,
161161
func(p *rpc.DownloadProgress) { stream.Send(&rpc.PlatformUpgradeResp{Progress: p}) },
162162
func(p *rpc.TaskProgress) { stream.Send(&rpc.PlatformUpgradeResp{TaskProgress: p}) },
163-
s.downloaderHeaders,
163+
s.DownloaderHeaders,
164164
)
165165
if err != nil {
166166
return err
@@ -207,7 +207,7 @@ func (s *ArduinoCoreServerImpl) LibraryDownload(req *rpc.LibraryDownloadReq, str
207207
resp, err := lib.LibraryDownload(
208208
stream.Context(), req,
209209
func(p *rpc.DownloadProgress) { stream.Send(&rpc.LibraryDownloadResp{Progress: p}) },
210-
s.downloaderHeaders,
210+
s.DownloaderHeaders,
211211
)
212212
if err != nil {
213213
return err
@@ -220,7 +220,7 @@ func (s *ArduinoCoreServerImpl) LibraryInstall(req *rpc.LibraryInstallReq, strea
220220
stream.Context(), req,
221221
func(p *rpc.DownloadProgress) { stream.Send(&rpc.LibraryInstallResp{Progress: p}) },
222222
func(p *rpc.TaskProgress) { stream.Send(&rpc.LibraryInstallResp{TaskProgress: p}) },
223-
s.downloaderHeaders,
223+
s.DownloaderHeaders,
224224
)
225225
if err != nil {
226226
return err
@@ -242,7 +242,7 @@ func (s *ArduinoCoreServerImpl) LibraryUpgradeAll(req *rpc.LibraryUpgradeAllReq,
242242
err := lib.LibraryUpgradeAll(stream.Context(), req,
243243
func(p *rpc.DownloadProgress) { stream.Send(&rpc.LibraryUpgradeAllResp{Progress: p}) },
244244
func(p *rpc.TaskProgress) { stream.Send(&rpc.LibraryUpgradeAllResp{TaskProgress: p}) },
245-
s.downloaderHeaders,
245+
s.DownloaderHeaders,
246246
)
247247
if err != nil {
248248
return err

0 commit comments

Comments
 (0)