socket.go 536 B

123456789101112131415161718
  1. package inbound
  2. import (
  3. "net"
  4. C "github.com/metacubex/mihomo/constant"
  5. "github.com/metacubex/mihomo/transport/socks5"
  6. )
  7. // NewSocket receive TCP inbound and return ConnContext
  8. func NewSocket(target socks5.Addr, conn net.Conn, source C.Type, additions ...Addition) (net.Conn, *C.Metadata) {
  9. metadata := parseSocksAddr(target)
  10. metadata.NetWork = C.TCP
  11. metadata.Type = source
  12. ApplyAdditions(metadata, WithSrcAddr(conn.RemoteAddr()), WithInAddr(conn.LocalAddr()))
  13. ApplyAdditions(metadata, additions...)
  14. return conn, metadata
  15. }