rbb         99/04/30 11:38:59

  Modified:    apr/file_io/unix Makefile fileio.h open.c
               apr/network_io/unix Makefile poll.c sendrecv.c sockets.c
                        sockopt.c
               apr/test Makefile client.c server.c testfile.c testsock.c
               apr/threadproc/unix proc.c
               docs     fileio.txt networkio.txt
               include  apr_file_io.h apr_network_io.h apr_thread_proc.h
  Log:
  Changes to use context's in network functions, and process functions.  Also
  updated the test programs.
  
  Revision  Changes    Path
  1.8       +1 -1      apache-apr/apr/file_io/unix/Makefile
  
  Index: Makefile
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/file_io/unix/Makefile,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Makefile  1999/04/20 20:46:40     1.7
  +++ Makefile  1999/04/30 18:38:50     1.8
  @@ -17,7 +17,7 @@
   EXTRA_DEPS=
   OSDIR=
   INCDIR=../../../include
  -INCLUDES0=-I . -I $(INCDIR)
  +INCLUDES0=-I ../../include -I . -I $(INCDIR)
   SHELL=/bin/sh
   CC=gcc
   CPP=gcc -E
  
  
  
  1.3       +1 -1      apache-apr/apr/file_io/unix/fileio.h
  
  Index: fileio.h
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/file_io/unix/fileio.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- fileio.h  1999/04/30 15:19:51     1.2
  +++ fileio.h  1999/04/30 18:38:50     1.3
  @@ -99,7 +99,7 @@
   typedef struct dirent     dirent_t;
   typedef struct iovec      iovec_t;
   
  -apr_status_t file_cleanup(struct file_t *);
  +apr_status_t file_cleanup(void *);
   
   #endif  /* ! FILE_IO_H */
   
  
  
  
  1.15      +3 -1      apache-apr/apr/file_io/unix/open.c
  
  Index: open.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/file_io/unix/open.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- open.c    1999/04/30 15:19:51     1.14
  +++ open.c    1999/04/30 18:38:51     1.15
  @@ -55,11 +55,13 @@
   
   #include "apr_file_io.h"
   #include "apr_general.h"
  +#include "apr_lib.h"
   #include <errno.h>
   #include <string.h>
   
  -apr_status_t file_cleanup(apr_file_t *file)
  +apr_status_t file_cleanup(void *thefile)
   {
  +    apr_file_t *file = thefile;
       if (close(file->filedes) == 0) {
           file->filedes = -1;
           return APR_SUCCESS;
  
  
  
  1.6       +1 -1      apache-apr/apr/network_io/unix/Makefile
  
  Index: Makefile
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/network_io/unix/Makefile,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- Makefile  1999/04/28 16:00:05     1.5
  +++ Makefile  1999/04/30 18:38:52     1.6
  @@ -17,7 +17,7 @@
   EXTRA_DEPS=
   OSDIR=
   INCDIR=../../../include
  -INCLUDES0=-I . -I $(INCDIR)
  +INCLUDES0=-I ../../include -I . -I $(INCDIR)
   SHELL=/bin/sh
   CC=gcc
   CPP=gcc -E
  
  
  
  1.2       +8 -5      apache-apr/apr/network_io/unix/poll.c
  
  Index: poll.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/network_io/unix/poll.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- poll.c    1999/04/28 16:00:06     1.1
  +++ poll.c    1999/04/30 18:38:52     1.2
  @@ -59,21 +59,24 @@
   #include <errno.h>
   #include <sys/poll.h>
   
  -apr_int32_t apr_poll(apr_pollfd_t *aprset, apr_int32_t nsds, apr_int32_t 
timeout)
  +apr_int32_t apr_poll(apr_context_t *cont, apr_pollfd_t *aprset, apr_int32_t 
nsds, apr_int32_t timeout)
   {
       int i;
       struct pollfd *pollset;
  -    pollset = (struct pollfd *)malloc(sizeof(struct pollfd) * nsds);
  +    int rv;
   
  +    pollset = (struct pollfd *)apr_palloc(cont->pool, sizeof(struct pollfd) 
* nsds);
  +
       for (i = 0; i < nsds; i++) {
           pollset[i].fd = aprset[i].sock->socketdes;
           pollset[i].events = aprset[i].events;
       }
   
  -    poll(pollset, nsds, timeout);
  +    rv = poll(pollset, nsds, timeout);
       
       for (i = 0; i < nsds; i++) {
           pollset[i].revents = aprset[i].revents;
       }
  -
  -} 
  +    return rv;
  +}
  + 
  
  
  
  1.5       +2 -2      apache-apr/apr/network_io/unix/sendrecv.c
  
  Index: sendrecv.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/network_io/unix/sendrecv.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- sendrecv.c        1999/04/19 13:31:39     1.4
  +++ sendrecv.c        1999/04/30 18:38:52     1.5
  @@ -60,7 +60,7 @@
   #include "apr_network_io.h"
   #include <sys/time.h>
   
  -apr_ssize_t apr_send(apr_socket_t *sock, const char *buf, int len, time_t 
sec)
  +apr_ssize_t apr_send(apr_context_t *cont, apr_socket_t *sock, const char 
*buf, int len, time_t sec)
   {
       ssize_t rv;
       
  @@ -94,7 +94,7 @@
       return (apr_ssize_t) rv;
   }
   
  -apr_ssize_t apr_recv(apr_socket_t *sock, char *buf, int len, time_t sec)
  +apr_ssize_t apr_recv(apr_context_t *cont, apr_socket_t *sock, char *buf, int 
len, time_t sec)
   {
       ssize_t rv;
       
  
  
  
  1.12      +30 -30    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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- sockets.c 1999/04/28 14:30:23     1.11
  +++ sockets.c 1999/04/30 18:38:52     1.12
  @@ -55,6 +55,7 @@
   
   #include "apr_network_io.h"
   #include "apr_general.h"
  +#include "apr_lib.h"
   #include <errno.h>
   #include <string.h>
   #include <sys/socket.h>
  @@ -62,29 +63,40 @@
   #include <netinet/in.h>
   #include <netdb.h>
   
  -apr_socket_t *apr_create_tcp_socket(void)
  +apr_status_t socket_cleanup(void *sock)
   {
  -    apr_socket_t *thesocket = (apr_socket_t *)malloc(sizeof(apr_socket_t));
  +    apr_socket_t *thesocket = sock;
  +    if (close(thesocket->socketdes) == 0) {
  +        thesocket->socketdes = -1;
  +        return APR_SUCCESS;
  +    }
  +    else {
  +        return APR_FAILURE;
  +    }
  +}
  +
  +apr_socket_t *apr_create_tcp_socket(apr_context_t *cont)
  +{
  +    apr_socket_t *thesocket = (apr_socket_t *)apr_palloc(cont->pool, 
sizeof(apr_socket_t));
       
       thesocket->socketdes = socket(AF_INET ,SOCK_STREAM, IPPROTO_TCP);
       thesocket->remote_hostname = NULL;
   
  -    thesocket->addr = (struct sockaddr_in *)malloc(sizeof(struct 
sockaddr_in));
  +    thesocket->addr = (struct sockaddr_in *)apr_palloc(cont->pool, 
sizeof(struct sockaddr_in));
       thesocket->addr->sin_family = AF_INET;
   
       thesocket->addr_len = sizeof(*thesocket->addr);
       
       if (thesocket->socketdes < 0) {
  -        free(thesocket->addr);
  -        free(thesocket);
           return NULL;
       }
       else {
  +        apr_register_cleanup(cont->pool, (void *)thesocket, socket_cleanup, 
NULL);
           return thesocket;
       }
   } 
   
  -apr_status_t apr_shutdown(apr_socket_t *thesocket, apr_shutdown_how_e how)
  +apr_status_t apr_shutdown(apr_context_t *cont, apr_socket_t *thesocket, 
apr_shutdown_how_e how)
   {
       if (shutdown(thesocket->socketdes, how) == 0) {
           return APR_SUCCESS;
  @@ -94,26 +106,19 @@
       }
   }
   
  -apr_status_t apr_close_socket(apr_socket_t *thesocket)
  +apr_status_t apr_close_socket(apr_context_t *cont, apr_socket_t *thesocket)
   {
  -    if (close(thesocket->socketdes) == 0) {
  -        free(thesocket->addr);
  -        free(thesocket->remote_hostname);
  -        free(thesocket);
  -        return APR_SUCCESS;
  -    }
  -    else {
  -        return APR_FAILURE;
  -    }
  +    socket_cleanup(thesocket);
  +    apr_kill_cleanup(cont->pool, thesocket, socket_cleanup);
   }
   
  -apr_status_t apr_setport(apr_socket_t *sock, apr_uint32_t port)
  +apr_status_t apr_setport(apr_context_t *cont, 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)
  +apr_status_t apr_bind(apr_context_t *cont, apr_socket_t *sock)
   {
       sock->addr->sin_addr.s_addr = INADDR_ANY;
       if (bind(sock->socketdes, (struct sockaddr *)sock->addr, sock->addr_len) 
== -1)
  @@ -122,7 +127,7 @@
           return APR_SUCCESS;
   }
   
  -apr_status_t apr_listen(apr_socket_t *sock, apr_int32_t backlog)
  +apr_status_t apr_listen(apr_context_t *cont, apr_socket_t *sock, apr_int32_t 
backlog)
   {
       if (listen(sock->socketdes, backlog) == -1)
           return APR_FAILURE;
  @@ -130,39 +135,36 @@
           return APR_SUCCESS;
   }
   
  -apr_socket_t *apr_accept(const apr_socket_t *sock)
  +apr_socket_t *apr_accept(apr_context_t *cont, const apr_socket_t *sock)
   {
  -    apr_socket_t *new = (apr_socket_t *)malloc(sizeof(apr_socket_t));
  +    apr_socket_t *new = (apr_socket_t *)apr_palloc(cont->pool, 
sizeof(apr_socket_t));
       struct hostent *hptr;
   
  -    new->addr = (struct sockaddr_in *)malloc(sizeof(struct sockaddr_in));
  +    new->addr = (struct sockaddr_in *)apr_palloc(cont->pool, sizeof(struct 
sockaddr_in));
       new->addr_len = sizeof(struct sockaddr_in);
   
       new->socketdes = accept(sock->socketdes, (struct sockaddr *)new->addr, 
&new->addr_len);
   
       if (new->socketdes < 0) {
  -        free(new->addr);
  -        free(new);
           return NULL;
       }
       
  -hptr = gethostbyaddr((char *)&new->addr->sin_addr, sizeof(struct in_addr), 
AF_INET);
  +    hptr = gethostbyaddr((char *)&new->addr->sin_addr, sizeof(struct 
in_addr), AF_INET);
       if (hptr != NULL) {
           new->remote_hostname = strdup(hptr->h_name);
       }
       
  +    apr_register_cleanup(cont->pool, (void *)new, socket_cleanup, NULL);
       return new;
   }
   
  -apr_status_t apr_connect(apr_socket_t *sock, char *hostname)
  +apr_status_t apr_connect(apr_context_t *cont, apr_socket_t *sock, char 
*hostname)
   {
       struct hostent *hp;
   
       hp = gethostbyname(hostname);
   
       if ((sock->socketdes < 0) || (!hp) || (!sock->addr)) {
  -        free(sock->addr); 
  -        free(sock);
           return APR_FAILURE;
       }
       
  @@ -174,8 +176,6 @@
   
       if ((connect(sock->socketdes, sock->addr, sock->addr_len) < 0) &&
           (errno != EINPROGRESS)) {
  -        free(sock->addr);
  -        free(sock);
           return APR_FAILURE;
       }
       else {
  
  
  
  1.3       +3 -3      apache-apr/apr/network_io/unix/sockopt.c
  
  Index: sockopt.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/network_io/unix/sockopt.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- sockopt.c 1999/04/15 20:08:17     1.2
  +++ sockopt.c 1999/04/30 18:38:52     1.3
  @@ -100,7 +100,7 @@
   }
   
   
  -apr_status_t apr_setsocketopt(apr_socket_t *sock, apr_int32_t opt, 
apr_int32_t on)
  +apr_status_t apr_setsocketopt(apr_context_t *cont, apr_socket_t *sock, 
apr_int32_t opt, apr_int32_t on)
   {
       int one;
       struct linger li;
  @@ -145,7 +145,7 @@
       return APR_SUCCESS;
   }         
   
  -apr_status_t apr_gethostname(char *buf, int len)
  +apr_status_t apr_gethostname(apr_context_t *cont, char *buf, int len)
   {
       if (gethostname(buf, len) == -1)
           return APR_FAILURE;
  @@ -153,7 +153,7 @@
           return APR_SUCCESS;
   }
   
  -char *apr_get_remote_hostname(apr_socket_t *sock)
  +char *apr_get_remote_hostname(apr_context_t *cont, apr_socket_t *sock)
   {
       return sock->remote_hostname;
   }
  
  
  
  1.9       +1 -1      apache-apr/apr/test/Makefile
  
  Index: Makefile
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/test/Makefile,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- Makefile  1999/04/30 15:19:58     1.8
  +++ Makefile  1999/04/30 18:38:53     1.9
  @@ -12,7 +12,7 @@
   SRCDIR=..
   EXTRA_CFLAGS=-g 
   EXTRA_LDFLAGS=
  -EXTRA_LIBS=-L../misc -laprmisc -L../lib -lapr -L../misc -laprmisc 
-L../threadproc -lthreadproc -L../file_io -lfile -L../network_io -lnetwork 
  +EXTRA_LIBS=-L../misc -laprmisc -L../lib -lapr -L../threadproc -lthreadproc 
-L../file_io -lfile -L../network_io -lnetwork 
   EXTRA_INCLUDES=
   EXTRA_DEPS=
   OSDIR=
  
  
  
  1.3       +18 -15    apache-apr/apr/test/client.c
  
  Index: client.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/test/client.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- client.c  1999/04/28 16:00:08     1.2
  +++ client.c  1999/04/30 18:38:54     1.3
  @@ -66,74 +66,77 @@
   
   int main(int argc, char *argv[])
   {
  +    apr_context_t *context;
       apr_socket_t *sock;
       apr_int32_t rv;
       struct timeval timeout;
       char datasend[STRLEN] = "Send data test";
       char datarecv[STRLEN];
   
  +    context = apr_initialize(NULL);
  +
       fprintf(stdout, "\tClient:  Creating new socket.......");
  -    if ((sock = apr_create_tcp_socket()) == NULL) {
  +    if ((sock = apr_create_tcp_socket(context)) == NULL) {
           fprintf(stderr, "Couldn't create socket\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tClient:  Setting socket option NONBLOCK.......");
  -    if (apr_setsocketopt(sock, APR_SO_NONBLOCK, 1) == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_setsocketopt(context, sock, APR_SO_NONBLOCK, 1) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Couldn't set socket option\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tClient:  Setting port for socket.......");
  -    if (apr_setport(sock, 8021) == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_setport(context, sock, 8021) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Couldn't set the port correctly\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");           
   
       fprintf(stdout, "\tClient:  Connecting to socket.......");
  -    if (apr_connect(sock, "localhost") == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_connect(context, sock, "localhost") == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Could not connect\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tClient:  Trying to send data over socket.......");
  -    if (apr_send(sock, datasend, STRLEN, 5) != STRLEN) {
  -        apr_close_socket(sock);
  +    if (apr_send(context, sock, datasend, STRLEN, 5) != STRLEN) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Problem sending data\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
       
       fprintf(stdout, "\tClient:  Trying to receive data over socket.......");
  -    if (apr_recv(sock, datarecv, STRLEN, 5) != STRLEN) {
  -        apr_close_socket(sock);
  +    if (apr_recv(context, sock, datarecv, STRLEN, 5) != STRLEN) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Problem receiving data\n");
           exit(-1);
       }
       if (strcmp(datarecv, "Recv data test")) {
  -        apr_close_socket(sock);
  +        apr_close_socket(context, sock);
           fprintf(stderr, "I did not receive the correct data %s\n", datarecv);
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tClient:  Shutting down socket.......");
  -    if (apr_shutdown(sock, APR_SHUTDOWN_WRITE) == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_shutdown(context, sock, APR_SHUTDOWN_WRITE) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Could not shutdown socket\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tClient:  Closing down socket.......");
  -    if (apr_close_socket(sock) == APR_FAILURE) {
  +    if (apr_close_socket(context, sock) == APR_FAILURE) {
           fprintf(stderr, "Could not shutdown socket\n");
           exit(-1);
       }
  
  
  
  1.3       +32 -29    apache-apr/apr/test/server.c
  
  Index: server.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/test/server.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- server.c  1999/04/28 16:00:08     1.2
  +++ server.c  1999/04/30 18:38:54     1.3
  @@ -66,6 +66,7 @@
   
   int main(int argc, char *argv[])
   {
  +    apr_context_t *context;
       apr_socket_t *sock;
       apr_socket_t *sock2;
       apr_int32_t rv;
  @@ -73,40 +74,42 @@
       char datasend[STRLEN];
       char datarecv[STRLEN] = "Recv data test";
   
  +    context = apr_initialize(NULL);
  +
       fprintf(stdout, "\tServer:  Creating new socket.......");
  -    if ((sock = apr_create_tcp_socket()) == NULL) {
  +    if ((sock = apr_create_tcp_socket(context)) == NULL) {
           fprintf(stderr, "Couldn't create socket\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tServer:  Setting socket option NONBLOCK.......");
  -    if (apr_setsocketopt(sock, APR_SO_NONBLOCK, 1) == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_setsocketopt(context, sock, APR_SO_NONBLOCK, 1) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Couldn't set socket option\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tServer:  Setting port for socket.......");
  -    if (apr_setport(sock, 8021) == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_setport(context, sock, 8021) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Couldn't set the port correctly\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tServer:  Binding socket to port.......");
  -    if (apr_bind(sock) == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_bind(context, sock) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Could not bind  %d\n", errno);
           exit(-1);
       }
       fprintf(stdout, "OK\n");
       
       fprintf(stdout, "\tServer:  Listening to socket.......");
  -    if (apr_listen(sock, 8021) == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_listen(context, sock, 8021) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Could not listen\n");
           exit(-1);
       }
  @@ -117,71 +120,71 @@
       sdset.events = APR_POLLIN; 
       fprintf(stdout, "OK\n");
       
  -    fprintf(stdout, "\tServer:  Beginning to select on socket.......");
  -    rv = apr_poll(&sdset, 1, 0); 
  +    fprintf(stdout, "\tServer:  Beginning to poll for socket.......");
  +    rv = apr_poll(context, &sdset, 1, -1); 
       if (rv == -1) {
  -        apr_close_socket(sock);
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Select caused an error\n");
           exit(-1);
       }
       else if (rv == 0) {
  -        apr_close_socket(sock);
  +        apr_close_socket(context, sock);
           fprintf(stderr, "I should not return until rv == 1\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tServer:  Accepting a connection.......");
  -    if ((sock2 = apr_accept(sock)) == NULL) {
  -        apr_close_socket(sock);
  +    if ((sock2 = apr_accept(context, sock)) == NULL) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Could not accept connection.\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tServer:  Trying to recv data from socket.......");
  -    if (apr_recv(sock2, datasend, STRLEN, 5) != STRLEN) {
  -        apr_close_socket(sock);
  -        apr_close_socket(sock2);
  +    if (apr_recv(context, sock2, datasend, STRLEN, 5) != STRLEN) {
  +        apr_close_socket(context, sock);
  +        apr_close_socket(context, sock2);
           fprintf(stderr, "Problem recving data\n");
           exit(-1);
       }
       if (strcmp(datasend, "Send data test")) {
  -        apr_close_socket(sock);
  -        apr_close_socket(sock2);
  +        apr_close_socket(context, sock);
  +        apr_close_socket(context, sock2);
           fprintf(stderr, "I did not receive the correct data %s\n", datarecv);
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tServer:  Sending data over socket.......");
  -    if (apr_send(sock2, datarecv, STRLEN, 5) != STRLEN) {
  -        apr_close_socket(sock);
  -        apr_close_socket(sock2);
  +    if (apr_send(context, sock2, datarecv, STRLEN, 5) != STRLEN) {
  +        apr_close_socket(context, sock);
  +        apr_close_socket(context, sock2);
           fprintf(stderr, "Problem sending data\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
       
       fprintf(stdout, "\tServer:  Shutting down accepte socket.......");
  -    if (apr_shutdown(sock2, APR_SHUTDOWN_READ) == APR_FAILURE) {
  -        apr_close_socket(sock);
  -        apr_close_socket(sock2);
  +    if (apr_shutdown(context, sock2, APR_SHUTDOWN_READ) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
  +        apr_close_socket(context, sock2);
           fprintf(stderr, "Problem shutting down\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
   
       fprintf(stdout, "\tServer:  closing duplicate socket.......");
  -    if (apr_close_socket(sock2) == APR_FAILURE) {
  -        apr_close_socket(sock);
  +    if (apr_close_socket(context, sock2) == APR_FAILURE) {
  +        apr_close_socket(context, sock);
           fprintf(stderr, "Problem closing down\n");
           exit(-1);
       }
       fprintf(stdout, "OK\n");
       
       fprintf(stdout, "\tServer:  closing original socket.......");
  -    if (apr_close_socket(sock) == APR_FAILURE) {
  +    if (apr_close_socket(context, sock) == APR_FAILURE) {
           fprintf(stderr, "Problem closing down\n");
           exit(-1);
       }
  
  
  
  1.13      +1 -0      apache-apr/apr/test/testfile.c
  
  Index: testfile.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/test/testfile.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- testfile.c        1999/04/30 15:19:58     1.12
  +++ testfile.c        1999/04/30 18:38:54     1.13
  @@ -175,6 +175,7 @@
       }
       
       testdirs(context); 
  +    test_filedel(context);
    
       return 1;
   }
  
  
  
  1.3       +12 -8     apache-apr/apr/test/testsock.c
  
  Index: testsock.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/test/testsock.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- testsock.c        1999/04/28 16:00:08     1.2
  +++ testsock.c        1999/04/30 18:38:54     1.3
  @@ -64,6 +64,8 @@
   
   int main(int argc, char *argv[])
   {
  +    apr_context_t *context;
  +
       apr_procattr_t *attr1;
       apr_procattr_t *attr2;
       apr_proc_t *proc1;
  @@ -71,14 +73,16 @@
       apr_status_t s1;
       apr_status_t s2;
   
  +    context = apr_initialize(NULL);
  +
       fprintf(stdout, "This test relies on the process test working.  
Please\n");
       fprintf(stdout, "run that test first, and only run this test when it\n");
       fprintf(stdout, "completes successfully.  Alternitevly, you could 
run\n");
       fprintf(stdout, "server and client by yourself.\n");
   
       fprintf(stdout, "Creating children to run network tests.......\n");
  -    attr1 = apr_createprocattr_init();
  -    attr2 = apr_createprocattr_init();
  +    attr1 = apr_createprocattr_init(context);
  +    attr2 = apr_createprocattr_init(context);
   
   
       if (attr1 == NULL || attr2 == NULL) {
  @@ -86,25 +90,25 @@
           exit(-1);
       }
      
  -    proc1 = apr_create_process("server", NULL, NULL, attr1);
  -    proc2 = apr_create_process("client", NULL, NULL, attr2);
  +    proc1 = apr_create_process(context, "server", NULL, NULL, attr1);
  +    proc2 = apr_create_process(context, "client", NULL, NULL, attr2);
   
       if (proc1 == NULL || proc2 == NULL) {
           fprintf(stderr, "Problem spawning new process\n");
           exit(-1);
       }
   
  -    while ((s1 = apr_wait_proc(proc1, APR_NOWAIT)) == APR_FAILURE &&
  -           (s2 = apr_wait_proc(proc2, APR_NOWAIT)) == APR_FAILURE)
  +    while ((s1 = apr_wait_proc(context, proc1, APR_NOWAIT)) == APR_FAILURE &&
  +           (s2 = apr_wait_proc(context, proc2, APR_NOWAIT)) == APR_FAILURE)
           continue;
   
       if (s1 == APR_SUCCESS) {
           kill(proc2->pid, SIGTERM);
  -        apr_wait_proc(proc2, APR_WAIT);
  +        apr_wait_proc(context, proc2, APR_WAIT);
       }
       else {
           kill(proc1->pid, SIGTERM);
  -        apr_wait_proc(proc1, APR_WAIT);
  +        apr_wait_proc(context, proc1, APR_WAIT);
       }
       fprintf(stdout, "Network test completed.\n");   
   }
  
  
  
  1.5       +50 -30    apache-apr/apr/threadproc/unix/proc.c
  
  Index: proc.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/threadproc/unix/proc.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- proc.c    1999/04/26 18:16:39     1.4
  +++ proc.c    1999/04/30 18:38:56     1.5
  @@ -62,9 +62,9 @@
   #include <string.h>
   #include <sys/wait.h>
   
  -apr_procattr_t *apr_createprocattr_init(void)
  +apr_procattr_t *apr_createprocattr_init(apr_context_t *cont)
   {
  -    apr_procattr_t *new = (apr_procattr_t *)malloc(sizeof(apr_procattr_t));
  +    apr_procattr_t *new = (apr_procattr_t *)apr_palloc(cont->pool, 
sizeof(apr_procattr_t));
   
       new->parent_in = NULL;
       new->child_in = NULL;
  @@ -77,43 +77,54 @@
       return new;
   }
   
  -apr_status_t apr_setprocattr_io(apr_procattr_t *attr, apr_int32_t in, 
  +apr_status_t apr_setprocattr_io(apr_context_t *cont, apr_procattr_t *attr, 
apr_int32_t in, 
                                    apr_int32_t out, apr_int32_t err)
   {
       if (in) {
  -        attr->parent_in = (apr_file_t *)malloc(sizeof(apr_file_t));
  -        attr->child_in = (apr_file_t *)malloc(sizeof(apr_file_t));
  -        if (apr_create_pipe(attr->child_in, attr->parent_in) == APR_FAILURE) 
{
  +        attr->parent_in = (apr_file_t *)apr_palloc(cont->pool, 
  +                                                   sizeof(apr_file_t));
  +        attr->child_in = (apr_file_t *)apr_palloc(cont->pool, 
  +                                                  sizeof(apr_file_t));
  +        if (apr_create_pipe(cont, attr->child_in, 
  +                            attr->parent_in) == APR_FAILURE) {
               return APR_FAILURE;
           }
       } 
       if (out) {
  -        attr->parent_out = (apr_file_t *)malloc(sizeof(apr_file_t));
  -        attr->child_out = (apr_file_t *)malloc(sizeof(apr_file_t));
  -        if (apr_create_pipe(attr->parent_out, attr->child_out) == 
APR_FAILURE) {
  +        attr->parent_out = (apr_file_t *)apr_palloc(cont->pool, 
  +                                                    sizeof(apr_file_t));
  +        attr->child_out = (apr_file_t *)apr_palloc(cont->pool, 
  +                                                   sizeof(apr_file_t));
  +        if (apr_create_pipe(cont, attr->parent_out, 
  +                            attr->child_out) == APR_FAILURE) {
               return APR_FAILURE;
           }
       } 
       if (err) {
  -        attr->parent_err = (apr_file_t *)malloc(sizeof(apr_file_t));
  -        attr->child_err = (apr_file_t *)malloc(sizeof(apr_file_t));
  -        if (apr_create_pipe(attr->parent_err, attr->child_err) == 
APR_FAILURE) {
  +        attr->parent_err = (apr_file_t *)apr_palloc(cont->pool, 
  +                                                    sizeof(apr_file_t));
  +        attr->child_err = (apr_file_t *)apr_palloc(cont->pool, 
  +                                                   sizeof(apr_file_t));
  +        if (apr_create_pipe(cont, attr->parent_err, 
  +                            attr->child_err) == APR_FAILURE) {
               return APR_FAILURE;
           }
       } 
   }
   
  -apr_status_t apr_setprocattr_dir(apr_procattr_t *attr, char *dir) 
  +apr_status_t apr_setprocattr_dir(apr_context_t *cont, apr_procattr_t *attr, 
  +                                 char *dir) 
   {
       attr->currdir = strdup(dir);
   }
   
  -apr_status_t apr_setprocattr_cmdtype(apr_procattr_t *attr, apr_cmdtype_e 
cmd) 
  +apr_status_t apr_setprocattr_cmdtype(apr_context_t *cont, apr_procattr_t 
*attr,
  +                                     apr_cmdtype_e cmd) 
   {
       attr->cmdtype = cmd;
   }
   
  -apr_int32_t apr_fork(apr_proc_t *proc)
  +apr_int32_t apr_fork(apr_context_t *cont, apr_proc_t *proc)
   {
       int pid;
   
  @@ -130,9 +141,11 @@
       return 1;
   }
   
  -apr_proc_t *apr_create_process(char *progname, char *const args[], char 
**env, apr_procattr_t *attr)
  +apr_proc_t *apr_create_process(apr_context_t *cont, char *progname, 
  +                               char *const args[], char **env, 
  +                               apr_procattr_t *attr)
   {
  -    apr_proc_t *new = (apr_proc_t *)malloc(sizeof(apr_proc_t));
  +    apr_proc_t *new = (apr_proc_t *)apr_palloc(cont->pool, 
sizeof(apr_proc_t));
       int i;
       char **newargs;
   
  @@ -142,19 +155,19 @@
       else if (new->pid == 0) { 
           /* child process */
           if (attr->child_in) {
  -            apr_close(attr->parent_in);
  +            apr_close(cont, attr->parent_in);
               dup2(attr->child_in->filedes, STDIN_FILENO);
  -            apr_close(attr->child_in);
  +            apr_close(cont, attr->child_in);
           }
           if (attr->child_out) {
  -            apr_close(attr->parent_out);
  +            apr_close(cont, attr->parent_out);
               dup2(attr->child_out->filedes, STDOUT_FILENO);
  -            apr_close(attr->child_out);
  +            apr_close(cont, attr->child_out);
           }
           if (attr->child_err) {
  -            apr_close(attr->parent_err);
  +            apr_close(cont, attr->parent_err);
               dup2(attr->child_err->filedes, STDERR_FILENO);
  -            apr_close(attr->child_err);
  +            apr_close(cont, attr->child_err);
           }
           
           signal(SIGCHLD, SIG_DFL); /*not sure if this is needed or not */
  @@ -189,35 +202,36 @@
       }
       /* Parent process */
       if (attr->child_in) {
  -        apr_close(attr->child_in);
  +        apr_close(cont, attr->child_in);
       }
       if (attr->child_out) {
  -        apr_close(attr->child_out);
  +        apr_close(cont, attr->child_out);
       }
       if (attr->child_err) {
  -        apr_close(attr->child_err);
  +        apr_close(cont, attr->child_err);
       }
       
       new->attr = attr;
       return new;
   }
   
  -apr_file_t *apr_get_childin(apr_proc_t *proc)
  +apr_file_t *apr_get_childin(apr_context_t *cont, apr_proc_t *proc)
   {
       return proc->attr->parent_in; 
   }
   
  -apr_file_t *apr_get_childout(apr_proc_t *proc)
  +apr_file_t *apr_get_childout(apr_context_t *cont, apr_proc_t *proc)
   {
       return proc->attr->parent_out; 
   }
   
  -apr_file_t *apr_get_childerr(apr_proc_t *proc)
  +apr_file_t *apr_get_childerr(apr_context_t *cont, apr_proc_t *proc)
   {
       return proc->attr->parent_err; 
   }    
   
  -apr_status_t apr_wait_proc(apr_proc_t *proc, apr_wait_how_e wait)
  +apr_status_t apr_wait_proc(apr_context_t *cont, apr_proc_t *proc, 
  +                           apr_wait_how_e wait)
   {
       if (!proc)
           return APR_FAILURE;
  @@ -230,4 +244,10 @@
           return APR_SUCCESS;
       return APR_FAILURE;
   } 
  +
  +void apr_exit_proc(apr_context_t *cont)
  +{
  +    apr_destroy_pool(cont->pool);
  +}
  +
   
  
  
  
  1.19      +75 -56    apache-apr/docs/fileio.txt
  
  Index: fileio.txt
  ===================================================================
  RCS file: /home/cvs/apache-apr/docs/fileio.txt,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- fileio.txt        1999/04/26 13:07:52     1.18
  +++ fileio.txt        1999/04/30 18:38:56     1.19
  @@ -1,10 +1,11 @@
   <h2>File I/O</h2>
   
  - apr_file_t *apr_open(char *, apr_int32_t, apr_fileperms_t mode)
  + apr_file_t *apr_open(apr_context_t *, char *, apr_int32_t, apr_fileperms_t 
mode)
        Open the specified file, and return a method for accessing that file.
        Arguments:
  -     arg 1)  full path name to the file to be opened.
  -     arg 2)  Note: this may become its own type with accessor methods
  +        arg 1)  The context to use.
  +     arg 2)  full path name to the file to be opened.
  +     arg 3)  Note: this may become its own type with accessor methods
                   flags that determine how to open or create the file.  
                Or'ed value of:
                        APR_READ         Open for reading
  @@ -19,7 +20,7 @@
                                        non-buffered
                        APR_EXCL        return error if APR_CREATE and file
                                        exists.
  -     arg 3)  Access permissions to set for the file if it is created with
  +     arg 4)  Access permissions to set for the file if it is created with
                APR_CREATE. We haven't decided how exactly we want this to
                   work, but it will support the set of Unix permissions at
                   minimum.
  @@ -32,139 +33,156 @@
           is small, and a stat isn't required after opening the file. 
   
   
  -apr_status_t apr_close(apr_file_t *);
  +apr_status_t apr_close(apr_context_t *, apr_file_t *);
        Close the specified file descriptor
        Arguments:
  -     arg 1)  file descriptor of file to be closed.
  +        arg 1)  The context to use.
  +     arg 2)  file descriptor of file to be closed.
           return) APR_SUCCESS or APR_FAILURE
   
   Notes:  The fields within the APRFile structure will not be changed when a 
file
        is closed.  The ONLY updated field, will be the file descriptor.
   
  - apr_size_t apr_read(apr_file_t *, void *, apr_size_t)
  + apr_size_t apr_read(apr_context_t *, apr_file_t *, void *, apr_size_t)
        Read n bytes from file and store in buffer.
        Arguments:
  -     arg 1)  File descriptor to read from
  -     arg 2)  buffer to store data in
  -     arg 3)  number of bytes to read
  +        arg 1)  The context to use.
  +     arg 2)  File descriptor to read from
  +     arg 3)  buffer to store data in
  +     arg 4)  number of bytes to read
        return) pointer to number of bytes read.
   
  - apr_size_t apr_write(apr_file_t *, void *, apr_size_t)
  + apr_size_t apr_write(apr_context_t *, apr_file_t *, void *, apr_size_t)
        Write n bytes of data from buffer to file
        Arguments:
  -     arg 1)  File descriptor to write data to
  -     arg 2)  buffer to read data from
  -     arg 3)  number of bytes to write
  +        arg 1)  The context to use.
  +     arg 2)  File descriptor to write data to
  +     arg 3)  buffer to read data from
  +     arg 4)  number of bytes to write
        return) pointer to number of bytes written. 
   
   Notes:  apr_write tries to update the apr_file_t that is passed in, but it 
fails
           silently if it is unable to do so.
   
  - apr_file_t apr_dupfile(apr_file_t *)
  + apr_file_t apr_dupfile(apr_context_t *, apr_file_t *)
           Copy data from one apr_file_t to a new one.
        Arguments:
  -        arg 1)  the file info to save.
  +        arg 1)  The context to use.
  +        arg 2)  the file info to save.
           return) a new file structure.
   
   Notes:  This does not duplicate the file descriptor, it just saves the data
           from apr_file_t to a new apr_file_t.  This is used so user programs
           do not need access to the internals of apr_file_t
   
  - apr_status apr_getfileinfo(char *, apr_file_t *)  
  + apr_status apr_getfileinfo(apr_context_t *, char *, apr_file_t *)  
        Get information about the file with the given path name.
        Arguments:
  -     arg 1)  path to file to get information about
  -     arg 2)  Structure to store file's information in. 
  +        arg 1)  The context to use.
  +     arg 2)  path to file to get information about
  +     arg 3)  Structure to store file's information in. 
           return) APR_SUCCESS or APR_FAILURE.
   
  - apr_status apr_updatefileinfo(apr_file_t *)  
  + apr_status apr_updatefileinfo(apr_context_t *, apr_file_t *)  
        Get information about the file with the given path name.
        Arguments:
  -     arg 1)  Structure to store file's information in. 
  +        arg 1)  The context to use.
  +     arg 2)  Structure to store file's information in. 
           return) APR_SUCCESS or APR_FAILURE.
   
   Notes:  apr_updatefileinfo overwrites the old info, so if it is needed, the 
old
           info should be saved off to the side, using apr_dupfile.
   
  - apr_off_t apr_seek(apr_file_t, apr_off_t, apr_seek_where_t)
  + apr_off_t apr_seek(apr_context_t *, apr_file_t, apr_off_t, apr_seek_where_t)
        Moves the read/write file offset pointer
        Arguments:
  -     arg 1)  Pointer to File descriptor  
  -     arg 2)  offset into file to move pointer to
  -     arg 3)  How to move the pointer.  See APRSeekWhere def below.
  +        arg 1)  The context to use.
  +     arg 2)  Pointer to File descriptor  
  +     arg 3)  offset into file to move pointer to
  +     arg 4)  How to move the pointer.  See APRSeekWhere def below.
                    APR_SET -- set the offset to offset
                       APR_CUR -- add the offset to the current position
                       APR_END -- add the offset to the current file size.
        return) Offset into file that the pointer was set to.
   
  - apr_status_t apr_remove_file(char *)
  + apr_status_t apr_remove_file(apr_context_t *, char *)
           Removes the file pointed to by the character string
        Arguments:
  -        arg 1)  The full path of the file to delete.
  +        arg 1)  The context to use.
  +        arg 2)  The full path of the file to delete.
           return) APR_SUCCESS or APR_FAILURE.
   Notes:  If the file is still open, it will not actually be removed until the
           all references of the file are closed.
   
  - apr_dir_t *apr_opendir(const char *)  
  + apr_dir_t *apr_opendir(apr_context_t *, const char *)  
        Opens the specified directory stream.           
        Arguments:
  -     arg 1)  path of the directory to be opened.
  +        arg 1)  The context to use.
  +     arg 2)  path of the directory to be opened.
        return) abstracted directory descriptor structure.
   
  - apr_status_t apr_closedir(apr_dir_t *)  
  + apr_status_t apr_closedir(apr_context_t *, apr_dir_t *)  
        closes the specified directory stream.          
        Arguments:
  -     arg 1)  abstracted directory descriptor structure to be closed.
  +        arg 1)  The context to use.
  +     arg 2)  abstracted directory descriptor structure to be closed.
           return) APR_SUCCESS or APR_FAILURE
   
  - apr_dirent_t *apr_readdir(apr_dir_t *)
  + apr_dirent_t *apr_readdir(apr_context_t *, apr_dir_t *)
        Retrieve the next directory entry from the specified directory.
        Arguments:
  -     arg 1)  Abstracted directory descriptor to read from.
  +        arg 1)  The context to use.
  +     arg 2)  Abstracted directory descriptor to read from.
        return) the next directory entry.
   
  - apr_status_t *apr_rewinddir(apr_dir_t *)
  + apr_status_t *apr_rewinddir(apr_context_t *, apr_dir_t *)
           Rewind directory to beginning of stream
        Arguments:
  -        arg 1)  Directory structure to rewind
  +        arg 1)  The context to use.
  +        arg 2)  Directory structure to rewind
           return) APR_SUCCESS.  (POSIX does not allow this function to fail!)
   
  - apr_status_t apr_make_dir(const char *, apr_fileperms_t)
  + apr_status_t apr_make_dir(apr_context_t *, const char *, apr_fileperms_t)
           Create a new directory on the disk
        Arguments:
  -        arg 1)  The path of the new directory.
  -        arg 2)  The permissions to set for the new directory.
  +        arg 1)  The context to use.
  +        arg 2)  The path of the new directory.
  +        arg 3)  The permissions to set for the new directory.
           return) APR_SUCCESS or APR_FAILURE
   
  - apr_status_t apr_remove_dir(const char *)
  + apr_status_t apr_remove_dir(apr_context_t *, const char *)
           Remove a direcotry from the disk
        Arguments:
  -        arg 1)  The path of the directory to remove.
  +        arg 1)  The context to use.
  +        arg 2)  The path of the directory to remove.
           return) APR_SUCCESS or APR_FAILURE
   
  - apr_ssize_t apr_writev(apr_file_t, apr_iovec_t *, apr_ssize_t)
  + apr_ssize_t apr_writev(apr_context_t *, apr_file_t, apr_iovec_t *, 
apr_ssize_t)
        Same as apr_write, except it gets the data from the APRIOVec array.
        Arguments:
  -     arg 1)  File descriptor to write data to
  -     arg 2)  Array from which to get the data to write to the file
  -     arg 3)  Number of elements in the APRIOVec array.  Must be smaller
  +        arg 1)  The context to use.
  +     arg 2)  File descriptor to write data to
  +     arg 3)  Array from which to get the data to write to the file
  +     arg 4)  Number of elements in the APRIOVec array.  Must be smaller
                than apr_MAX_IOVEC_SIZE, if not function will fail with
                APR_BUFFER_OVERFLOW_ERROR
        return) number of bytes written.  APR_FAILURE on failure.
   Notes: apr_writev will write a complete entry from APRIOVec array before
          moving on to the next one.
   
  - char * apr_get_filename(apr_file_t *)
  + char * apr_get_filename(apr_context_t *, apr_file_t *)
           Get the name of an opened file. 
        Arguments:
  -     arg 1)  File to get the name of 
  +        arg 1)  The context to use.
  +     arg 2)  File to get the name of 
        return) filename.  NULL on failure 
   
  - apr_status_t apr_create_pipe(apr_file_t *, apr_file_t *)
  + apr_status_t apr_create_pipe(apr_context_t *, apr_file_t *, apr_file_t *)
           create an unnamed pipe
        Arguments:
  -        arg 1)  File for reading from the pipe.
  -        arg 2)  File for writing to the pipe.
  +        arg 1)  The context to use.
  +        arg 2)  File for reading from the pipe.
  +        arg 3)  File for writing to the pipe.
           return) APR_SUCCESS or APR_FAILURE
   NOTE:  Unnamed pipes are ALWAYS inherited by any child process created by the
          process which created the pipes.  If the platform is storing the file
  @@ -173,13 +191,14 @@
          what isn't.  All other fields are left to the individual platform to
          set appropriately.  
   
  -char *apr_create_namedpipe(char *, apr_fileperms_t)
  -       create a uniquely named pipe in the temp directory.
  -     Arguments:
  -       arg 1)  The directory to create the named pipe in.  Can BE NULL! 
  -       arg 2)  The permissions for the named pipe.
  -       return) The name of the newly created pipe. (fully defined path) NULL
  -               on failure.
  + char *apr_create_namedpipe(apr_context_t *, char *, apr_fileperms_t)
  +        create a uniquely named pipe in the temp directory.
  +      Arguments:
  +        arg 1)  The context to use.
  +        arg 2)  The directory to create the named pipe in.  Can BE NULL! 
  +        arg 3)  The permissions for the named pipe.
  +        return) The name of the newly created pipe. (fully defined path) NULL
  +                on failure.
   NOTE:  If directory name is NULL, the platform decides where it is best to 
put
          the pipe.  To get it in the current dir, use "." here :) 
   
  
  
  
  1.20      +2 -2      apache-apr/docs/networkio.txt
  
  Index: networkio.txt
  ===================================================================
  RCS file: /home/cvs/apache-apr/docs/networkio.txt,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- networkio.txt     1999/04/28 16:00:09     1.19
  +++ networkio.txt     1999/04/30 18:38:56     1.20
  @@ -99,8 +99,8 @@
                         APR_HUP        Hung up
                         APR_NVAL       Invalid rquest, socket not open.
        arg 2)  the number of sockets in the array.
  -     arg 3)  the amount of time in seconds to monitor.  0 means wait
  -                until a socket is triggered. 
  +     arg 3)  the amount of time in seconds to monitor.  a negative number 
  +                means wait until a socket is triggered. 
        return) Number of file desriptors triggered.  0 means call timed out.
                -1 returned on failure.
   
  
  
  
  1.20      +19 -19    apache-apr/include/apr_file_io.h
  
  Index: apr_file_io.h
  ===================================================================
  RCS file: /home/cvs/apache-apr/include/apr_file_io.h,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- apr_file_io.h     1999/04/26 13:07:50     1.19
  +++ apr_file_io.h     1999/04/30 18:38:57     1.20
  @@ -106,31 +106,31 @@
   typedef iovec_t           apr_iovec_t;
   
   /*   Function definitions */
  -apr_file_t *apr_open(char *, apr_int32_t, apr_fileperms_t);
  -apr_status_t apr_close(apr_file_t *);
  -apr_status_t apr_remove_file(char *);
  +apr_file_t *apr_open(apr_context_t *, char *, apr_int32_t, apr_fileperms_t);
  +apr_status_t apr_close(apr_context_t *, apr_file_t *);
  +apr_status_t apr_remove_file(apr_context_t *, char *);
   
  -apr_ssize_t apr_read(apr_file_t *, void *, apr_ssize_t);
  -apr_ssize_t apr_write(apr_file_t *, void *, apr_ssize_t);
  -apr_ssize_t apr_writev(apr_file_t *, const apr_iovec_t *, apr_ssize_t);
  +apr_ssize_t apr_read(apr_context_t *, apr_file_t *, void *, apr_ssize_t);
  +apr_ssize_t apr_write(apr_context_t *, apr_file_t *, void *, apr_ssize_t);
  +apr_ssize_t apr_writev(apr_context_t *, apr_file_t *, const apr_iovec_t *, 
apr_ssize_t);
   
  -apr_file_t *apr_dupfile(apr_file_t *);
  -apr_status_t apr_getfileinfo(char *, apr_file_t *);
  -apr_status_t apr_updatefileinfo(apr_file_t *);
  -apr_off_t apr_seek(apr_file_t *, apr_off_t, apr_seek_where_t);
  +apr_file_t *apr_dupfile(apr_context_t *, apr_file_t *);
  +apr_status_t apr_getfileinfo(apr_context_t *, char *, apr_file_t *);
  +apr_status_t apr_updatefileinfo(apr_context_t *, apr_file_t *);
  +apr_off_t apr_seek(apr_context_t *, apr_file_t *, apr_off_t, 
apr_seek_where_t);
   
  -apr_dir_t *apr_opendir(const char *);
  -apr_status_t apr_closedir(apr_dir_t *);
  -apr_dirent_t *apr_readdir(apr_dir_t *);
  -apr_status_t apr_rewinddir(apr_dir_t *);
  -apr_status_t apr_make_dir(const char *, apr_fileperms_t);
  -apr_status_t apr_remove_dir(const char *);
  +apr_dir_t *apr_opendir(apr_context_t *, const char *);
  +apr_status_t apr_closedir(apr_context_t *, apr_dir_t *);
  +apr_dirent_t *apr_readdir(apr_context_t *, apr_dir_t *);
  +apr_status_t apr_rewinddir(apr_context_t *, apr_dir_t *);
  +apr_status_t apr_make_dir(apr_context_t *, const char *, apr_fileperms_t);
  +apr_status_t apr_remove_dir(apr_context_t *, const char *);
   
  -apr_status_t apr_create_pipe(apr_file_t *, apr_file_t *);
  -char *apr_create_namedpipe(char *, apr_fileperms_t);
  +apr_status_t apr_create_pipe(apr_context_t *, apr_file_t *, apr_file_t *);
  +char *apr_create_namedpipe(apr_context_t *, char *, apr_fileperms_t);
   
   /*accessor and general file_io functions. */
  -char *apr_get_filename(apr_file_t *);
  +char *apr_get_filename(apr_context_t *, apr_file_t *);
   
   
   #endif  /* ! APR_FILE_IO_H */
  
  
  
  1.15      +16 -16    apache-apr/include/apr_network_io.h
  
  Index: apr_network_io.h
  ===================================================================
  RCS file: /home/cvs/apache-apr/include/apr_network_io.h,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- apr_network_io.h  1999/04/28 16:00:09     1.14
  +++ apr_network_io.h  1999/04/30 18:38:58     1.15
  @@ -64,8 +64,8 @@
   #define MAX_SECS_TO_LINGER 30
   #endif
   
  -#ifndef MAXHOSTNAMELEN
  -#define MAXHOSTNAMELEN 256
  +#ifndef APRMAXHOSTLEN
  +#define APRMAXHOSTLEN 256
   #endif
   
   /* Socket option definitions */
  @@ -90,25 +90,25 @@
   
   /* function definitions */
   
  -apr_socket_t *apr_create_tcp_socket(void);
  -apr_status_t apr_shutdown(apr_socket_t *, apr_shutdown_how_e);
  -apr_status_t apr_close_socket(apr_socket_t *);
  +apr_socket_t *apr_create_tcp_socket(apr_context_t *);
  +apr_status_t apr_shutdown(apr_context_t *, apr_socket_t *, 
apr_shutdown_how_e);
  +apr_status_t apr_close_socket(apr_context_t *, apr_socket_t *);
   
  -apr_status_t apr_bind(apr_socket_t *);
  -apr_status_t apr_listen(apr_socket_t *, apr_int32_t);
  -apr_socket_t *apr_accept(const apr_socket_t *);
  -apr_status_t apr_connect(apr_socket_t *, char *);
  +apr_status_t apr_bind(apr_context_t *, apr_socket_t *);
  +apr_status_t apr_listen(apr_context_t *, apr_socket_t *, apr_int32_t);
  +apr_socket_t *apr_accept(apr_context_t *, const apr_socket_t *);
  +apr_status_t apr_connect(apr_context_t *, apr_socket_t *, char *);
   
  -char *apr_get_remote_hostname(apr_socket_t *);
  -apr_status_t apr_gethostname(char *, int);
  +char *aprget_remote_hostname(apr_context_t *, apr_socket_t *);
  +apr_status_t apr_gethostname(apr_context_t *, char *, int);
   
  -apr_ssize_t apr_send(apr_socket_t *, const char *, int, time_t);
  -apr_ssize_t apr_recv(apr_socket_t *, char *, int, time_t);
  +apr_ssize_t apr_send(apr_context_t *, apr_socket_t *, const char *, int, 
time_t);
  +apr_ssize_t apr_recv(apr_context_t *, apr_socket_t *, char *, int, time_t);
   
  -apr_status_t apr_setsocketopt(apr_socket_t *, apr_int32_t, apr_int32_t);
  -apr_status_t apr_setport(apr_socket_t *, apr_uint32_t);
  +apr_status_t apr_setsocketopt(apr_context_t *, apr_socket_t *, apr_int32_t, 
apr_int32_t);
  +apr_status_t apr_setport(apr_context_t *, apr_socket_t *, apr_uint32_t);
   
  -apr_int32_t apr_poll(apr_pollfd_t *, apr_int32_t, apr_int32_t);
  +apr_int32_t apr_poll(apr_context_t *, apr_pollfd_t *, apr_int32_t, 
apr_int32_t);
   /*  accessor functions   */
   
   #endif  /* ! APR_FILE_IO_H */
  
  
  
  1.6       +10 -10    apache-apr/include/apr_thread_proc.h
  
  Index: apr_thread_proc.h
  ===================================================================
  RCS file: /home/cvs/apache-apr/include/apr_thread_proc.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- apr_thread_proc.h 1999/04/29 20:20:39     1.5
  +++ apr_thread_proc.h 1999/04/30 18:38:58     1.6
  @@ -73,18 +73,18 @@
   
   
   /* Process Function definitions */
  -apr_procattr_t *apr_createprocattr_init(void);
  -apr_status_t apr_setprocattr_io(apr_procattr_t *, apr_int32_t, apr_int32_t, 
apr_int32_t);
  -apr_status_t apr_setprocattr_dir(apr_procattr_t *, char *);
  -apr_status_t apr_setprocattr_cmdtype(apr_procattr_t *, apr_cmdtype_e);
  +apr_procattr_t *apr_createprocattr_init(apr_context_t *);
  +apr_status_t apr_setprocattr_io(apr_context_t *, apr_procattr_t *, 
apr_int32_t, apr_int32_t, apr_int32_t);
  +apr_status_t apr_setprocattr_dir(apr_context_t *, apr_procattr_t *, char *);
  +apr_status_t apr_setprocattr_cmdtype(apr_context_t *, apr_procattr_t *, 
apr_cmdtype_e);
   
  -apr_file_t *apr_get_childin(apr_proc_t *);
  -apr_file_t *apr_get_childout(apr_proc_t *);
  -apr_file_t *apr_get_childerr(apr_proc_t *);
  +apr_file_t *apr_get_childin(apr_context_t *, apr_proc_t *);
  +apr_file_t *apr_get_childout(apr_context_t *, apr_proc_t *);
  +apr_file_t *apr_get_childerr(apr_context_t *, apr_proc_t *);
   
  -apr_int32_t apr_fork(apr_proc_t *);
  -apr_proc_t *apr_create_process(char *, char *const [], char **, 
apr_procattr_t *);
  -apr_status_t apr_wait_proc(apr_proc_t *, apr_wait_how_e);
  +apr_int32_t apr_fork(apr_context_t *, apr_proc_t *);
  +apr_proc_t *apr_create_process(apr_context_t *, char *, char *const [], char 
**, apr_procattr_t *);
  +apr_status_t apr_wait_proc(apr_context_t *, apr_proc_t *, apr_wait_how_e);
   
   #endif  /* ! APR_FILE_IO_H */
   
  
  
  

Reply via email to