mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-11-03 01:52:17 +08:00
feat: remove port reuse
This commit is contained in:
parent
59987f57a9
commit
35c6dc2706
@ -1,26 +0,0 @@
|
|||||||
//go:build linux || darwin
|
|
||||||
|
|
||||||
package startrpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"github.com/openimsdk/tools/log"
|
|
||||||
"net"
|
|
||||||
"syscall"
|
|
||||||
)
|
|
||||||
|
|
||||||
func createListener() net.ListenConfig {
|
|
||||||
lc := net.ListenConfig{
|
|
||||||
Control: func(network, address string, conn syscall.RawConn) error {
|
|
||||||
return conn.Control(func(fd uintptr) {
|
|
||||||
err := syscall.SetsockoptInt(int(fd), syscall.SOL_SOCKET, syscall.SO_REUSEADDR, 1)
|
|
||||||
if err != nil {
|
|
||||||
log.ZError(context.Background(), "Failed to set socket flag to SO_REUSEADDR", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
return lc
|
|
||||||
}
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
//go:build windows
|
|
||||||
|
|
||||||
package startrpc
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"github.com/openimsdk/tools/log"
|
|
||||||
"net"
|
|
||||||
"syscall"
|
|
||||||
)
|
|
||||||
|
|
||||||
func createListener() net.ListenConfig {
|
|
||||||
lc := net.ListenConfig{
|
|
||||||
Control: func(network, address string, conn syscall.RawConn) error {
|
|
||||||
return conn.Control(func(fd uintptr) {
|
|
||||||
err := syscall.SetsockoptInt(syscall.Handle(fd), syscall.SOL_SOCKET, syscall.SO_REUSEADDR, 1)
|
|
||||||
if err != nil {
|
|
||||||
log.ZError(context.Background(), "Failed to set socket flag to SO_REUSEADDR", err)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
return lc
|
|
||||||
}
|
|
||||||
@ -55,17 +55,10 @@ func Start[T any](ctx context.Context, discovery *config.Discovery, prometheusCo
|
|||||||
"prometheusPorts", prometheusConfig.Ports)
|
"prometheusPorts", prometheusConfig.Ports)
|
||||||
rpcTcpAddr := net.JoinHostPort(network.GetListenIP(listenIP), strconv.Itoa(rpcPort))
|
rpcTcpAddr := net.JoinHostPort(network.GetListenIP(listenIP), strconv.Itoa(rpcPort))
|
||||||
|
|
||||||
lc := createListener()
|
listener, err := net.Listen(
|
||||||
listener, err := lc.Listen(
|
|
||||||
ctx,
|
|
||||||
"tcp",
|
"tcp",
|
||||||
rpcTcpAddr,
|
rpcTcpAddr,
|
||||||
)
|
)
|
||||||
if err != nil {
|
|
||||||
return errs.WrapMsg(err, "listen err", "rpcTcpAddr", rpcTcpAddr)
|
|
||||||
}
|
|
||||||
|
|
||||||
defer listener.Close()
|
|
||||||
client, err := kdisc.NewDiscoveryRegister(discovery, share)
|
client, err := kdisc.NewDiscoveryRegister(discovery, share)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user