Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions cloud.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ func handleCloudRegister(c *gin.Context) {
return
}
apiReq.Header.Set("Content-Type", "application/json")
apiReq.Header.Set("User-Agent", httpUserAgent)

apiResp, err := client.Do(apiReq)
if err != nil {
Expand Down Expand Up @@ -537,6 +538,8 @@ func rpcDeregisterDevice() error {
}

req.Header.Set("Authorization", "Bearer "+config.CloudToken)
req.Header.Set("User-Agent", httpUserAgent)

client := &http.Client{Timeout: CloudAPIRequestTimeout}
resp, err := client.Do(req)
if err != nil {
Expand Down
6 changes: 6 additions & 0 deletions internal/timesync/http.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ func (t *TimeSync) queryMultipleHttp(urls []string, timeout time.Duration) (now
ctx,
url,
timeout,
t.httpUserAgent,
)
duration := time.Since(startTime)

Expand Down Expand Up @@ -111,6 +112,7 @@ func queryHttpTime(
ctx context.Context,
url string,
timeout time.Duration,
httpUserAgent string,
) (now *time.Time, response *http.Response, err error) {
client := http.Client{
Timeout: timeout,
Expand All @@ -119,6 +121,10 @@ func queryHttpTime(
if err != nil {
return nil, nil, err
}
if httpUserAgent != "" {
req.Header.Set("User-Agent", httpUserAgent)
}

resp, err := client.Do(req)
if err != nil {
return nil, nil, err
Expand Down
4 changes: 4 additions & 0 deletions internal/timesync/timesync.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ type TimeSync struct {
httpUrls []string
networkConfig *network.NetworkConfig

httpUserAgent string

rtcDevicePath string
rtcDevice *os.File //nolint:unused
rtcLock *sync.Mutex
Expand All @@ -45,6 +47,7 @@ type TimeSyncOptions struct {
PreCheckFunc func() (bool, error)
Logger *zerolog.Logger
NetworkConfig *network.NetworkConfig
HttpUserAgent string
}

type SyncMode struct {
Expand All @@ -71,6 +74,7 @@ func NewTimeSync(opts *TimeSyncOptions) *TimeSync {
preCheckFunc: opts.PreCheckFunc,
ntpServers: defaultNTPServers,
httpUrls: defaultHTTPUrls,
httpUserAgent: opts.HttpUserAgent,
networkConfig: opts.NetworkConfig,
}

Expand Down
4 changes: 4 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package kvm

import (
"context"
"fmt"
"net/http"
"os"
"os/signal"
Expand All @@ -12,6 +13,7 @@ import (
)

var appCtx context.Context
var httpUserAgent string = fmt.Sprintf("jetkvm-app/%s", builtAppVersion)

func Main() {
LoadConfig()
Expand All @@ -25,6 +27,8 @@ func Main() {
logger.Warn().Err(err).Msg("failed to get local version")
}

httpUserAgent = fmt.Sprintf("jetkvm-app/%s jetkvm-system/%s", appVersionLocal, systemVersionLocal)

logger.Info().
Interface("system_version", systemVersionLocal).
Interface("app_version", appVersionLocal).
Expand Down
3 changes: 2 additions & 1 deletion ota.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ func fetchUpdateMetadata(ctx context.Context, deviceId string, includePreRelease
if err != nil {
return nil, fmt.Errorf("error creating request: %w", err)
}
req.Header.Set("User-Agent", httpUserAgent)

resp, err := http.DefaultClient.Do(req)
if err != nil {
Expand Down Expand Up @@ -131,7 +132,7 @@ func downloadFile(ctx context.Context, path string, url string, downloadProgress
if err != nil {
return fmt.Errorf("error creating request: %w", err)
}

req.Header.Set("User-Agent", httpUserAgent)
client := http.Client{
Timeout: 10 * time.Minute,
Transport: &http.Transport{
Expand Down