diff --git a/.gitignore b/.gitignore
index b7bc43b..2b59982 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
*~
sidekick
-dist/
\ No newline at end of file
+dist/
+*.test
\ No newline at end of file
diff --git a/http-tracer.go b/http-tracer.go
index 75bacbb..5654f96 100644
--- a/http-tracer.go
+++ b/http-tracer.go
@@ -11,7 +11,7 @@
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .package main
+// along with this program. If not, see .
package main
diff --git a/main.go b/main.go
index f9da921..cb03736 100644
--- a/main.go
+++ b/main.go
@@ -1,3 +1,18 @@
+// Copyright (c) 2021 MinIO, Inc.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
package main
import (
@@ -19,18 +34,17 @@ import (
"strings"
"sync"
"sync/atomic"
- "syscall"
"time"
"github.com/gorilla/mux"
- "github.com/minio/cli"
- "github.com/minio/pkg/console"
- "github.com/minio/pkg/ellipses"
"github.com/rs/dnscache"
"github.com/sirupsen/logrus"
"golang.org/x/crypto/ssh/terminal"
"golang.org/x/net/http2"
- "golang.org/x/sys/unix"
+
+ "github.com/minio/cli"
+ "github.com/minio/pkg/console"
+ "github.com/minio/pkg/ellipses"
)
// Use e.g.: go build -ldflags "-X main.version=v1.0.0"
@@ -490,33 +504,6 @@ var dnsCache = &dnscache.Resolver{
Timeout: 5 * time.Second,
}
-func setTCPParameters(network, address string, c syscall.RawConn) error {
- c.Control(func(fdPtr uintptr) {
- // got socket file descriptor to set parameters.
- fd := int(fdPtr)
-
- _ = unix.SetsockoptInt(fd, unix.SOL_SOCKET, unix.SO_REUSEADDR, 1)
-
- _ = unix.SetsockoptInt(fd, unix.SOL_SOCKET, unix.SO_REUSEPORT, 1)
-
- // Enable TCP open
- // https://lwn.net/Articles/508865/ - 16k queue size.
- _ = syscall.SetsockoptInt(fd, syscall.SOL_TCP, unix.TCP_FASTOPEN, 16*1024)
-
- // Enable TCP fast connect
- // TCPFastOpenConnect sets the underlying socket to use
- // the TCP fast open connect. This feature is supported
- // since Linux 4.11.
- _ = syscall.SetsockoptInt(fd, syscall.IPPROTO_TCP, unix.TCP_FASTOPEN_CONNECT, 1)
-
- // Enable TCP quick ACK, John Nagle says
- // "Set TCP_QUICKACK. If you find a case where that makes things worse, let me know."
- _ = syscall.SetsockoptInt(fd, syscall.IPPROTO_TCP, unix.TCP_QUICKACK, 1)
-
- })
- return nil
-}
-
// DialContext is a function to make custom Dial for internode communications
type DialContext func(ctx context.Context, network, address string) (net.Conn, error)
diff --git a/main_linux.go b/main_linux.go
new file mode 100644
index 0000000..ba4e7de
--- /dev/null
+++ b/main_linux.go
@@ -0,0 +1,51 @@
+// +build linux
+
+// Copyright (c) 2021 MinIO, Inc.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package main
+
+import (
+ "syscall"
+
+ "golang.org/x/sys/unix"
+)
+
+func setTCPParameters(network, address string, c syscall.RawConn) error {
+ c.Control(func(fdPtr uintptr) {
+ // got socket file descriptor to set parameters.
+ fd := int(fdPtr)
+
+ _ = unix.SetsockoptInt(fd, unix.SOL_SOCKET, unix.SO_REUSEADDR, 1)
+
+ _ = unix.SetsockoptInt(fd, unix.SOL_SOCKET, unix.SO_REUSEPORT, 1)
+
+ // Enable TCP open
+ // https://lwn.net/Articles/508865/ - 16k queue size.
+ _ = syscall.SetsockoptInt(fd, syscall.SOL_TCP, unix.TCP_FASTOPEN, 16*1024)
+
+ // Enable TCP fast connect
+ // TCPFastOpenConnect sets the underlying socket to use
+ // the TCP fast open connect. This feature is supported
+ // since Linux 4.11.
+ _ = syscall.SetsockoptInt(fd, syscall.IPPROTO_TCP, unix.TCP_FASTOPEN_CONNECT, 1)
+
+ // Enable TCP quick ACK, John Nagle says
+ // "Set TCP_QUICKACK. If you find a case where that makes things worse, let me know."
+ _ = syscall.SetsockoptInt(fd, syscall.IPPROTO_TCP, unix.TCP_QUICKACK, 1)
+
+ })
+ return nil
+}
diff --git a/main_others.go b/main_others.go
new file mode 100644
index 0000000..7e5a802
--- /dev/null
+++ b/main_others.go
@@ -0,0 +1,24 @@
+// +build !linux
+
+// Copyright (c) 2021 MinIO, Inc.
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+package main
+
+import "syscall"
+
+func setTCPParameters(network, address string, c syscall.RawConn) error {
+ return nil
+}
diff --git a/main_test.go b/main_test.go
index b907e41..e397a86 100644
--- a/main_test.go
+++ b/main_test.go
@@ -11,7 +11,7 @@
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .package main
+// along with this program. If not, see .
package main
diff --git a/metrics.go b/metrics.go
index 26e4794..c752bce 100644
--- a/metrics.go
+++ b/metrics.go
@@ -11,7 +11,7 @@
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .package main
+// along with this program. If not, see .
package main
diff --git a/proxy.go b/proxy.go
index 4929b9e..8ba6cea 100644
--- a/proxy.go
+++ b/proxy.go
@@ -11,7 +11,7 @@
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .package main
+// along with this program. If not, see .
package main
diff --git a/rlimit.go b/rlimit.go
index 1d12743..269586f 100644
--- a/rlimit.go
+++ b/rlimit.go
@@ -11,7 +11,7 @@
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .package main
+// along with this program. If not, see .
package main
diff --git a/ui.go b/ui.go
index 7ef6a56..ceb1359 100644
--- a/ui.go
+++ b/ui.go
@@ -11,7 +11,7 @@
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .package main
+// along with this program. If not, see .
package main
diff --git a/write_on_close.go b/write_on_close.go
index 3446962..f32e065 100644
--- a/write_on_close.go
+++ b/write_on_close.go
@@ -11,7 +11,7 @@
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
-// along with this program. If not, see .package main
+// along with this program. If not, see .
package main