| 123456789101112131415161718192021222324252627 | package internalimport (	"net"	"reflect"	"v2ray.com/core/common/errors")var (	errInvalidConn = errors.New("Invalid Connection."))// GetSysFd returns the underlying fd of a connection.func GetSysFd(conn net.Conn) (int, error) {	cv := reflect.ValueOf(conn)	switch ce := cv.Elem(); ce.Kind() {	case reflect.Struct:		netfd := ce.FieldByName("conn").FieldByName("fd")		switch fe := netfd.Elem(); fe.Kind() {		case reflect.Struct:			fd := fe.FieldByName("sysfd")			return int(fd.Int()), nil		}	}	return 0, errInvalidConn}
 |