File: socket.py

package info (click to toggle)
jython 2.7.2%2Brepack1-3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 62,676 kB
  • sloc: python: 640,908; java: 306,458; xml: 1,984; sh: 522; ansic: 126; makefile: 76
file content (142 lines) | stat: -rw-r--r-- 2,462 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# dispatches to _socket for actual implementation

from _socket import (
    socket, SocketType, error, herror, gaierror, timeout, has_ipv6,

    create_connection,

    getdefaulttimeout,
    setdefaulttimeout,
    
    getfqdn,
    gethostbyaddr,
    gethostbyname,
    gethostbyname_ex,
    gethostname,
    getprotobyname,
    getservbyname,
    getservbyport,

    AF_UNSPEC,
    AF_INET,
    AF_INET6,

    AI_PASSIVE,
    AI_CANONNAME,
    AI_NUMERICHOST,
    AI_V4MAPPED,
    AI_ALL,
    AI_ADDRCONFIG,
    AI_NUMERICSERV,

    EAI_NONAME,
    EAI_SERVICE,
    EAI_ADDRFAMILY,
    
    NI_NUMERICHOST,
    NI_NUMERICSERV,
    NI_NOFQDN,
    NI_NAMEREQD,
    NI_DGRAM,
    NI_MAXSERV,
    NI_IDN,
    NI_IDN_ALLOW_UNASSIGNED,
    NI_IDN_USE_STD3_ASCII_RULES,
    NI_MAXHOST,

    SHUT_RD,
    SHUT_WR,
    SHUT_RDWR,

    SOCK_DGRAM,
    SOCK_STREAM,
    SOCK_RAW,
    SOCK_RDM,
    SOCK_SEQPACKET,
    
    SOL_SOCKET,
    SOL_TCP,
    # not supported, but here for apparent completeness
    IPPROTO_AH,
    IPPROTO_DSTOPTS,
    IPPROTO_ESP,
    IPPROTO_FRAGMENT,
    IPPROTO_GGP,
    IPPROTO_HOPOPTS,
    IPPROTO_ICMP,
    IPPROTO_ICMPV6,
    IPPROTO_IDP,
    IPPROTO_IGMP,
    IPPROTO_IP, # supported
    # not supported
    IPPROTO_IPV4,
    IPPROTO_IPV6,
    IPPROTO_MAX,
    IPPROTO_ND,
    IPPROTO_NONE,
    IPPROTO_PUP,
    IPPROTO_RAW,
    IPPROTO_ROUTING,
    IPPROTO_TCP, # supported
    IPPROTO_UDP, # supported

    # supported
    SO_BROADCAST,
    SO_KEEPALIVE,
    SO_LINGER,
    SO_RCVBUF,
    SO_REUSEADDR,
    SO_SNDBUF,
    SO_TIMEOUT,
    TCP_NODELAY,

    # pseudo options
    SO_ACCEPTCONN,
    SO_ERROR,
    SO_TYPE,

    # unsupported, will return errno.ENOPROTOOPT if actually used
    SO_OOBINLINE,
    SO_DEBUG,
    SO_DONTROUTE,
    SO_RCVLOWAT,
    SO_RCVTIMEO,
    SO_REUSEPORT,
    SO_SNDLOWAT,
    SO_SNDTIMEO,
    SO_USELOOPBACK,
    
    INADDR_ANY,
    INADDR_BROADCAST,
    IN6ADDR_ANY_INIT,

    _GLOBAL_DEFAULT_TIMEOUT,

    is_ipv4_address, is_ipv6_address, is_ip_address,
    getaddrinfo,
    getnameinfo,
    htons,
    htonl,
    ntohs,
    ntohl,
    inet_aton,
    inet_ntoa,
    inet_pton,
    inet_ntop,

    _fileobject,
    _get_jsockaddr
)


def supports(feature):
    # FIXME this seems to be Jython internals specific, and for
    # testing only; consider removing since it really no longer
    # matters
 
    if feature == "idna":
        return True
    raise KeyError("Unknown feature", feature)