@@ -107,6 +107,13 @@ EAGAIN : Int
107EAGAIN = 11
107EAGAIN = 11
109-- TODO: Expand to non-string payloads
109-- TODO: Expand to non-string payloads
110+record UDPRecvData where
111+ remote_addr : SocketAddress
110record UDPRecvData : Type where
117record UDPRecvData : Type where
111 MkUDPRecvData :
118 MkUDPRecvData :
112 (remote_addr : SocketAddress) ->
119 (remote_addr : SocketAddress) ->
@@ -114,13 +121,19 @@ record UDPRecvData : Type where
114 (recv_data : String) ->
121 (recv_data : String) ->
115 (data_len : Int) ->
122 (data_len : Int) ->
116 UDPRecvData
123 UDPRecvData
126+record UDPAddrInfo where
127+ remote_addr : SocketAddress
118record UDPAddrInfo : Type where
131record UDPAddrInfo : Type where
119 MkUDPAddrInfo :
132 MkUDPAddrInfo :
120 (remote_addr : SocketAddress) ->
133 (remote_addr : SocketAddress) ->
121 (remote_port : Port) ->
134 (remote_port : Port) ->
122 UDPAddrInfo
135 UDPAddrInfo
124||| Frees a given pointer
137||| Frees a given pointer
126sock_free : BufPtr -> IO ()
139sock_free : BufPtr -> IO ()
@@ -138,13 +151,20 @@ sock_alloc : ByteLength -> IO BufPtr
138sock_alloc bl = map BPtr $ foreign FFI_C "idrnet_malloc" (Int -> IO Ptr) bl
151sock_alloc bl = map BPtr $ foreign FFI_C "idrnet_malloc" (Int -> IO Ptr) bl
140||| The metadata about a socket
153||| The metadata about a socket
155+ descriptor : SocketDescriptor
156+ family : SocketFamily
157+ socketType : SocketType
158+ protocalNumber : ProtocolNumber
141record Socket : Type where
161record Socket : Type where
142 MkSocket : (descriptor : SocketDescriptor) ->
162 MkSocket : (descriptor : SocketDescriptor) ->
143 (family : SocketFamily) ->
163 (family : SocketFamily) ->
144 (socketType : SocketType) ->
164 (socketType : SocketType) ->
145 (protocolNumber : ProtocolNumber) ->
165 (protocolNumber : ProtocolNumber) ->
148||| Get the C error number
168||| Get the C error number
149getErrno : IO Int
169getErrno : IO Int
150getErrno = foreign FFI_C "idrnet_errno" (IO Int)
170getErrno = foreign FFI_C "idrnet_errno" (IO Int)