Addons updated to new doc format
[io.git] / addons / Socket / source / IPAddress.h
blob05c1efb6a993a46d0fdde8f584a0d551c39c9d31
2 //metadoc IPAddress copyright Steve Dekorte 2002
3 //metadoc IPAddress license BSD revised
5 #ifndef IPADDRESS_DEFINED
6 #define IPADDRESS_DEFINED 1
8 //#include "Socket.h"
9 #include "Common.h"
11 #include <sys/types.h>
12 #ifndef WIN32
13 #include <sys/uio.h>
14 #include <sys/types.h>
15 #include <unistd.h>
16 #include <sys/socket.h>
17 #include <netinet/in.h>
18 #include <arpa/inet.h>
19 #include <netdb.h>
20 #include <signal.h>
21 #include <sys/ioctl.h>
22 #include <sys/time.h>
23 #else
24 #include <winsock2.h>
26 // for dog4
27 #ifndef IO_WINSOCK_COMPAT
28 #define IO_WINSOCK_COMPAT
29 typedef size_t socklen_t;
30 typedef SSIZE_T ssize_t;
31 #endif
33 #ifndef EISCONN
34 #define EISCONN WSAEISCONN
35 #define ENOTCONN WSAENOTCONN
36 #endif
37 #endif
39 typedef struct
41 socklen_t size;
42 struct sockaddr_in *sockaddr;
43 } IPAddress;
45 IPAddress *IPAddress_new(void);
46 IPAddress *IPAddress_setIPAddress_size_(IPAddress *self, struct sockaddr *sockaddr, size_t size);
47 void IPAddress_free(IPAddress *self);
49 struct sockaddr *IPAddress_sockaddr(IPAddress *self);
50 socklen_t IPAddress_size(IPAddress *self);
51 void IPAddress_setSize_(IPAddress *self, socklen_t size);
53 // ip
55 void IPAddress_setIp_(IPAddress *self, char *ip);
56 char *IPAddress_ip(IPAddress *self);
58 // port
60 void IPAddress_setPort_(IPAddress *self, uint16_t port);
61 uint16_t IPAddress_port(IPAddress *self);
63 #endif