rbb 99/09/03 17:21:16
Modified:src/lib/apr/include apr_errno.h apr_network_io.h
src/lib/apr/network_io/unix sockets.c sockopt.c
Log:
A couple of new features for APR. And a few doc changes for APR.
Revision ChangesPath
1.2 +8 -0 apache-2.0/src/lib/apr/include/apr_errno.h
Index: apr_errno.h
===
RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_errno.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- apr_errno.h 1999/08/17 15:59:37 1.1
+++ apr_errno.h 1999/09/04 00:21:15 1.2
@@ -413,6 +413,14 @@
#define APR_BADARG 5013
#define APR_EOF5014
#define APR_NOTFOUND 5015
+#define APR_EINIT 5016 /* A simple value to be used to initialze a
+ * status variable.
+ */
+#define APR_ENOTIMPL 5017 /* Not implemented either because we
haven't
+ * gotten to it yet, or because it is not
+ * possible to do correctly.
+ */
+
#ifdef __cplusplus
}
#endif
1.4 +6 -0 apache-2.0/src/lib/apr/include/apr_network_io.h
Index: apr_network_io.h
===
RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_network_io.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- apr_network_io.h 1999/09/03 14:20:22 1.3
+++ apr_network_io.h 1999/09/04 00:21:15 1.4
@@ -76,6 +76,10 @@
#define APRMAXHOSTLEN 256
#endif
+#ifndef APR_ANYADDR
+#define APR_ANYADDR "ANY_IPADDR"
+#endif
+
/* Socket option definitions */
#define APR_SO_LINGER1
#define APR_SO_KEEPALIVE 2
@@ -83,6 +87,7 @@
#define APR_SO_NONBLOCK 8
#define APR_SO_REUSEADDR 16
#define APR_SO_TIMEOUT 32
+#define APR_SO_SNDBUF64
#define APR_POLLIN0x001
#define APR_POLLPRI 0x002
@@ -120,6 +125,7 @@
ap_status_t ap_setport(ap_socket_t *, ap_uint32_t);
ap_status_t ap_setipaddr(ap_socket_t *, const char *);
ap_status_t ap_getport(ap_socket_t *, ap_uint32_t *);
+ap_status_t ap_getipaddr(ap_socket_t *, char **);
ap_status_t ap_setup_poll(ap_context_t *, ap_int32_t, ap_pollfd_t **);
ap_status_t ap_poll(ap_pollfd_t *, ap_int32_t *, ap_int32_t);
1.4 +21 -2 apache-2.0/src/lib/apr/network_io/unix/sockets.c
Index: sockets.c
===
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/unix/sockets.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- sockets.c 1999/09/03 14:33:11 1.3
+++ sockets.c 1999/09/04 00:21:16 1.4
@@ -63,6 +63,7 @@
#include
#include
#include
+#include
#include
ap_status_t socket_cleanup(void *sock)
@@ -174,18 +175,36 @@
}
/* ***APRDOC
- * ap_status_t ap_setipaddr(ap_socket_t *, apr_uint32_t addr)
+ * ap_status_t ap_setipaddr(ap_socket_t *, cont char *addr)
*Assocaite a socket addr with an apr socket.
* arg 1) The socket to use
* arg 2) The IP address to attach to the socket.
+ *Use APR_ANYADDR to use any IP addr on the machine.
* NOTE: This does not bind the two together, it is just telling apr
*that this socket is going to use this address if possible.
*/
ap_status_t ap_setipaddr(struct socket_t *sock, const char *addr)
{
-if (inet_aton(addr, &sock->addr->sin_addr.s_addr) == 0) {
+if (!strcmp(addr, APR_ANYADDR)) {
+sock->addr->sin_addr.s_addr = htonl(INADDR_ANY);
+return APR_SUCCESS;
+}
+if (inet_aton(addr, &sock->addr->sin_addr) == 0) {
return errno;
}
+return APR_SUCCESS;
+}
+
+/* ***APRDOC
+ * ap_status_t ap_getipaddr(ap_socket_t *, char *addr)
+ *Return the IP address associated with an apr socket.
+ * arg 1) The socket to use
+ * arg 2) The IP address associated with the socket.
+ */
+ap_status_t ap_getipaddr(struct socket_t *sock, char **addr)
+{
+char *temp = inet_ntoa(sock->addr->sin_addr);
+strcpy(*addr, temp);
return APR_SUCCESS;
}
1.3 +6 -0 apache-2.0/src/lib/apr/network_io/unix/sockopt.c
Index: sockopt.c
===
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/unix/sockopt.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sockopt.c 1999/09/03 14:20:23 1.2
+++ sockopt.c 1999/09/04 00:21:16 1.3
@@ -120,6