]> gitweb @ CieloNegro.org - bindings-apr.git/blob - Bindings/APR/Network/IO.hsc
C string macros should be treated as global arrays.
[bindings-apr.git] / Bindings / APR / Network / IO.hsc
1 #include <bindings.dsl.h>
2 #include <apr_network_io.h>
3 #include "bindings.apr.pools.h"
4 #include "bindings.apr.inherit.h"
5
6 module Bindings.APR.Network.IO where
7 #strict_import
8 import Bindings.APR
9 import Bindings.APR.ErrNo
10 import Bindings.APR.File.Types
11 import Bindings.APR.Pools
12 import Bindings.APR.Time
13 import Bindings.APR.Want
14
15 #num APR_MAX_SECS_TO_LINGER
16 #num APRMAXHOSTLEN
17 #globalarray APR_ANYADDR, CChar
18
19 #num APR_SO_LINGER
20 #num APR_SO_KEEPALIVE
21 #num APR_SO_DEBUG
22 #num APR_SO_NONBLOCK
23 #num APR_SO_REUSEADDR
24 #num APR_SO_SNDBUF
25 #num APR_SO_RCVBUF
26 #num APR_SO_DISCONNECTED
27 #num APR_TCP_NODELAY
28 #num APR_TCP_NOPUSH
29 #num APR_RESET_NODELAY
30 #num APR_INCOMPLETE_READ
31 #num APR_INCOMPLETE_WRITE
32 #num APR_IPV6_V6ONLY
33 #num APR_TCP_DEFER_ACCEPT
34
35 #integral_t apr_shutdown_how_e
36 #num APR_IPV4_ADDR_OK
37 #num APR_IPV6_ADDR_OK
38
39 #num APR_INADDR_NONE
40
41 #num APR_INET
42 #num APR_UNSPEC
43
44 #if APR_HAVE_IPV6
45 #  num APR_INET6
46 #endif
47
48 #num APR_PROTO_TCP
49 #num APR_PROTO_UDP
50 #num APR_PROTO_SCTP
51
52 #integral_t apr_interface_e
53 #num APR_LOCAL
54 #num APR_REMOTE
55
56 -- FIXME: How should I wrap apr_inet_addr?
57
58 #opaque_t apr_socket_t
59
60 #starttype struct apr_hdtr_t
61 #  field headers    , Ptr <iovec>
62 #  field numheaders , CInt
63 #  field trailers   , Ptr <iovec>
64 #  field numtrailers, CInt
65 #stoptype
66
67 -- FIXME: How should I wrap apr_in_addr_t?
68
69 #opaque_t apr_ipsubnet_t
70
71 #integral_t apr_port_t
72
73 #starttype struct apr_sockaddr_t
74 #  field pool        , Ptr <apr_pool_t>
75 #  field hostname    , Ptr CChar
76 #  field servname    , Ptr CChar
77 #  field port        , <apr_port_t>
78 #  field family      , <apr_int32_t>
79 #  field salen       , <apr_socklen_t>
80 #  field ipaddr_len  , CInt
81 #  field addr_str_len, CInt
82 #  field ipaddr_ptr  , Ptr ()
83 #  field next        , Ptr <apr_sockaddr_t>
84 -- FIXME: wrap around sa, sin, sin6, sas
85 #stoptype
86
87 #if APR_HAS_SENDFILE
88 #  num APR_SENDFILE_DISCONNECT_SOCKET
89 #endif
90
91 #ccall apr_socket_create    , Ptr (Ptr <apr_socket_t>) -> CInt -> CInt -> CInt -> Ptr <apr_pool_t> -> IO <apr_status_t>
92 #ccall apr_socket_shutdown  , Ptr <apr_socket_t> -> <apr_shutdown_how_e> -> IO <apr_status_t>
93 #ccall apr_socket_close     , Ptr <apr_socket_t> -> IO <apr_status_t>
94 #ccall apr_socket_bind      , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>
95 #ccall apr_socket_listen    , Ptr <apr_status_t> -> <apr_int32_t> -> IO <apr_status_t>
96 #ccall apr_socket_accept    , Ptr (Ptr <apr_socket_t>) -> Ptr <apr_socket_t> -> Ptr <apr_pool_t> -> IO <apr_status_t>
97 #ccall apr_socket_connect   , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>
98 #ccall apr_sockaddr_info_get, Ptr (Ptr <apr_sockaddr_t>) -> Ptr CChar -> <apr_int32_t> -> <apr_port_t> -> <apr_int32_t> -> Ptr <apr_port_t> -> IO <apr_status_t>
99 #ccall apr_getnameinfo      , Ptr (Ptr CChar) -> Ptr <apr_sockaddr_t> -> <apr_int32_t> -> IO <apr_status_t>
100 #ccall apr_parse_addr_port  , Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> Ptr <apr_port_t> -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>
101 #ccall apr_gethostname      , Ptr CChar -> CInt -> Ptr <apr_pool_t> -> IO <apr_status_t>
102 #ccall apr_socket_data_get  , Ptr (Ptr ()) -> Ptr CChar -> Ptr <apr_socket_t> -> IO <apr_status_t>
103 #ccall apr_socket_data_set  , Ptr <apr_socket_t> -> Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO <apr_status_t>) -> IO <apr_status_t>
104 #ccall apr_socket_send      , Ptr <apr_socket_t> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>
105 #ccall apr_socket_sendv     , Ptr <apr_socket_t> -> Ptr <iovec> -> <apr_int32_t> -> Ptr <apr_size_t> -> IO <apr_status_t>
106 #ccall apr_socket_sendto    , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> <apr_int32_t> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>
107 #ccall apr_socket_recvfrom  , Ptr <apr_sockaddr_t> -> Ptr <apr_socket_t> -> <apr_int32_t> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>
108
109 #if APR_HAS_SENDFILE
110 #  ccall apr_socket_sendfile, Ptr <apr_socket_t> -> Ptr <apr_file_t> -> Ptr <apr_hdtr_t> -> Ptr <apr_off_t> -> Ptr <apr_size_t> -> <apr_int32_t> -> IO <apr_status_t>
111 #endif
112
113 #ccall apr_socket_recv       , Ptr <apr_socket_t> -> Ptr CChar -> Ptr <apr_size_t> -> IO <apr_status_t>
114 #ccall apr_socket_opt_set    , Ptr <apr_socket_t> -> <apr_int32_t> -> <apr_int32_t> -> IO <apr_status_t>
115 #ccall apr_socket_timeout_set, Ptr <apr_socket_t> -> <apr_interval_time_t> -> IO <apr_status_t>
116 #ccall apr_socket_opt_get    , Ptr <apr_socket_t> -> <apr_int32_t> -> <apr_int32_t> -> IO <apr_status_t>
117 #ccall apr_socket_timeout_get, Ptr <apr_socket_t> -> Ptr <apr_interval_time_t> -> IO <apr_status_t>
118 #ccall apr_socket_atmark     , Ptr <apr_socket_t> -> Ptr CInt -> IO <apr_status_t>
119 #ccall apr_socket_addr_get   , Ptr (Ptr <apr_socket_t>) -> <apr_interface_e> -> Ptr <apr_socket_t> -> IO <apr_status_t>
120 #ccall apr_sockaddr_ip_get   , Ptr (Ptr CChar) -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>
121 #ccall apr_sockaddr_ip_getbuf, Ptr CChar -> <apr_size_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>
122 #ccall apr_sockaddr_equal    , Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> IO CInt
123 #ccall apr_socket_type_get   , Ptr <apr_socket_t> -> Ptr CInt -> IO <apr_status_t>
124 #ccall apr_getservbyname     , Ptr <apr_sockaddr_t> -> Ptr CChar -> IO <apr_status_t>
125 #ccall apr_ipsubnet_create   , Ptr (Ptr <apr_ipsubnet_t>) -> Ptr CChar -> Ptr CChar -> Ptr <apr_pool_t> -> IO <apr_status_t>
126 #ccall apr_ipsubnet_test     , Ptr <apr_ipsubnet_t> -> Ptr <apr_sockaddr_t> -> IO CInt
127
128 #if APR_HAS_SO_ACCEPTFILTER
129 #  ccall apr_socket_accept_filter, Ptr <apr_socket_t> -> Ptr CChar -> Ptr CChar -> IO <apr_status_t>
130 #endif
131
132 #ccall apr_socket_protocol_get, Ptr <apr_socket_t> -> Ptr CInt -> IO <apr_status_t>
133
134 #apr_pool_accessor socket
135 #apr_inherit_set   socket
136 #apr_inherit_unset socket
137
138 #ccall apr_mcast_join     , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>
139 #ccall apr_mcast_leave    , Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>
140 #ccall apr_mcast_hops     , Ptr <apr_socket_t> -> <apr_byte_t> -> IO <apr_status_t>
141 #ccall apr_mcast_loopback , Ptr <apr_socket_t> -> <apr_byte_t> -> IO <apr_status_t>
142 #ccall apr_mcast_interface, Ptr <apr_socket_t> -> Ptr <apr_sockaddr_t> -> IO <apr_status_t>