author | Tero Marttila <terom@fixme.fi> |
Tue, 18 Aug 2009 23:02:30 +0300 | |
changeset 24 | f18b5787c46c |
parent 12 | 314d47bdd4d9 |
child 26 | d8a71a675862 |
permissions | -rw-r--r-- |
24
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
1 |
""" |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
2 |
The low-level OS Socket API and related functionality, covering the Internet layer. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
3 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
4 |
All functionality provided here aims to be a thin wrapper around the native system API, so for the most part, methods |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
5 |
map directly to *one* syscall/libc call. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
6 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
7 |
Provided modules/types: |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
8 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
9 |
address: |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
10 |
Abstract socket addresses. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
11 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
12 |
sockaddr - corresponds to the `struct sockaddr` used in socket API calls. This is an abstract type |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
13 |
that cannot itself be instantated, see `sockaddr_in`/`sockaddr_in6`/`endpoint`. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
14 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
15 |
addrinfo - corresponds to the `struct addrinfo` used by the GAI API. Hold a concrete `sockaddr` |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
16 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
17 |
endpoint - abstract internet hostname+service address as handled by getaddrinfo. Maps to a series of `addrinfo`'s. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
18 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
19 |
af_inet: |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
20 |
AF_INET (IPv4) -specific functionality. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
21 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
22 |
sockaddr_in - AF_INET sockaddr with addr, port fields |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
23 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
24 |
af_inet6: |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
25 |
AF_INET6 (IPv6) -specific functionality. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
26 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
27 |
sockaddr_in6 - AF_INET6 sockaddr with addr, port, flowinfo, scope_id fields |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
28 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
29 |
socket: |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
30 |
Core socket API. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
31 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
32 |
socket - socket-related syscalls with a guaranteed 1:1 mapping between methods and library |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
33 |
calls. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
34 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
35 |
sctp: |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
36 |
SCTP-specific socket API |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
37 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
38 |
sctp_socket - extension of socket.socket to support SCTP-specific socket API extensions |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
39 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
40 |
constants: |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
41 |
Socket-related constants. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
42 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
43 |
AF_* - address families |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
44 |
SOCK_* - socket types |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
45 |
IPPROTO_* - inet protocols |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
46 |
MSG_* - send/recv message flags |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
47 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
48 |
etc. |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
49 |
""" |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
50 |
|
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
51 |
## XXX: these shadow the modules... how do we want to provide these? |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
52 |
#from qmsk.net.socket.address import sockaddr, addrinfo, endpoint |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
53 |
# |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
54 |
#from qmsk.net.socket.af_inet import sockaddr_in |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
55 |
#from qmsk.net.socket.af_inet6 import sockaddr_in6 |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
56 |
# |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
57 |
#from qmsk.net.socket.socket import socket |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
58 |
#from qmsk.net.socket.sctp import sctp_socket |
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
59 |
# |
12
314d47bdd4d9
full range of send/write operations
Tero Marttila <terom@fixme.fi>
parents:
10
diff
changeset
|
60 |
#from qmsk.net.socket.constants import * |
24
f18b5787c46c
reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents:
12
diff
changeset
|
61 |
# |
10 | 62 |