You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ma...@hyperreal.org on 1999/10/08 21:44:38 UTC
cvs commit: apache-2.0/src/lib/apr/network_io/unix networkio.h sockets.c sockopt.c
manoj 99/10/08 12:44:36
Modified: src/lib/apr/network_io/unix networkio.h sockets.c sockopt.c
Log:
Every accept() was resulting in a reverse name lookup. This eliminates it.
Revision Changes Path
1.5 +0 -1 apache-2.0/src/lib/apr/network_io/unix/networkio.h
Index: networkio.h
===================================================================
RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/unix/networkio.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -u -r1.4 -r1.5
--- networkio.h 1999/10/01 16:18:34 1.4
+++ networkio.h 1999/10/08 19:44:30 1.5
@@ -65,7 +65,6 @@
struct socket_t {
ap_context_t *cntxt;
int socketdes;
- char *remote_hostname;
struct sockaddr_in *addr;
size_t addr_len;
int timeout;
1.12 +0 -10 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.11
retrieving revision 1.12
diff -u -d -u -r1.11 -r1.12
--- sockets.c 1999/10/04 16:37:13 1.11
+++ sockets.c 1999/10/08 19:44:31 1.12
@@ -100,7 +100,6 @@
}
(*new)->socketdes = socket(AF_INET ,SOCK_STREAM, IPPROTO_TCP);
- (*new)->remote_hostname = NULL;
(*new)->addr->sin_family = AF_INET;
@@ -252,8 +251,6 @@
*/
ap_status_t ap_accept(struct socket_t **new, const struct socket_t *sock)
{
- struct hostent *hptr;
-
(*new) = (struct socket_t *)ap_palloc(sock->cntxt,
sizeof(struct socket_t));
@@ -269,12 +266,6 @@
return errno;
}
- hptr = gethostbyaddr((char *)&(*new)->addr->sin_addr,
- sizeof(struct in_addr), AF_INET);
- if (hptr != NULL) {
- (*new)->remote_hostname = strdup(hptr->h_name);
- }
-
ap_register_cleanup((*new)->cntxt, (void *)(*new),
socket_cleanup, NULL);
return APR_SUCCESS;
@@ -316,7 +307,6 @@
return errno;
}
else {
- sock->remote_hostname = strdup(hostname);
return APR_SUCCESS;
}
}
1.6 +14 -4 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.5
retrieving revision 1.6
diff -u -d -u -r1.5 -r1.6
--- sockopt.c 1999/10/04 16:37:13 1.5
+++ sockopt.c 1999/10/08 19:44:32 1.6
@@ -64,6 +64,8 @@
#include <netinet/in.h>
#include <unistd.h>
#include <fcntl.h>
+#include <arpa/inet.h>
+#include <netdb.h>
static ap_status_t soblock(int sd)
{
@@ -201,11 +203,19 @@
*/
ap_status_t ap_get_remote_hostname(char **name, struct socket_t *sock)
{
- (*name) = ap_pstrdup(sock->cntxt, sock->remote_hostname);
- if (*name) {
- return APR_SUCCESS;
+ struct hostent *hptr;
+
+ hptr = gethostbyaddr((char *)&(sock->addr->sin_addr),
+ sizeof(struct in_addr), AF_INET);
+ if (hptr != NULL) {
+ *name = ap_pstrdup(sock->cntxt, hptr->h_name);
+ if (*name) {
+ return APR_SUCCESS;
+ }
+ return APR_ENOMEM;
}
- return APR_ENOMEM;
+
+ return errno;
}