diff --git a/README.md b/README.md
index ffae6e0..854e0b1 100644
--- a/README.md
+++ b/README.md
@@ -125,7 +125,7 @@ By default, the client picks up all file formats the device supports. Use `--dev
| `/health` | GET | No | Liveness check |
| `/upload` | POST | Bearer token | Upload a track file (multipart, field `file`) |
-The `/upload` endpoint requires `X-Device-ID` and `X-Source-Format` headers, and optionally `X-Client-Host`.
+The `/upload` endpoint requires `X-Device-ID` and `X-Source-Format` headers.
## NixOS module
diff --git a/tracksync/internal/sync/sync.go b/tracksync/internal/sync/sync.go
index a872738..98e0cf7 100644
--- a/tracksync/internal/sync/sync.go
+++ b/tracksync/internal/sync/sync.go
@@ -81,7 +81,7 @@ const (
StatusDuplicate // server already had this file
)
-func Upload(client *http.Client, serverURL, token, deviceID, hostname, sourceFormat, filename string, data []byte) (UploadStatus, error) {
+func Upload(client *http.Client, serverURL, token, deviceID, sourceFormat, filename string, data []byte) (UploadStatus, error) {
var buf bytes.Buffer
writer := multipart.NewWriter(&buf)
part, err := writer.CreateFormFile("file", filename)
@@ -102,7 +102,6 @@ func Upload(client *http.Client, serverURL, token, deviceID, hostname, sourceFor
req.Header.Set("Content-Type", writer.FormDataContentType())
req.Header.Set("Authorization", "Bearer "+token)
req.Header.Set("X-Device-ID", deviceID)
- req.Header.Set("X-Client-Host", hostname)
req.Header.Set("X-Source-Format", sourceFormat)
resp, err := client.Do(req)
@@ -134,7 +133,7 @@ type Summary struct {
}
// SyncFiles syncs a list of found files to the server.
-func SyncFiles(db *sql.DB, client *http.Client, serverURL, token, deviceID, hostname string, files []device.FoundFile) Summary {
+func SyncFiles(db *sql.DB, client *http.Client, serverURL, token, deviceID string, files []device.FoundFile) Summary {
var summary Summary
for _, ff := range files {
@@ -161,7 +160,7 @@ func SyncFiles(db *sql.DB, client *http.Client, serverURL, token, deviceID, host
continue
}
- status, err := Upload(client, serverURL, token, deviceID, hostname, ff.Format, name, data)
+ status, err := Upload(client, serverURL, token, deviceID, ff.Format, name, data)
if err != nil {
slog.Error("upload failed", "file", name, "error", err)
summary.Errors++
diff --git a/tracksync/internal/sync/sync_test.go b/tracksync/internal/sync/sync_test.go
index b9f93c2..ac46308 100644
--- a/tracksync/internal/sync/sync_test.go
+++ b/tracksync/internal/sync/sync_test.go
@@ -100,7 +100,6 @@ func TestUpload_Created(t *testing.T) {
ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, "Bearer tok", r.Header.Get("Authorization"))
assert.Equal(t, "dev-1", r.Header.Get("X-Device-ID"))
- assert.Equal(t, "myhost", r.Header.Get("X-Client-Host"))
assert.Equal(t, "gpx_1.1", r.Header.Get("X-Source-Format"))
w.WriteHeader(http.StatusCreated)
_, _ = fmt.Fprintln(w, "uploaded")
@@ -108,7 +107,7 @@ func TestUpload_Created(t *testing.T) {
defer ts.Close()
client := &http.Client{Timeout: 5 * time.Second}
- status, err := Upload(client, ts.URL, "tok", "dev-1", "myhost", "gpx_1.1", "track.gpx", []byte(""))
+ status, err := Upload(client, ts.URL, "tok", "dev-1", "gpx_1.1", "track.gpx", []byte(""))
require.NoError(t, err)
assert.Equal(t, StatusUploaded, status)
}
@@ -121,7 +120,7 @@ func TestUpload_Duplicate(t *testing.T) {
defer ts.Close()
client := &http.Client{Timeout: 5 * time.Second}
- status, err := Upload(client, ts.URL, "tok", "dev", "host", "gpx_1.1", "f.gpx", []byte("data"))
+ status, err := Upload(client, ts.URL, "tok", "dev", "gpx_1.1", "f.gpx", []byte("data"))
require.NoError(t, err)
assert.Equal(t, StatusDuplicate, status)
}
@@ -134,7 +133,7 @@ func TestUpload_ServerError(t *testing.T) {
defer ts.Close()
client := &http.Client{Timeout: 5 * time.Second}
- _, err := Upload(client, ts.URL, "tok", "dev", "host", "gpx_1.1", "f.gpx", []byte("data"))
+ _, err := Upload(client, ts.URL, "tok", "dev", "gpx_1.1", "f.gpx", []byte("data"))
assert.Error(t, err)
}
@@ -150,7 +149,7 @@ func TestSyncFiles_Uploaded(t *testing.T) {
require.NoError(t, os.WriteFile(filepath.Join(dir, "track.gpx"), []byte(""), 0644))
files := []device.FoundFile{{Path: filepath.Join(dir, "track.gpx"), Format: "gpx_1.1"}}
- summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", "host", files)
+ summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", files)
assert.Equal(t, 1, summary.Uploaded)
assert.Equal(t, 0, summary.Duplicate)
@@ -171,7 +170,7 @@ func TestSyncFiles_Duplicate(t *testing.T) {
require.NoError(t, os.WriteFile(filepath.Join(dir, "track.gpx"), []byte(""), 0644))
files := []device.FoundFile{{Path: filepath.Join(dir, "track.gpx"), Format: "gpx_1.1"}}
- summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", "host", files)
+ summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", files)
assert.Equal(t, 0, summary.Uploaded)
assert.Equal(t, 1, summary.Duplicate)
@@ -195,7 +194,7 @@ func TestSyncFiles_SkippedClientSide(t *testing.T) {
require.NoError(t, RecordUpload(db, SHA256Hex(data), "track.gpx", "dev"))
files := []device.FoundFile{{Path: filepath.Join(dir, "track.gpx"), Format: "gpx_1.1"}}
- summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", "host", files)
+ summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", files)
assert.Equal(t, 0, summary.Uploaded)
assert.Equal(t, 0, summary.Duplicate)
@@ -215,7 +214,7 @@ func TestSyncFiles_UploadError(t *testing.T) {
require.NoError(t, os.WriteFile(filepath.Join(dir, "track.gpx"), []byte(""), 0644))
files := []device.FoundFile{{Path: filepath.Join(dir, "track.gpx"), Format: "gpx_1.1"}}
- summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", "host", files)
+ summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", files)
assert.Equal(t, 0, summary.Uploaded)
assert.Equal(t, 0, summary.Duplicate)
@@ -252,7 +251,7 @@ func TestSyncFiles_MixedResults(t *testing.T) {
{Path: filepath.Join(dir, "dup.gpx"), Format: "gpx_1.1"},
{Path: filepath.Join(dir, "skip.gpx"), Format: "gpx_1.1"},
}
- summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", "host", files)
+ summary := SyncFiles(db, &http.Client{Timeout: 5 * time.Second}, ts.URL, "tok", "dev", files)
assert.Equal(t, 1, summary.Uploaded)
assert.Equal(t, 1, summary.Duplicate)
diff --git a/tracksync/main.go b/tracksync/main.go
index 67ef0c8..ada842b 100644
--- a/tracksync/main.go
+++ b/tracksync/main.go
@@ -122,7 +122,6 @@ func main() {
return
}
- hostname, _ := os.Hostname()
httpClient := &http.Client{Timeout: *timeout}
slog.Info("starting sync",
"device", *deviceID,
@@ -130,7 +129,7 @@ func main() {
"files", len(files),
)
- summary := sync.SyncFiles(db, httpClient, *serverURL, token, *deviceID, hostname, files)
+ summary := sync.SyncFiles(db, httpClient, *serverURL, token, *deviceID, files)
slog.Info("sync complete",
"uploaded", summary.Uploaded,