rbb 99/04/14 14:02:12
Modified: apr/network_io/unix networkio.h sockets.c
Log:
Added sockaddr to socket structure, to help make socket type complete for
any function that may use them. Also added bind and listen calls.
Revision Changes Path
1.3 +2 -0 apache-apr/apr/network_io/unix/networkio.h
Index: networkio.h
===================================================================
RCS file: /home/cvs/apache-apr/apr/network_io/unix/networkio.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- networkio.h 1999/04/14 19:17:20 1.2
+++ networkio.h 1999/04/14 21:02:06 1.3
@@ -60,6 +60,8 @@
struct socket_t {
int socketdes;
char *hostname;
+ struct sockaddr_in *addr;
+ size_t addr_len;
};
typedef fd_set sd_set_t;
1.2 +28 -0 apache-apr/apr/network_io/unix/sockets.c
Index: sockets.c
===================================================================
RCS file: /home/cvs/apache-apr/apr/network_io/unix/sockets.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- sockets.c 1999/04/13 11:49:54 1.1
+++ sockets.c 1999/04/14 21:02:07 1.2
@@ -69,6 +69,12 @@
thesocket->hostname = NULL;
thesocket->socketdes = socket(AF_INET ,SOCK_STREAM, IPPROTO_TCP);
+ thesocket->addr = (struct sockaddr_in *)malloc(sizeof(struct
sockaddr_in));
+ thesocket->addr->sin_family = AF_INET;
+ thesocket->addr->sin_addr.s_addr = INADDR_ANY;
+
+ thesocket->addr_len = sizeof(thesocket->addr);
+
if (thesocket->socketdes < 0) {
return NULL;
}
@@ -97,4 +103,26 @@
else {
return APR_FAILURE;
}
+}
+
+apr_status_t apr_setport(apr_socket_t *sock, apr_uint32_t port)
+{
+ sock->addr->sin_port = htons((short)port);
+ return APR_SUCCESS;
+}
+
+apr_status_t apr_bind(apr_socket_t *sock)
+{
+ if (bind(sock->socketdes, (struct sockaddr *)sock->addr, sock->addr_len)
== -1)
+ return APR_FAILURE;
+ else
+ return APR_SUCCESS;
+}
+
+apr_status_t apr_listen(apr_socket_t *sock, apr_int32_t backlog)
+{
+ if (listen(sock->socketdes, backlog) == -1)
+ return APR_FAILURE;
+ else
+ return APR_SUCCESS;
}