#include #include #include "bindings.apr.pools.h" #include "bindings.apr.inherit.h" module Bindings.APR.Network.IO where #strict_import import Bindings.APR import Bindings.APR.ErrNo import Bindings.APR.File.Types import Bindings.APR.Pools import Bindings.APR.Time import Bindings.APR.Want #num APR_MAX_SECS_TO_LINGER #num APRMAXHOSTLEN #globalarray APR_ANYADDR, CChar #num APR_SO_LINGER #num APR_SO_KEEPALIVE #num APR_SO_DEBUG #num APR_SO_NONBLOCK #num APR_SO_REUSEADDR #num APR_SO_SNDBUF #num APR_SO_RCVBUF #num APR_SO_DISCONNECTED #num APR_TCP_NODELAY #num APR_TCP_NOPUSH #num APR_RESET_NODELAY #num APR_INCOMPLETE_READ #num APR_INCOMPLETE_WRITE #num APR_IPV6_V6ONLY #num APR_TCP_DEFER_ACCEPT #integral_t apr_shutdown_how_e #num APR_IPV4_ADDR_OK #num APR_IPV6_ADDR_OK #num APR_INADDR_NONE #num APR_INET #num APR_UNSPEC #if APR_HAVE_IPV6 # num APR_INET6 #endif #num APR_PROTO_TCP #num APR_PROTO_UDP #num APR_PROTO_SCTP #integral_t apr_interface_e #num APR_LOCAL #num APR_REMOTE -- FIXME: How should I wrap apr_inet_addr? #opaque_t apr_socket_t #starttype struct apr_hdtr_t # field headers , Ptr # field numheaders , CInt # field trailers , Ptr # field numtrailers, CInt #stoptype -- FIXME: How should I wrap apr_in_addr_t? #opaque_t apr_ipsubnet_t #integral_t apr_port_t #starttype struct apr_sockaddr_t # field pool , Ptr # field hostname , Ptr CChar # field servname , Ptr CChar # field port , # field family , # field salen , # field ipaddr_len , CInt # field addr_str_len, CInt # field ipaddr_ptr , Ptr () # field next , Ptr -- FIXME: wrap around sa, sin, sin6, sas #stoptype #if APR_HAS_SENDFILE # num APR_SENDFILE_DISCONNECT_SOCKET #endif #ccall apr_socket_create , Ptr (Ptr ) -> CInt -> CInt -> CInt -> Ptr -> IO #ccall apr_socket_shutdown , Ptr -> -> IO #ccall apr_socket_close , Ptr -> IO #ccall apr_socket_bind , Ptr -> Ptr -> IO #ccall apr_socket_listen , Ptr -> -> IO #ccall apr_socket_accept , Ptr (Ptr ) -> Ptr -> Ptr -> IO #ccall apr_socket_connect , Ptr -> Ptr -> IO #ccall apr_sockaddr_info_get, Ptr (Ptr ) -> Ptr CChar -> -> -> -> Ptr -> IO #ccall apr_getnameinfo , Ptr (Ptr CChar) -> Ptr -> -> IO #ccall apr_parse_addr_port , Ptr (Ptr CChar) -> Ptr (Ptr CChar) -> Ptr -> Ptr CChar -> Ptr -> IO #ccall apr_gethostname , Ptr CChar -> CInt -> Ptr -> IO #ccall apr_socket_data_get , Ptr (Ptr ()) -> Ptr CChar -> Ptr -> IO #ccall apr_socket_data_set , Ptr -> Ptr () -> Ptr CChar -> FunPtr (Ptr () -> IO ) -> IO #ccall apr_socket_send , Ptr -> Ptr CChar -> Ptr -> IO #ccall apr_socket_sendv , Ptr -> Ptr -> -> Ptr -> IO #ccall apr_socket_sendto , Ptr -> Ptr -> -> Ptr CChar -> Ptr -> IO #ccall apr_socket_recvfrom , Ptr -> Ptr -> -> Ptr CChar -> Ptr -> IO #if APR_HAS_SENDFILE # ccall apr_socket_sendfile, Ptr -> Ptr -> Ptr -> Ptr -> Ptr -> -> IO #endif #ccall apr_socket_recv , Ptr -> Ptr CChar -> Ptr -> IO #ccall apr_socket_opt_set , Ptr -> -> -> IO #ccall apr_socket_timeout_set, Ptr -> -> IO #ccall apr_socket_opt_get , Ptr -> -> -> IO #ccall apr_socket_timeout_get, Ptr -> Ptr -> IO #ccall apr_socket_atmark , Ptr -> Ptr CInt -> IO #ccall apr_socket_addr_get , Ptr (Ptr ) -> -> Ptr -> IO #ccall apr_sockaddr_ip_get , Ptr (Ptr CChar) -> Ptr -> IO #ccall apr_sockaddr_ip_getbuf, Ptr CChar -> -> Ptr -> IO #ccall apr_sockaddr_equal , Ptr -> Ptr -> IO CInt #ccall apr_socket_type_get , Ptr -> Ptr CInt -> IO #ccall apr_getservbyname , Ptr -> Ptr CChar -> IO #ccall apr_ipsubnet_create , Ptr (Ptr ) -> Ptr CChar -> Ptr CChar -> Ptr -> IO #ccall apr_ipsubnet_test , Ptr -> Ptr -> IO CInt #if APR_HAS_SO_ACCEPTFILTER # ccall apr_socket_accept_filter, Ptr -> Ptr CChar -> Ptr CChar -> IO #endif #ccall apr_socket_protocol_get, Ptr -> Ptr CInt -> IO #apr_pool_accessor socket #apr_inherit_set socket #apr_inherit_unset socket #ccall apr_mcast_join , Ptr -> Ptr -> Ptr -> Ptr -> IO #ccall apr_mcast_leave , Ptr -> Ptr -> Ptr -> Ptr -> IO #ccall apr_mcast_hops , Ptr -> -> IO #ccall apr_mcast_loopback , Ptr -> -> IO #ccall apr_mcast_interface, Ptr -> Ptr -> IO