2012-02-22 107 views
1

不知道你是如何恢復的連接處理的同行ID在紅寶石UNIX套接字。在簽出,不知道在哪裏的SO_PEERCRED定義。我使用紅寶石1.8.7SO_PEERCRED紅寶石1.8.7失蹤?

Socket.constants.sort => [ 「AF_APPLETALK」, 「AF_CCITT」, 「AF_CHAOS」, 「AF_CNT」, 「AF_COIP」, 「AF_DATAKIT」,「 AF_DLI 「」 AF_E164 「」 AF_ECMA 「」 AF_HYLINK 「」 AF_IMPLINK 「」 AF_INET 「」 AF_INET6 「」 AF_IPX 「」 AF_ISDN 「」 AF_ISO 「」 AF_LAT 「」 AF_LINK 「」 AF_LOCAL「 「AF_MAX」, 「AF_NATM」, 「AF_NDRV」, 「AF_NETBIOS」, 「AF_NS」, 「AF_OSI」, 「AF_PPP」, 「AF_PUP」, 「AF_ROUTE」, 「AF_SIP」, 「AF_SNA」, 「AF_SYSTEM」,「 AF_UNIX 「」 AF_UNSPEC 「」 AI_ADDRCONFIG 「」 AI_ALL 「」 AI_CANONNAME 「」 AI_DEFAULT 「」 AI_MASK 「」 AI_NUMERICHOST 「」 AI_PASSIVE 「」 AI_V4MAPPED 「」 AI_V4MAPPED_CFG 「」 追加 「」 CREAT「 , 「常量」, 「EAI_ADDRFAMILY」, 「EAI_AGAIN」, 「EAI_BADFLAGS」, 「EAI_BADHINTS」, 「EAI_FAIL」, 「EAI_FAMILY」, 「EAI_MAX」, 「EAI_MEMORY」, 「EAI_NODATA」, 「EAI_NONAME」, 「EAI_PROTOCOL」, 「EAI_SERVICE」, 「EAI_SOCKTYPE」, 「EAI_SYSTEM」, 「EXCL」, 「枚舉」, 「FNM_CASEFOLD」, 「FNM_DOTMATCH」, 「FNM_NOESCAPE」, 「FNM_PATHNAME」, 「FNM_SYSCASE」, 「INADDR_ALLHOSTS_GROUP」,「INADDR_ANY 「」 INADDR_BROADCAST 「」 INADDR_LOOPBACK 「」 INADDR_MAX_LOCAL_GROUP 「」 INADDR_NONE 「」 INADDR_UNSPEC_GROUP 「」 IPPORT_RESERVED 「」 IPPORT_USERRESERVED 「」 IPPROTO_EGP 「」 IPPROTO_EON 「」 IPPROTO_GGP 「」 IPPROTO_HELLO 「」 IPPROTO_ICMP」, 「IPPROTO_IDP」, 「IPPROTO_IGMP」, 「IPPROTO_IP」, 「IPPROTO_MAX」, 「IPPROTO_ND」, 「IPPROTO_PUP」, 「IPPROTO_RAW」, 「IPPROTO_TCP」, 「IPPROTO_TP」, 「IPPROTO_UDP」, 「IPPROTO_XTP」, 「IP_ADD_MEMBERSHIP」,「IP_DEFAULT_MULTICAST_LOOP 「」 IP_DEFAULT_MULTICAST_TTL 「」 IP_DROP_MEMBERSHIP 「」 IP_HDRINCL 「」 IP_MAX_MEMBERSHIPS 「」 IP_MULTICAST_IF 「」 IP_MULTICAST_LOOP 「」 IP_MULTICAST_TTL 「」 IP_OPTIONS 「」 IP_RECVDSTADDR 「」 IP_RECVOPTS 「」 IP_RECVRETOPTS 「」 IP_RETOPTS」, 「IP_TOS」, 「IP_TTL」, 「LOCK_EX」, 「LOCK_NB」, 「LOCK_SH」, 「LOCK_UN」, 「MSG_CTRUNC」, 「MSG_DONTROUTE」, 「MSG_DONTWAIT」, 「MSG_EOF」, 「MSG_EOR」,「MSG _FLUSH 「」 MSG_HAVEMORE 「」 MSG_HOLD 「」 MSG_OOB 「」 MSG_PEEK 「」 MSG_RCVMORE 「」 MSG_SEND 「」 MSG_TRUNC 「」 MSG_WAITALL 「」 NI_DGRAM 「」 NI_MAXHOST 「」 NI_MAXSERV 「」 NI_NAMEREQD「 「NI_NOFQDN」, 「NI_NUMERICHOST」, 「NI_NUMERICSERV」, 「NOCTTY」, 「NONBLOCK」, 「PF_APPLETALK」, 「PF_CCITT」, 「PF_CHAOS」, 「PF_CNT」, 「PF_COIP」, 「PF_DATAKIT」, 「PF_DLI」,「 PF_ECMA 「」 PF_HYLINK 「」 PF_IMPLINK 「」 PF_INET 「」 PF_INET6 「」 PF_IPX 「」 PF_ISDN 「」 PF_ISO 「」 PF_KEY 「」 PF_LAT 「」 PF_LINK 「」 PF_LOCAL 「」 PF_MAX「 「PF_NATM」, 「PF_NDRV」, 「PF_NETBIOS」, 「PF_NS」, 「PF_OSI」, 「PF_PIP」, 「PF_PPP」, 「PF_PUP」, 「PF_ROUTE」, 「PF_RTIP」, 「PF_SIP」, 「PF_SNA」,「 PF_SYSTEM 「」 PF_UNIX 「」 PF_UNSPEC 「」 PF_XTP 「」 RDONLY 「」 RDWR 「」 SEEK_CUR 「」 SEEK_END 「」 SEEK_SET 「」 SHUT_RD 「」 SHUT_RDWR 「」 SHUT_WR 「」 SOCK_DGRAM「 「SOCK_RAW」, 「SOCK_RDM」, 「SOCK_SEQPACKET」, 「SOCK_STREAM」, 「SOL_SOCKET」, 「SO_ACCEPTCONN」, 「SO_BROADCAST」, 「SO_DEBUG」, 「SO_DONTROUTE」, 「SO_DONTTRUNC」, 「SO_ERROR」, 「SO_KEEPALIVE」,「 SO_LINGER 「」 SO_NKE 「」 SO_NOSIGPIPE 「」 SO_NREAD 「」 SO_OOBINLINE 「」 SO_RCVB UF 「」 SO_RCVLOWAT 「」 SO_RCVTIMEO 「」 SO_REUSEADDR 「」 SO_REUSEPORT 「」 SO_SNDBUF 「」 SO_SNDLOWAT 「」 SO_SNDTIMEO 「」 SO_TIMESTAMP 「」 SO_TYPE 「」 SO_USELOOPBACK 「」 SO_WANTMORE 「」 SO_WANTOOBFLAG「 「SYNC」, 「TCP_MAXSEG」, 「TCP_NODELAY」, 「TRUNC」, 「WRONLY」]

回答

0

什麼OS是你嗎? SO_PEERCRED是僅適用於Linux,並且是only defined in Ruby if it exists on the platform

比較:

$ uname 
Linux 
$ ruby -e "require 'socket'; puts Socket.constants.include? :SO_PEERCRED" 
true 

$ uname 
Darwin 
$ ruby -e "require 'socket'; puts Socket.constants.include? :SO_PEERCRED" 
false