qmsk/net/socket/__init__.py
author Tero Marttila <terom@fixme.fi>
Wed, 19 Aug 2009 00:12:07 +0300
changeset 26 d8a71a675862
parent 24 f18b5787c46c
child 27 12468e38227e
permissions -rw-r--r--
some abstract shit
24
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
     1
"""
26
d8a71a675862 some abstract shit
Tero Marttila <terom@fixme.fi>
parents: 24
diff changeset
     2
    The low-level OS Socket API and related functionality, covering the Network layer. This includes network addresses
d8a71a675862 some abstract shit
Tero Marttila <terom@fixme.fi>
parents: 24
diff changeset
     3
    and hostname resolving.
24
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
     4
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
     5
    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
     6
    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
     7
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
     8
    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
     9
    
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    10
    address:
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    11
        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
    12
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    13
        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
    14
                          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
    15
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    16
        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
    17
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    18
        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
    19
    
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:
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    21
        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
    22
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    23
        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
    24
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:
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    26
        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
    27
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    28
        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
    29
    
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    30
    socket:
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    31
        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
    32
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    33
        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
    34
                          calls.
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    35
        
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    36
    sctp:
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    37
        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
    38
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    39
        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
    40
    
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    41
    constants:
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    42
        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
    43
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    44
        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
    45
        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
    46
        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
    47
        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
    48
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    49
        etc.
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
f18b5787c46c reorganize socket, adding af_inet/af_inet6 modules, and moving sctp in
Tero Marttila <terom@fixme.fi>
parents: 12
diff changeset
    52
## 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
    53
#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
    54
#
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_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
    56
#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
    57
#
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.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
    59
#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
    60
#
12
314d47bdd4d9 full range of send/write operations
Tero Marttila <terom@fixme.fi>
parents: 10
diff changeset
    61
#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
    62
#
10
94b0d5a208c1 split up socket.platform
Tero Marttila <terom@fixme.fi>
parents: 7
diff changeset
    63