diff --git a/rpc/server/constants_unix.go b/rpc/server/constants_unix.go
deleted file mode 100644
index c81642f..0000000
--- a/rpc/server/constants_unix.go
+++ /dev/null
@@ -1,33 +0,0 @@
-// Copyright 2019 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library 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 Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see .
-
-//go:build darwin || dragonfly || freebsd || linux || nacl || netbsd || openbsd || solaris
-
-package server
-
-/*
-#include
-
-int max_socket_path_size() {
-struct sockaddr_un s;
-return sizeof(s.sun_path);
-}
-*/
-import "C"
-
-var (
- max_path_size = C.max_socket_path_size()
-)
diff --git a/rpc/server/constants_unix_nocgo.go b/rpc/server/constants_unix_nocgo.go
deleted file mode 100644
index 3bc98b7..0000000
--- a/rpc/server/constants_unix_nocgo.go
+++ /dev/null
@@ -1,25 +0,0 @@
-// Copyright 2019 The go-ethereum Authors
-// This file is part of the go-ethereum library.
-//
-// The go-ethereum library is free software: you can redistribute it and/or modify
-// it under the terms of the GNU Lesser General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// The go-ethereum library 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 Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public License
-// along with the go-ethereum library. If not, see .
-
-//go:build !cgo && !windows
-
-package server
-
-var (
- // On Linux, sun_path is 108 bytes in size
- // see http://man7.org/linux/man-pages/man7/unix.7.html
- max_path_size = 108
-)
diff --git a/rpc/server/ipc_unix.go b/rpc/server/ipc_unix.go
index f72c8eb..bbe4873 100644
--- a/rpc/server/ipc_unix.go
+++ b/rpc/server/ipc_unix.go
@@ -15,6 +15,7 @@
// along with the go-ethereum library. If not, see .
//go:build darwin || dragonfly || freebsd || linux || nacl || netbsd || openbsd || solaris
+// +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris
package server
@@ -28,10 +29,17 @@ import (
"github.com/ethereum/go-ethereum/log"
)
+const (
+ // On Linux, sun_path is 108 bytes in size
+ // see http://man7.org/linux/man-pages/man7/unix.7.html
+ maxPathSize = int(108)
+)
+
// ipcListen will create a Unix socket on the given endpoint.
func ipcListen(endpoint string) (net.Listener, error) {
- if len(endpoint) > int(max_path_size) {
- log.Warn(fmt.Sprintf("The ipc endpoint is longer than %d characters. ", max_path_size),
+ // account for null-terminator too
+ if len(endpoint)+1 > maxPathSize {
+ log.Warn(fmt.Sprintf("The ipc endpoint is longer than %d characters. ", maxPathSize-1),
"endpoint", endpoint)
}