cvs commit: apache-2.0/src/lib/apr/network_io/win32 sockets.c
rbb 99/12/17 04:32:16 Modified:src/lib/apr/test ab_apr.c testproc.c src/lib/apr/include apr_win.h src/lib/apr/network_io/win32 sockets.c Log: Various fixes for Win32 APR. The test cases all almost work again on windows. The 1 second sleep that has been added to testproc is so that Windows has time to notice the update to the file system. Submitted by: Allan Edwards Reviewed by: Ryan Bloom Revision ChangesPath 1.13 +15 -15apache-2.0/src/lib/apr/test/ab_apr.c Index: ab_apr.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/test/ab_apr.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- ab_apr.c 1999/12/03 16:12:25 1.12 +++ ab_apr.c 1999/12/17 12:32:13 1.13 @@ -1,4 +1,4 @@ -/* + /* * Copyright (c) 1998-1999 The Apache Group. All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -146,8 +146,8 @@ #define ap_max(a,b) ((a)>(b))?(a):(b) /* - GLOBALS */ -API_VAR_IMPORT char *optarg;/* argument associated with option */ -API_VAR_IMPORT int optind; +API_VAR_IMPORT char *ap_optarg;/* argument associated with option */ +API_VAR_IMPORT int ap_optind; int verbosity = 0; /* no verbosity by default */ int posting = 0; /* GET by default */ @@ -900,11 +900,11 @@ ap_make_time(&start, cntxt); ap_make_time(&endtime, cntxt); -optind = 1; +ap_optind = 1; while (ap_getopt(cntxt, argc, argv, "n:c:t:T:p:v:kVhwx:y:z:", &c) == APR_SUCCESS) { switch (c) { case 'n': -requests = atoi(optarg); +requests = atoi(ap_optarg); if (!requests) { err("Invalid number of requests\n"); } @@ -913,10 +913,10 @@ keepalive = 1; break; case 'c': -concurrency = atoi(optarg); +concurrency = atoi(ap_optarg); break; case 'p': -if (0 == (r = open_postfile(optarg))) { +if (0 == (r = open_postfile(ap_optarg))) { posting = 1; } else if (postdata) { @@ -924,14 +924,14 @@ } break; case 'v': -verbosity = atoi(optarg); +verbosity = atoi(ap_optarg); break; case 't': -tlimit = atoi(optarg); +tlimit = atoi(ap_optarg); requests = MAX_REQUESTS; /* need to size data array on something */ break; case 'T': -strcpy(content_type, optarg); +strcpy(content_type, ap_optarg); break; case 'V': copyright(); @@ -943,15 +943,15 @@ /* if any of the following three are used, turn on html output automatically */ case 'x': use_html = 1; -tablestring = optarg; +tablestring = ap_optarg; break; case 'y': use_html = 1; -trstring = optarg; +trstring = ap_optarg; break; case 'z': use_html = 1; -tdstring = optarg; +tdstring = ap_optarg; break; case 'h': usage(argv[0]); @@ -962,12 +962,12 @@ break; } } -if (optind != argc - 1) { +if (ap_optind != argc - 1) { fprintf(stderr, "%s: wrong number of arguments\n", argv[0]); usage(argv[0]); } -if (parse_url(argv[optind++])) { +if (parse_url(argv[ap_optind++])) { fprintf(stderr, "%s: invalid URL\n", argv[0]); usage(argv[0]); } 1.7 +1 -0 apache-2.0/src/lib/apr/test/testproc.c Index: testproc.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/test/testproc.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- testproc.c1999/12/03 15:18:36 1.6 +++ testproc.c1999/12/17 12:32:14 1.7 @@ -168,6 +168,7 @@ } else fprintf(stderr, "Read failed.\n"); +Sleep(1000); fprintf(stdout, "Removing directory..."); if (ap_remove_dir("proctest", context) != APR_SUCCESS) { fprintf(stderr, "Could not remove directory.\n"); 1.9 +1 -0 apache-2.0/src/lib/apr/include/apr_win.h Index: apr_win.h =
cvs commit: apache-2.0/src/lib/apr/network_io/win32 sockets.c
manoj 99/11/02 13:49:28 Modified:src/lib/apr/network_io/beos sockets.c src/lib/apr/network_io/unix sockets.c src/lib/apr/network_io/win32 sockets.c Log: Another APR socket bug. We weren't properly setting local_addr. This also makes vhosts work again. My previous APR socket commit made restarts work again, BTW. Revision ChangesPath 1.15 +2 -0 apache-2.0/src/lib/apr/network_io/beos/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/sockets.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -u -r1.14 -r1.15 --- sockets.c 1999/11/02 21:21:51 1.14 +++ sockets.c 1999/11/02 21:49:25 1.15 @@ -148,6 +148,8 @@ (*new)->cntxt = connection_context; (*new)->local_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, sizeof(struct sockaddr_in)); +memcpy((*new)->local_addr, sock->local_addr, sizeof(struct sockaddr_in)); + (*new)->remote_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, sizeof(struct sockaddr_in)); (*new)->addr_len = sizeof(struct sockaddr_in); 1.23 +2 -0 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.22 retrieving revision 1.23 diff -u -d -u -r1.22 -r1.23 --- sockets.c 1999/11/02 21:21:53 1.22 +++ sockets.c 1999/11/02 21:49:26 1.23 @@ -202,6 +202,8 @@ (*new)->cntxt = connection_context; (*new)->local_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, sizeof(struct sockaddr_in)); +memcpy((*new)->local_addr, sock->local_addr, sizeof(struct sockaddr_in)); + (*new)->remote_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, sizeof(struct sockaddr_in)); (*new)->addr_len = sizeof(struct sockaddr_in); 1.15 +2 -0 apache-2.0/src/lib/apr/network_io/win32/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/sockets.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -u -r1.14 -r1.15 --- sockets.c 1999/11/02 21:21:54 1.14 +++ sockets.c 1999/11/02 21:49:27 1.15 @@ -165,6 +165,8 @@ (*new)->cntxt = connection_context; (*new)->local_addr = (struct sockaddr_in *)ap_palloc((*new)->cntxt, sizeof(struct sockaddr_in)); +memcpy((*new)->local_addr, sock->local_addr, sizeof(struct sockaddr_in)); + (*new)->addr_len = sizeof(struct sockaddr_in); (*new)->sock = accept(sock->sock, (struct sockaddr *)(*new)->local_addr,
cvs commit: apache-2.0/src/lib/apr/network_io/win32 sockets.c
manoj 99/11/02 13:21:55 Modified:src/lib/apr/network_io/beos sockets.c src/lib/apr/network_io/os2 sockets.c src/lib/apr/network_io/unix sockets.c src/lib/apr/network_io/win32 sockets.c Log: Fix an APR socket bug. ap_bind would always bind to INADDR_ANY, no matter what. Revision ChangesPath 1.14 +0 -1 apache-2.0/src/lib/apr/network_io/beos/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/sockets.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -u -r1.13 -r1.14 --- sockets.c 1999/11/02 14:16:10 1.13 +++ sockets.c 1999/11/02 21:21:51 1.14 @@ -126,7 +126,6 @@ ap_status_t ap_bind(struct socket_t *sock) { -sock->local_addr->sin_addr.s_addr = INADDR_ANY; if (bind(sock->socketdes, (struct sockaddr *)sock->local_addr, sock->addr_len) == -1) return errno; else 1.9 +0 -1 apache-2.0/src/lib/apr/network_io/os2/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/os2/sockets.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -u -r1.8 -r1.9 --- sockets.c 1999/11/01 00:49:39 1.8 +++ sockets.c 1999/11/02 21:21:52 1.9 @@ -133,7 +133,6 @@ ap_status_t ap_bind(struct socket_t *sock) { -sock->local_addr->sin_addr.s_addr = INADDR_ANY; if (bind(sock->socketdes, (struct sockaddr *)sock->local_addr, sock->addr_len) == -1) return os2errno(sock_errno()); else 1.22 +0 -1 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.21 retrieving revision 1.22 diff -u -d -u -r1.21 -r1.22 --- sockets.c 1999/11/01 00:49:41 1.21 +++ sockets.c 1999/11/02 21:21:53 1.22 @@ -163,7 +163,6 @@ */ ap_status_t ap_bind(struct socket_t *sock) { -sock->local_addr->sin_addr.s_addr = INADDR_ANY; if (bind(sock->socketdes, (struct sockaddr *)sock->local_addr, sock->addr_len) == -1) return errno; else 1.14 +0 -1 apache-2.0/src/lib/apr/network_io/win32/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/sockets.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -u -r1.13 -r1.14 --- sockets.c 1999/11/01 00:49:44 1.13 +++ sockets.c 1999/11/02 21:21:54 1.14 @@ -142,7 +142,6 @@ ap_status_t ap_bind(struct socket_t *sock) { -sock->local_addr->sin_addr.s_addr = INADDR_ANY; if (bind(sock->sock, (struct sockaddr *)sock->local_addr, sock->addr_len) == -1) { return errno; }
cvs commit: apache-2.0/src/lib/apr/network_io/win32 sockets.c
manoj 99/10/31 16:49:45 Modified:src/lib/apr/network_io/beos sockets.c src/lib/apr/network_io/os2 sockets.c src/lib/apr/network_io/unix sockets.c src/lib/apr/network_io/win32 sockets.c Log: We were passing NULL to ap_register_cleanup, breaking mod_cgi. Replace them all with ap_null_cleanup. Revision ChangesPath 1.11 +2 -2 apache-2.0/src/lib/apr/network_io/beos/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/beos/sockets.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -u -r1.10 -r1.11 --- sockets.c 1999/10/24 13:08:24 1.10 +++ sockets.c 1999/11/01 00:49:35 1.11 @@ -103,7 +103,7 @@ (*new)->timeout = -1; ap_register_cleanup((*new)->cntxt, (void *)(*new), -socket_cleanup, NULL); +socket_cleanup, ap_null_cleanup); return APR_SUCCESS; } @@ -162,7 +162,7 @@ } ap_register_cleanup((*new)->cntxt, (void *)new, -socket_cleanup, NULL); +socket_cleanup, ap_null_cleanup); return APR_SUCCESS; } 1.8 +2 -2 apache-2.0/src/lib/apr/network_io/os2/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/os2/sockets.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -u -r1.7 -r1.8 --- sockets.c 1999/10/29 14:21:01 1.7 +++ sockets.c 1999/11/01 00:49:39 1.8 @@ -108,7 +108,7 @@ } (*new)->timeout = -1; ap_register_cleanup((*new)->cntxt, (void *)(*new), -socket_cleanup, NULL); +socket_cleanup, ap_null_cleanup); return APR_SUCCESS; } @@ -167,7 +167,7 @@ } ap_register_cleanup((*new)->cntxt, (void *)(*new), -socket_cleanup, NULL); +socket_cleanup, ap_null_cleanup); return APR_SUCCESS; } 1.21 +2 -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.20 retrieving revision 1.21 diff -u -d -u -r1.20 -r1.21 --- sockets.c 1999/10/24 13:08:25 1.20 +++ sockets.c 1999/11/01 00:49:41 1.21 @@ -118,7 +118,7 @@ } (*new)->timeout = -1; ap_register_cleanup((*new)->cntxt, (void *)(*new), -socket_cleanup, NULL); +socket_cleanup, ap_null_cleanup); return APR_SUCCESS; } @@ -218,7 +218,7 @@ } ap_register_cleanup((*new)->cntxt, (void *)(*new), -socket_cleanup, NULL); +socket_cleanup, ap_null_cleanup); return APR_SUCCESS; } 1.13 +2 -2 apache-2.0/src/lib/apr/network_io/win32/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/sockets.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -u -r1.12 -r1.13 --- sockets.c 1999/10/25 23:55:28 1.12 +++ sockets.c 1999/11/01 00:49:44 1.13 @@ -104,7 +104,7 @@ return APR_EEXIST; } ap_register_cleanup((*new)->cntxt, (void *)(*new), -socket_cleanup, NULL); +socket_cleanup, ap_null_cleanup); return APR_SUCCESS; } @@ -176,7 +176,7 @@ } ap_register_cleanup((*new)->cntxt, (void *)(*new), -socket_cleanup, NULL); +socket_cleanup, ap_null_cleanup); return APR_SUCCESS; }
cvs commit: apache-2.0/src/lib/apr/network_io/win32 sockets.c poll.c
stoddard99/10/04 15:44:21 Modified:src/lib/apr/network_io/win32 sockets.c poll.c Log: A few more argument changes missed by Ryan's patch Revision ChangesPath 1.6 +3 -3 apache-2.0/src/lib/apr/network_io/win32/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/sockets.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- sockets.c 1999/10/04 17:55:48 1.5 +++ sockets.c 1999/10/04 22:44:18 1.6 @@ -267,7 +267,7 @@ ap_status_t ap_get_socketdata(struct socket_t *socket, char *key, void *data) { if (socket != NULL) { -return ap_get_userdata(socket->cntxt, key, &data); +return ap_get_userdata(&data, socket->cntxt, key); } else { data = NULL; @@ -296,8 +296,8 @@ return APR_SUCCESS; } -ap_status_t ap_put_os_sock(ap_context_t *cont, struct socket_t **sock, -ap_os_sock_t *thesock) +ap_status_t ap_put_os_sock(struct socket_t **sock, ap_os_sock_t *thesock, + ap_context_t *cont) { if (cont == NULL) { return APR_ENOCONT; 1.4 +1 -1 apache-2.0/src/lib/apr/network_io/win32/poll.c Index: poll.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/poll.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- poll.c1999/10/04 16:37:16 1.3 +++ poll.c1999/10/04 22:44:19 1.4 @@ -199,7 +199,7 @@ ap_status_t ap_get_polldata(struct pollfd_t *pollfd, char *key, void *data) { if (pollfd != NULL) { -return ap_get_userdata(pollfd->cntxt, key, &data); +return ap_get_userdata(&data, pollfd->cntxt, key); } else { data = NULL;
cvs commit: apache-2.0/src/lib/apr/network_io/win32 sockets.c
stoddard99/10/04 10:55:49 Modified:src/lib/apr/network_io/win32 sockets.c Log: Fix really silly bug. Revision ChangesPath 1.5 +1 -1 apache-2.0/src/lib/apr/network_io/win32/sockets.c Index: sockets.c === RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/win32/sockets.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- sockets.c 1999/10/04 16:37:16 1.4 +++ sockets.c 1999/10/04 17:55:48 1.5 @@ -292,7 +292,7 @@ if (sock == NULL) { return APR_ENOSOCKET; } -thesock = &(sock->sock); +*thesock = sock->sock; return APR_SUCCESS; }