From c0a0b50bee2b937df86b54dcc059740d42a75a47 Mon Sep 17 00:00:00 2001 From: PHO Date: Sat, 21 Aug 2010 10:10:58 +0900 Subject: [PATCH] Bindings.APR.Network.IO --- Bindings/APR/Network/IO.hsc | 140 ++++++++++++++++++++++++++++++++++++ bindings-apr.cabal | 1 + 2 files changed, 141 insertions(+) create mode 100644 Bindings/APR/Network/IO.hsc diff --git a/Bindings/APR/Network/IO.hsc b/Bindings/APR/Network/IO.hsc new file mode 100644 index 0000000..90d0e5c --- /dev/null +++ b/Bindings/APR/Network/IO.hsc @@ -0,0 +1,140 @@ +#include +#include + +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 +#pointer APR_ANYADDR + +#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 + +#ccall apr_socket_pool_get , Ptr -> IO (Ptr ) +#ccall apr_socket_inherit_set , Ptr -> IO +#ccall apr_socket_inherit_unset, Ptr -> IO + +#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 diff --git a/bindings-apr.cabal b/bindings-apr.cabal index 5bf90e8..a1e2be9 100644 --- a/bindings-apr.cabal +++ b/bindings-apr.cabal @@ -46,6 +46,7 @@ Library Bindings.APR.Hash Bindings.APR.Lib Bindings.APR.MMap + Bindings.APR.Network.IO Bindings.APR.Pools Bindings.APR.Proc.Mutex Bindings.APR.Tables -- 2.40.0