cvs commit: apache-2.0/src/lib/apr/file_io/win32 open.c

1999-11-03 Thread stoddard
stoddard99/11/03 14:01:48

  Modified:src/lib/apr/file_io/win32 open.c
  Log:
  Win32 APR: Handle open for append correctly.
  
  Revision  ChangesPath
  1.10  +4 -0  apache-2.0/src/lib/apr/file_io/win32/open.c
  
  Index: open.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/win32/open.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- open.c1999/10/21 00:31:09 1.9
  +++ open.c1999/11/03 22:01:46 1.10
  @@ -136,6 +136,10 @@
   theerror = GetLastError();
   return APR_EEXIST;
   }
  +if (flag & APR_APPEND) {
  +SetFilePointer((*dafile)->filehand, 0, NULL, FILE_END);
  +}
  +
   (*dafile)->stated = 0;  /* we haven't called stat for this file yet. */
   (*dafile)->eof_hit = 0;
   ap_register_cleanup((*dafile)->cntxt, (void *)(*dafile), file_cleanup,
  
  
  


cvs commit: apache-2.0/src/lib/apr/threadproc/beos proc.c

1999-11-03 Thread dreid
dreid   99/11/03 13:47:49

  Modified:src/lib/apr/threadproc/beos proc.c
  Log:
  Thanks to Manuel J Petit de Gabriel for finding the problem with
  my pipes.  This fix allows CGI to work on BeOS.
  
  Revision  ChangesPath
  1.11  +4 -0  apache-2.0/src/lib/apr/threadproc/beos/proc.c
  
  Index: proc.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/beos/proc.c,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- proc.c1999/11/03 16:01:53 1.10
  +++ proc.c1999/11/03 21:47:44 1.11
  @@ -223,6 +223,10 @@
   return errno;
   }
   resume_thread(newproc);
  +ap_close (attr->child_in);
  +ap_close (attr->child_out);
  +ap_close (attr->child_err);
  +
   send_data(newproc, 0, (void*)sp, sizeof(struct send_pipe));
   (*new)->tid = newproc;
   
  
  
  


cvs commit: apache-2.0/src/lib/apr/threadproc/beos proc.c

1999-11-03 Thread dreid
dreid   99/11/03 08:01:53

  Modified:src/lib/apr/threadproc/beos proc.c
  Log:
  This allows ap_create_process to work again...
  
  Revision  ChangesPath
  1.10  +4 -5  apache-2.0/src/lib/apr/threadproc/beos/proc.c
  
  Index: proc.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/beos/proc.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- proc.c1999/11/03 07:29:05 1.9
  +++ proc.c1999/11/03 16:01:53 1.10
  @@ -67,7 +67,6 @@
int in;
int out;
int err;
  - char ** envp;
   };
   
   ap_status_t ap_createprocattr_init(struct procattr_t **new, ap_context_t 
*cont)
  @@ -192,10 +191,9 @@
sp->in  = attr->child_in?attr->child_in->filedes:-1;
sp->out = attr->child_out?attr->child_out->filedes:-1;
sp->err = attr->child_err?attr->child_err->filedes:-1;
  - sp->envp = env;
  - 
  +
   i = 0;
  -while (args[i]) {
  +while (args && args[i]) {
   i++;
   }
   
  @@ -212,7 +210,8 @@
}
newargs[2] = strdup(progname);
i=0;nargs = 3;
  - while (args[i]) {
  +
  + while (args && args[i]) {
newargs[nargs] = args[i];
i++;nargs++;
}
  
  
  


cvs commit: apache-2.0/src/os/beos iol_socket.c

1999-11-03 Thread dreid
dreid   99/11/03 07:50:14

  Modified:src/os/beos iol_socket.c
  Log:
  Fix a small problem with beos_writev.
  
  Revision  ChangesPath
  1.4   +3 -1  apache-2.0/src/os/beos/iol_socket.c
  
  Index: iol_socket.c
  ===
  RCS file: /home/cvs/apache-2.0/src/os/beos/iol_socket.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- iol_socket.c  1999/11/02 12:26:42 1.3
  +++ iol_socket.c  1999/11/03 15:50:13 1.4
  @@ -98,6 +98,7 @@
   return APR_SUCCESS;
   }
   
  +
   ap_status_t beos_write(ap_iol *viol, const char* buf, ap_size_t size,
ap_ssize_t *nbytes)
   {
  @@ -108,7 +109,8 @@
   ap_status_t beos_writev(ap_iol *viol, const struct iovec *vec, int nvec,
   ap_ssize_t *nbytes)
   {
  -return ap_send(((iol_socket *)viol)->sock, vec[0].iov_base, 
vec[0].iov_len);
  +*nbytes = vec[0].iov_len;
  +return ap_send(((iol_socket *)viol)->sock, vec[0].iov_base, nbytes);
   }
   
   ap_status_t beos_read(ap_iol *viol, char* buf, ap_size_t size,
  
  
  


cvs commit: apache-2.0/src/lib/apr/network_io/os2 networkio.h sendrecv.c sockets.c sockopt.c

1999-11-03 Thread bjh
bjh 99/11/03 06:03:27

  Modified:src/lib/apr/network_io/os2 networkio.h sendrecv.c sockets.c
sockopt.c
  Log:
  OS/2: Rework ap_send/ap_recv to time out properly on blocking sockets.
  
  Revision  ChangesPath
  1.6   +2 -1  apache-2.0/src/lib/apr/network_io/os2/networkio.h
  
  Index: networkio.h
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/os2/networkio.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- networkio.h   1999/10/29 14:21:00 1.5
  +++ networkio.h   1999/11/03 14:03:25 1.6
  @@ -68,7 +68,8 @@
   struct sockaddr_in *local_addr;
   struct sockaddr_in *remote_addr;
   int addr_len;
  -int timeout; 
  +int timeout;
  +int nonblock;
   };
   
   struct pollfd_t {
  
  
  
  1.6   +68 -78apache-2.0/src/lib/apr/network_io/os2/sendrecv.c
  
  Index: sendrecv.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/network_io/os2/sendrecv.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- sendrecv.c1999/10/29 14:21:01 1.5
  +++ sendrecv.c1999/11/03 14:03:25 1.6
  @@ -65,38 +65,34 @@
   ap_status_t ap_send(struct socket_t *sock, const char *buf, ap_ssize_t *len)
   {
   ssize_t rv;
  -
  +int fds, err = 0;
  +
   do {
  -rv = send(sock->socketdes, buf, (*len), 0);
  -} while (rv == -1 && sock_errno() == SOCEINTR);
  +if (!sock->nonblock || err == SOCEWOULDBLOCK) {
  +fds = sock->socketdes;
  +rv = select(&fds, 0, 1, 0, sock->timeout >= 0 ? 
sock->timeout*1000 : -1);
   
  -if (rv == -1 && sock_errno() == SOCEWOULDBLOCK && sock->timeout != 0) {
  -int fds;
  -int srv;
  +if (rv != 1) {
  +*len = -1;
  +err = sock_errno();
   
  -do {
  -fds = sock->socketdes;
  -srv = select(&fds, 0, 1, 0, sock->timeout >= 0 ? 
sock->timeout*1000 : -1);
  -} while (srv == -1 && sock_errno() == SOCEINTR);
  +if (rv == 0)
  +return APR_TIMEUP;
   
  -if (srv == 0) {
  -(*len) = -1;
  -return APR_TIMEUP;
  -}
  -else if (srv < 0) {
  -(*len) = -1;
  -return os2errno(sock_errno());
  -}
  -else {
  -do {
  -rv = send(sock->socketdes, buf, (*len), 0);
  -} while (rv == -1 && sock_errno() == SOCEINTR);
  +if (err == SOCEINTR)
  +continue;
  +
  +return os2errno(err);
  +}
   }
  -}
   
  -if (rv < 0) {
  -*len = 0;
  -return os2errno(sock_errno());
  +rv = send(sock->socketdes, buf, (*len), 0);
  +err = rv < 0 ? sock_errno() : 0;
  +} while (err == SOCEINTR || err == SOCEWOULDBLOCK);
  +
  +if (err) {
  +*len = -1;
  +return os2errno(err);
   }
   
   (*len) = rv;
  @@ -108,38 +104,34 @@
   ap_status_t ap_recv(struct socket_t *sock, char *buf, ap_ssize_t *len)
   {
   ssize_t rv;
  -
  +int fds, err = 0;
  +
   do {
  -rv = recv(sock->socketdes, buf, (*len), 0);
  -} while (rv == -1 && sock_errno() == SOCEINTR);
  +if (!sock->nonblock || err == SOCEWOULDBLOCK) {
  +fds = sock->socketdes;
  +rv = select(&fds, 1, 0, 0, sock->timeout >= 0 ? 
sock->timeout*1000 : -1);
   
  -if (rv == -1 && sock_errno() == SOCEWOULDBLOCK && sock->timeout != 0) {
  -int fds;
  -int srv;
  +if (rv != 1) {
  +*len = -1;
  +err = sock_errno();
   
  -do {
  -fds = sock->socketdes;
  -srv = select(&fds, 1, 0, 0, sock->timeout >= 0 ? 
sock->timeout*1000 : -1);
  -} while (srv == -1 && sock_errno() == SOCEINTR);
  +if (rv == 0)
  +return APR_TIMEUP;
   
  -if (srv == 0) {
  -(*len) = -1;
  -return APR_TIMEUP;
  -}
  -else if (srv < 0) {
  -(*len) = -1;
  -return os2errno(sock_errno());
  -}
  -else {
  -do {
  -rv = recv(sock->socketdes, buf, (*len), 0);
  -} while (rv == -1 && sock_errno() == SOCEINTR);
  +if (err == SOCEINTR)
  +continue;
  +
  +return os2errno(err);
  +}
   }
  -}
  +
  +rv = recv(sock->socketdes, buf, (*len), 0);
  +err = rv < 0 ? sock_errno() : 0;
  +} while (err == SOCEINTR || err == SOCEWOULDBLOCK);
   
  -if (rv < 0) {
  -*len = 0;
  -return os2errno(sock_errno());
  +if (err) {
  +*len = -1;
  +  

cvs commit: apache-2.0/src/main http_protocol.c

1999-11-03 Thread bjh
bjh 99/11/03 04:47:24

  Modified:src/lib/apr/file_io/os2 readwrite.c
   src/main http_protocol.c
  Log:
  OS/2: Don't return APR_EOF from ap_read(). EOF is indicated by a APR_SUCCESS
  status with nbytes set to 0.
  
  Revision  ChangesPath
  1.6   +10 -15apache-2.0/src/lib/apr/file_io/os2/readwrite.c
  
  Index: readwrite.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/file_io/os2/readwrite.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- readwrite.c   1999/10/19 15:24:19 1.5
  +++ readwrite.c   1999/11/03 12:47:22 1.6
  @@ -85,8 +85,11 @@
   while (rc == 0 && size > 0) {
   if (thefile->bufpos >= thefile->dataRead) {
   rc = DosRead(thefile->filedes, thefile->buffer, 
APR_FILE_BUFSIZE, &thefile->dataRead );
  -if (thefile->dataRead == 0)
  +if (thefile->dataRead == 0) {
  +if (rc == 0)
  +thefile->eof_hit = TRUE;
   break;
  +}
   thefile->filePtr += thefile->dataRead;
   thefile->bufpos = 0;
   }
  @@ -99,15 +102,6 @@
   }
   
   *nbytes = rc == 0 ? pos - (char *)buf : 0;
  -
  -// if an error occurred report it
  -// if we read some data but hit EOF before reading 'size' bytes, 
return Ok (0)
  -// if we hit EOF with no data read, return -1
  -if (size && rc == 0 && pos == (char *)buf) {
  -thefile->eof_hit = TRUE;
  -*_errno() = APR_EOF;
  -return APR_EOF;
  -}
   return os2errno(rc);
   } else {
   rc = DosRead(thefile->filedes, buf, *nbytes, &bytesread);
  @@ -307,15 +301,16 @@
   ap_status_t ap_fgets(char *str, int len, ap_file_t *thefile)
   {
   ssize_t readlen;
  -ap_status_t rv;
  +ap_status_t rv = APR_SUCCESS;
   int i;
   
   for (i = 0; i < len-1; i++) {
   readlen = 1;
   rv = ap_read(thefile, str+i, &readlen);
  -
  -if (rv != APR_SUCCESS) {
  -return rv;
  +
  +if (readlen != 1) {
  +rv = APR_EOF;
  +break;
   }
   
   if (str[i] == '\r')
  @@ -324,7 +319,7 @@
   break;
   }
   str[i] = 0;
  -return APR_SUCCESS; 
  +return rv;
   }
   
   
  
  
  
  1.35  +1 -1  apache-2.0/src/main/http_protocol.c
  
  Index: http_protocol.c
  ===
  RCS file: /home/cvs/apache-2.0/src/main/http_protocol.c,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- http_protocol.c   1999/11/02 14:34:32 1.34
  +++ http_protocol.c   1999/11/03 12:47:23 1.35
  @@ -2111,7 +2111,7 @@
   while (!ap_is_aborted(r->connection)) {
   rv = ap_bread(fb, buf, sizeof(buf), &n);
   if (n == 0) {
  -if (rv == APR_SUCCESS || rv == APR_EOF) {/* eof */
  +if (rv == APR_SUCCESS) {/* eof */
   (void) ap_rflush(r);
   break;
   }
  
  
  


cvs commit: apache-2.0/src/lib/apr/include apr_mmap.h

1999-11-03 Thread dreid
dreid   99/11/03 04:33:34

  Modified:src/lib/apr/include apr_mmap.h
  Log:
  Add the new functions and also argument names :-)
  
  Revision  ChangesPath
  1.2   +11 -9 apache-2.0/src/lib/apr/include/apr_mmap.h
  
  Index: apr_mmap.h
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_mmap.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apr_mmap.h1999/10/21 20:36:45 1.1
  +++ apr_mmap.h1999/11/03 12:33:32 1.2
  @@ -69,17 +69,19 @@
   typedef struct mmap_tap_mmap_t;
   
   /*   Function definitions */
  -ap_status_t ap_mmap_create(ap_mmap_t **, const char *, ap_context_t *);
  -ap_status_t ap_mmap_open_create(ap_mmap_t **, ap_file_t *, ap_context_t *);
  -ap_status_t ap_mmap_delete(ap_mmap_t *);
   
  -ap_status_t ap_read_mmap(char *, ap_ssize_t *, ap_ssize_t *, 
  -ap_ssize_t *, ap_mmap_t *, ap_context_t *);
  -ap_status_t ap_send_mmap(ap_socket_t *, ap_ssize_t *, ap_ssize_t *, 
  -ap_mmap_t *, ap_context_t *);
  +/* creation */
  +ap_status_t ap_mmap_create(ap_mmap_t ** newmmap, const char *fname, 
ap_context_t *cntxt);
  +ap_status_t ap_mmap_open_create(ap_mmap_t **newmmap, ap_file_t *file, 
ap_context_t *cntxt);
   
  -ap_status_t ap_first_mmap(struct mmap_t *, ap_context_t *);
  -ap_status_t ap_next_mmap(struct mmap_t *, struct mmap_t *, ap_context_t *);
  +/* destruction */
  +ap_status_t ap_mmap_delete(ap_mmap_t *mmap);
  +
  +/* These are designed to be used in qsort, bsearch etc */
  +ap_int32_t ap_mmap_inode_compare(const void *m1, const void *m2);
  +ap_int32_t ap_mmap_filename_compare(const void *m1, const void *m2);
  +
  +ap_status_t ap_mmap_offset(void **addr, ap_mmap_t *mmap, ap_size_t offset);
   
   #ifdef __cplusplus
   }
  
  
  


cvs commit: apache-2.0/src/lib/apr/mmap/unix common.c Makefile.in mmap.c

1999-11-03 Thread dreid
dreid   99/11/03 04:30:59

  Modified:src/lib/apr/mmap/beos Makefile.in mmap.c
   src/lib/apr/mmap/unix Makefile.in mmap.c
  Added:   src/lib/apr/mmap/beos common.c
   src/lib/apr/mmap/unix common.c
  Log:
  Add more functions to the APR mmap.
  
  Revision  ChangesPath
  1.3   +16 -1 apache-2.0/src/lib/apr/mmap/beos/Makefile.in
  
  Index: Makefile.in
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/mmap/beos/Makefile.in,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- Makefile.in   1999/10/21 21:13:24 1.2
  +++ Makefile.in   1999/11/03 12:30:55 1.3
  @@ -15,7 +15,7 @@
   
   LIB=libmmap.a
   
  -OBJS=mmap.o
  +OBJS=mmap.o common.o
   
   .c.o:
$(CC) $(CFLAGS) -c $(INCLUDES) $<
  @@ -50,3 +50,18 @@
&& rm Makefile.new
   
   # DO NOT REMOVE
  +common.o: common.c ../unix/common.c ../unix/../beos/mmap_h.h \
  + ../../include/apr_general.h ../../include/apr_config.h \
  + ../../include/apr_errno.h ../../include/apr_mmap.h \
  + ../../include/apr_network_io.h ../../include/apr_portable.h \
  + ../../include/apr_thread_proc.h ../../include/apr_file_io.h \
  + ../../include/apr_win.h ../../include/apr_lock.h \
  + ../../include/apr_time.h ../../file_io/unix/fileio.h \
  + ../../include/apr_lib.h
  +mmap.o: mmap.c mmap_h.h ../../include/apr_general.h \
  + ../../include/apr_config.h ../../include/apr_errno.h \
  + ../../include/apr_mmap.h ../../include/apr_network_io.h \
  + ../../include/apr_portable.h ../../include/apr_thread_proc.h \
  + ../../include/apr_file_io.h ../../include/apr_win.h \
  + ../../include/apr_lock.h ../../include/apr_time.h \
  + ../../include/apr_lib.h ../../file_io/unix/fileio.h
  
  
  
  1.3   +4 -4  apache-2.0/src/lib/apr/mmap/beos/mmap.c
  
  Index: mmap.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/mmap/beos/mmap.c,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- mmap.c1999/10/21 21:13:26 1.2
  +++ mmap.c1999/11/03 12:30:55 1.3
  @@ -134,7 +134,7 @@
   ap_status_t ap_mmap_open_create(struct mmap_t **new, ap_file_t *file, 
  ap_context_t *cont)
   {
  -void *mm;
  +char *mm;
   area_id aid = -1;
   char *areaname = "apr_mmap\0";
   uint32 size;   
  @@ -164,8 +164,8 @@
   
   size = ((file->size -1) / B_PAGE_SIZE) + 1;
   
  -aid = create_area(areaname, &mm, B_ANY_ADDRESS, size * B_PAGE_SIZE, 
  -B_LAZY_LOCK, B_READ_AREA|B_WRITE_AREA);
  +aid = create_area(areaname, (void*)&mm, B_ANY_ADDRESS, size * 
B_PAGE_SIZE, 
  +B_FULL_LOCK, B_READ_AREA|B_WRITE_AREA);
   free(areaname);
   
   if (aid < B_OK) {
  @@ -180,7 +180,7 @@
   (*new)->size = file->size;
   (*new)->area = aid;
   (*new)->cntxt = cont;
  -   
  +
   /* register the cleanup... */ 
   ap_register_cleanup((*new)->cntxt, (void*)(*new), mmap_cleanup,
ap_null_cleanup);
  
  
  
  1.1  apache-2.0/src/lib/apr/mmap/beos/common.c
  
  Index: common.c
  ===
  #include "../unix/common.c"
  
  
  
  
  
  1.4   +1 -1  apache-2.0/src/lib/apr/mmap/unix/Makefile.in
  
  Index: Makefile.in
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/mmap/unix/Makefile.in,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Makefile.in   1999/10/30 05:59:24 1.3
  +++ Makefile.in   1999/11/03 12:30:58 1.4
  @@ -15,7 +15,7 @@
   
   LIB=libmmap.a
   
  -OBJS=mmap.o
  +OBJS=mmap.o common.o
   
   .c.o:
$(CC) $(CFLAGS) -c $(INCLUDES) $<
  
  
  
  1.4   +1 -1  apache-2.0/src/lib/apr/mmap/unix/mmap.c
  
  Index: mmap.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/mmap/unix/mmap.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mmap.c1999/10/24 04:30:19 1.3
  +++ mmap.c1999/11/03 12:30:59 1.4
  @@ -111,7 +111,7 @@
   (*new)->sinfo = st;
   (*new)->size = st.st_size;
   (*new)->cntxt = cont;
  -   
  +
   /* register the cleanup... */
   ap_register_cleanup((*new)->cntxt, (void*)(*new), mmap_cleanup,
ap_null_cleanup);
  
  
  
  1.1  apache-2.0/src/lib/apr/mmap/unix/common.c
  
  Index: common.c
  ===
  /* 
   * Copyright (c) 1999 The Apache Group.  All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following co

cvs commit: apache-2.0/src/lib/apr/threadproc/os2 proc.c

1999-11-03 Thread bjh
bjh 99/11/03 00:06:01

  Modified:src/lib/apr/threadproc/os2 proc.c
  Log:
  Some fixes for OS/2 process creation:
  - Allow NULL environment block
  - Allow .exe extension to be omitted
  
  Revision  ChangesPath
  1.10  +20 -13apache-2.0/src/lib/apr/threadproc/os2/proc.c
  
  Index: proc.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/os2/proc.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- proc.c1999/10/26 15:16:56 1.9
  +++ proc.c1999/11/03 08:06:00 1.10
  @@ -261,15 +261,19 @@
   interpreter[0] = 0;
   extension = strrchr(progname, '.');
   
  -if (extension == NULL)
  +if (extension == NULL || strchr(extension, '/') || strchr(extension, 
'\\'))
   extension = "";
   
   if (attr->cmdtype == APR_SHELLCMD || strcasecmp(extension, ".cmd") == 0) 
{
   strcpy(interpreter, "#!" SHELL_PATH);
   extra_arg = "/C";
  -} else if (stricmp(progname, ".exe") != 0) {
  +} else if (stricmp(extension, ".exe") != 0) {
   status = ap_open(&progfile, progname, APR_READ|APR_BUFFERED, 0, 
cont);
   
  +if (status == APR_ENOENT) {
  +progname = ap_pstrcat(cont, progname, ".exe", NULL);
  +}
  +
   if (status == APR_SUCCESS) {
   status = ap_fgets(interpreter, sizeof(interpreter), progfile);
   
  @@ -350,18 +354,21 @@
   }
   
   /* Create environment block from list of envariables */
  -for (env_len=1, e=0; env[e]; e++)
  -env_len += strlen(env[e]) + 1;
  -
  -env_block = ap_palloc(cont, env_len);
  -env_block_pos = env_block;
  -
  -for (e=0; env[e]; e++) {
  -strcpy(env_block_pos, env[e]);
  -env_block_pos += strlen(env_block_pos) + 1;
  -}
  +if (env) {
  +for (env_len=1, e=0; env[e]; e++)
  +env_len += strlen(env[e]) + 1;
  +
  +env_block = ap_palloc(cont, env_len);
  +env_block_pos = env_block;
  +
  +for (e=0; env[e]; e++) {
  +strcpy(env_block_pos, env[e]);
  +env_block_pos += strlen(env_block_pos) + 1;
  +}
   
  -*env_block_pos = 0; /* environment block is terminated by a double null 
*/
  +*env_block_pos = 0; /* environment block is terminated by a double 
null */
  +} else
  +env_block = NULL;
   
   status = DosExecPgm(error_object, sizeof(error_object), 
   attr->detached ? EXEC_BACKGROUND : EXEC_ASYNC, 
  
  
  


cvs commit: apache-2.0/src/lib/apr/threadproc/unix proc.c

1999-11-03 Thread manoj
manoj   99/11/02 23:29:07

  Modified:.STATUS
   src/lib/apr/threadproc/beos proc.c
   src/lib/apr/threadproc/unix proc.c
  Log:
  Fix yet another APR bug. This one caused sporadic CGI failures.
  
  Revision  ChangesPath
  1.9   +3 -8  apache-2.0/STATUS
  
  Index: STATUS
  ===
  RCS file: /home/cvs/apache-2.0/STATUS,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -d -u -r1.8 -r1.9
  --- STATUS1999/11/02 23:18:28 1.8
  +++ STATUS1999/11/03 07:29:02 1.9
  @@ -1,5 +1,5 @@
   Apache 2.0 STATUS:
  -Last modified at [$Date: 1999/11/02 23:18:28 $]
  +Last modified at [$Date: 1999/11/03 07:29:02 $]
   
   Release:
   
  @@ -12,14 +12,9 @@
   
   RELEASE SHOWSTOPPERS:
   
  -* CGI programs will stop working after a little while
  -Status: Manoj is working on this
  -
   * suEXEC doesn't work
  -Status: Manoj has finished an implementation, but it needs
  -polishing. Specifically, it puts a bunch of Unix stuff into
  -portable code.  Current patch will be sent to new-httpd upon
  -request.
  +Status: Manoj has posted an patch to fix this.
  +<[EMAIL PROTECTED]>
   
   * Windows NT port isn't done
   Status: Bill is working on this through his MPM work, and Ryan
  
  
  
  1.9   +1 -0  apache-2.0/src/lib/apr/threadproc/beos/proc.c
  
  Index: proc.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/beos/proc.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -d -u -r1.8 -r1.9
  --- proc.c1999/10/22 22:06:16 1.8
  +++ proc.c1999/11/03 07:29:05 1.9
  @@ -87,6 +87,7 @@
   (*new)->child_err = NULL;
   (*new)->currdir = NULL; 
   (*new)->cmdtype = APR_PROGRAM;
  +(*new)->detached = 0;
   return APR_SUCCESS;
   }
   
  
  
  
  1.9   +1 -0  apache-2.0/src/lib/apr/threadproc/unix/proc.c
  
  Index: proc.c
  ===
  RCS file: /home/cvs/apache-2.0/src/lib/apr/threadproc/unix/proc.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -d -u -r1.8 -r1.9
  --- proc.c1999/10/20 18:27:48 1.8
  +++ proc.c1999/11/03 07:29:06 1.9
  @@ -89,6 +89,7 @@
   (*new)->child_err = NULL;
   (*new)->currdir = NULL; 
   (*new)->cmdtype = APR_PROGRAM;
  +(*new)->detached = 0; 
   return APR_SUCCESS;
   }
   
  
  
  


cvs commit: apache-2.0/src/include ap_md5.h

1999-11-03 Thread ronald
ronald  99/11/02 22:17:17

  Modified:src/include ap_md5.h
  Log:
  Added MD5_DIGESTSIZE constant.
  
  Revision  ChangesPath
  1.2   +4 -1  apache-2.0/src/include/ap_md5.h
  
  Index: ap_md5.h
  ===
  RCS file: /home/cvs/apache-2.0/src/include/ap_md5.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ap_md5.h  1999/08/24 05:50:43 1.1
  +++ ap_md5.h  1999/11/03 06:17:16 1.2
  @@ -94,6 +94,8 @@
   
   /* MD5.H - header file for MD5C.C */
   
  +#define MD5_DIGESTSIZE 16
  +
   /* UINT4 defines a four byte word */
   typedef unsigned int UINT4;
   
  @@ -114,7 +116,8 @@
   API_EXPORT(void) ap_MD5Init(AP_MD5_CTX *context);
   API_EXPORT(void) ap_MD5Update(AP_MD5_CTX *context, const unsigned char 
*input,
  unsigned int inputLen);
  -API_EXPORT(void) ap_MD5Final(unsigned char digest[16], AP_MD5_CTX *context);
  +API_EXPORT(void) ap_MD5Final(unsigned char digest[MD5_DIGESTSIZE],
  +  AP_MD5_CTX *context);
   API_EXPORT(void) ap_MD5Encode(const unsigned char *password,
  const unsigned char *salt,
  char *result, size_t nbytes);
  
  
  


cvs commit: apache-2.0/src/modules/mpm/winnt winnt.c

1999-11-03 Thread stoddard
stoddard99/11/02 18:38:43

  Modified:src/modules/mpm/winnt winnt.c
  Log:
  Fix bug setting localaddr and remoteaddr
  
  Revision  ChangesPath
  1.27  +8 -9  apache-2.0/src/modules/mpm/winnt/winnt.c
  
  Index: winnt.c
  ===
  RCS file: /home/cvs/apache-2.0/src/modules/mpm/winnt/winnt.c,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- winnt.c   1999/11/02 22:04:14 1.26
  +++ winnt.c   1999/11/03 02:38:42 1.27
  @@ -801,7 +801,7 @@
   return -1;
   }
   ap_create_context(&context->ptrans, p);
  -context->conn_io =  ap_bcreate(context->ptrans, B_RDWR);
  +context->conn_io = ap_bcreate(context->ptrans, B_RDWR);
   context->recv_buf = context->conn_io->inbase;
   context->recv_buf_size = context->conn_io->bufsiz - 2*PADDED_ADDR_SIZE;
   ap_get_os_sock(&nsd, context->lr->sd);
  @@ -846,7 +846,8 @@
   context->recv_buf_size = context->conn_io->bufsiz - 2*PADDED_ADDR_SIZE;
   ap_get_os_sock(&nsd, context->lr->sd);
   
  -if (!AcceptEx(nsd, context->accept_socket, 
  +if (!AcceptEx(nsd, 
  +  context->accept_socket, 
 context->recv_buf, context->recv_buf_size,
 PADDED_ADDR_SIZE, PADDED_ADDR_SIZE,
 &BytesRead, (LPOVERLAPPED) context)) {
  @@ -902,8 +903,8 @@
   
   context->conn_io->incnt = BytesRead;
   
  -GetAcceptExSockaddrs(context->conn_io->inbase, 
  - context->conn_io->bufsiz - 2*PADDED_ADDR_SIZE,
  +GetAcceptExSockaddrs(context->recv_buf, 
  + context->recv_buf_size,
PADDED_ADDR_SIZE,
PADDED_ADDR_SIZE,
&context->sa_server,
  @@ -968,12 +969,10 @@
   closesocket(context->accept_socket);
   continue;
   }
  -
   ap_bpush_iol(context->conn_io, iol);
  -
  - current_conn = ap_new_connection(context->ptrans, server_conf, 
context->conn_io,
  - (struct sockaddr_in *) 
&context->sa_client,
  - (struct sockaddr_in *) 
&context->sa_server,
  +current_conn = ap_new_connection(context->ptrans, server_conf, 
context->conn_io,
  + (struct sockaddr_in *) 
context->sa_client,
  + (struct sockaddr_in *) 
context->sa_server,
child_num);
   
   ap_process_connection(current_conn);