cvs commit: apache-1.3/src/main rfc1413.c

1999-12-09 Thread martin
martin  99/12/09 09:05:29

  Modified:src/main rfc1413.c
  Log:
  EBCDIC: The buffer was passed incorrectly. Some compilers tolerated
  that, but it was wrong anyway. Noticed by Ovies Brabson
  
  Submitted by:   Ovies Brabson [EMAIL PROTECTED]
  Reviewed by:Martin Kraemer
  
  Revision  ChangesPath
  1.32  +2 -2  apache-1.3/src/main/rfc1413.c
  
  Index: rfc1413.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/main/rfc1413.c,v
  retrieving revision 1.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- rfc1413.c 1999/12/09 12:05:04 1.31
  +++ rfc1413.c 1999/12/09 17:05:28 1.32
  @@ -154,7 +154,7 @@
   
   /* send query to server. Handle short write. */
   #ifdef CHARSET_EBCDIC
  -ebcdic2ascii(buffer, buffer, buflen);
  +ebcdic2ascii(buffer, buffer, buflen);
   #endif
   i = 0;
   while(i  strlen(buffer)) {
  @@ -212,7 +212,7 @@
   
   /* RFC1413_USERLEN = 512 */
   #ifdef CHARSET_EBCDIC
  -ascii2ebcdic(buffer, buffer, (size_t)i);
  +ascii2ebcdic(buffer, buffer, (size_t)i);
   #endif
   if (sscanf(buffer, %u , %u : USERID :%*[^:]:%512s, rmt_port, 
our_port,
   user) != 3 || ntohs(rmt_sin-sin_port) != rmt_port
  
  
  


cvs commit: apache-1.3/src/main rfc1413.c

1999-07-30 Thread martin
martin  99/07/30 06:42:26

  Modified:src/main rfc1413.c
  Log:
  Change for EBCDIC platforms (TPF and BS2000) to
  correctly deal with ASCII/EBCDIC conversions in ident query.
  
  (This is the most obvious bug so I commited it right away. -martin)
  
  Submitted by: David McCreedy [EMAIL PROTECTED]
  Reviewed by: Martin Kraemer
  
  Revision  ChangesPath
  1.28  +6 -0  apache-1.3/src/main/rfc1413.c
  
  Index: rfc1413.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/main/rfc1413.c,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- rfc1413.c 1999/01/01 19:04:53 1.27
  +++ rfc1413.c 1999/07/30 13:42:25 1.28
  @@ -147,6 +147,9 @@
ntohs(our_sin-sin_port));
   
   /* send query to server. Handle short write. */
  +#ifdef CHARSET_EBCDIC
  +ebcdic2ascii(buffer, buffer, buflen);
  +#endif
   i = 0;
   while(i  strlen(buffer)) {
   int j;
  @@ -183,6 +186,9 @@
   }
   
   /* RFC1413_USERLEN = 512 */
  +#ifdef CHARSET_EBCDIC
  +ascii2ebcdic(buffer, buffer, (size_t)i);
  +#endif
   if (sscanf(buffer, %u , %u : USERID :%*[^:]:%512s, rmt_port, 
our_port,
   user) != 3 || ntohs(rmt_sin-sin_port) != rmt_port
|| ntohs(our_sin-sin_port) != our_port)
  
  
  


cvs commit: apache-1.3/src/main rfc1413.c

1999-07-30 Thread martin
martin  99/07/30 07:06:57

  Modified:src/main rfc1413.c
  Log:
  An important bit I missed in the previous commit: When looking for
  the end-of-line, we have to scan for '\012' (instead of '\n'
  which on EBCDIC platforms differs from '\012') because at this
  stage the line is still raw ASCII.
  Thanks to David for reminding me of the omission!
  
  Submitted by: David McCreedy [EMAIL PROTECTED]
  
  Revision  ChangesPath
  1.29  +6 -2  apache-1.3/src/main/rfc1413.c
  
  Index: rfc1413.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/main/rfc1413.c,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- rfc1413.c 1999/07/30 13:42:25 1.28
  +++ rfc1413.c 1999/07/30 14:06:56 1.29
  @@ -171,8 +171,12 @@
*/
   
   i = 0;
  -memset(buffer, 0, sizeof(buffer));
  -while((cp = strchr(buffer, '\n')) == NULL  i  sizeof(buffer) - 1) {
  +memset(buffer, '\0', sizeof(buffer));
  +/*
  + * Note that the strchr function below checks for 10 instead of '\n'
  + * this allows it to work on both ASCII and EBCDIC machines.
  + */
  +while((cp = strchr(buffer, '\012')) == NULL  i  sizeof(buffer) - 1) {
   int j;
j = read(sock, buffer+i, (sizeof(buffer) - 1) - i);
if (j  0  errno != EINTR) {
  
  
  


cvs commit: apache-1.3/src/main rfc1413.c

1998-05-18 Thread brian
brian   98/05/18 14:56:12

  Modified:src  CHANGES
   src/main rfc1413.c
  Log:
  Improve RFC1413 support.
  See Message-ID: [EMAIL PROTECTED]
  
  Revision  ChangesPath
  1.852 +2 -0  apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===
  RCS file: /export/home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.851
  retrieving revision 1.852
  diff -u -r1.851 -r1.852
  --- CHANGES   1998/05/18 11:24:19 1.851
  +++ CHANGES   1998/05/18 21:56:06 1.852
  @@ -1,5 +1,7 @@
   Changes with Apache 1.3b7
   
  +  *) Improve RFC1413 support. [Bob Beck [EMAIL PROTECTED]]
  +
 *) Fix support script `dbmmanage': It was unable to handle some sort
of passwords, especially passwords with 0 chars.
[Ralf S. Engelschall] PR#2242
  
  
  
  1.24  +32 -18apache-1.3/src/main/rfc1413.c
  
  Index: rfc1413.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/main/rfc1413.c,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- rfc1413.c 1998/04/11 12:00:31 1.23
  +++ rfc1413.c 1998/05/18 21:56:11 1.24
  @@ -103,7 +103,8 @@
   /* bind_connect - bind both ends of a socket */
   /* Ambarish fix this. Very broken */
   static int get_rfc1413(int sock, const struct sockaddr_in *our_sin,
  -  const struct sockaddr_in *rmt_sin, char user[256], server_rec *srv)
  +const struct sockaddr_in *rmt_sin, 
  +char user[RFC1413_USERLEN+1], server_rec *srv)
   {
   struct sockaddr_in rmt_query_sin, our_query_sin;
   unsigned int rmt_port, our_port;
  @@ -144,30 +145,43 @@
   /* send the data */
   buflen = ap_snprintf(buffer, sizeof(buffer), %u,%u\r\n, 
ntohs(rmt_sin-sin_port),
ntohs(our_sin-sin_port));
  -do
  - i = write(sock, buffer, buflen);
  -while (i == -1  errno == EINTR);
  -if (i == -1) {
  - ap_log_error(APLOG_MARK, APLOG_CRIT, srv,
  - write: rfc1413: error sending request);
  - return -1;
  +
  +/* send query to server. Handle short write. */
  +i = 0;
  +while(i  strlen(buffer)) {
  +int j;
  + j = write(sock, buffer+i, (strlen(buffer+i)));
  + if (j  0  errno != EINTR) {
  +   ap_log_error(APLOG_MARK, APLOG_CRIT, srv,
  +write: rfc1413: error sending request);
  +   return -1;
  + }
  + else if (j  0) {
  + i+=j; 
  + }
   }
   
   /*
  - * Read response from server. We assume that all the data
  - * comes in a single packet.
  + * Read response from server. - the response should be newline 
  + * terminated according to rfc - make sure it doesn't stomp it's
  + * way out of the buffer.
*/
   
  -do
  - i = read(sock, buffer, RFC1413_MAXDATA);
  -while (i == -1  errno == EINTR);
  -if (i == -1) {
  - ap_log_error(APLOG_MARK, APLOG_CRIT, srv,
  - read: rfc1413: error reading response);
  - return -1;
  +i = 0;
  +memset(buffer, 0, sizeof(buffer));
  +while((cp = strchr(buffer, '\n')) == NULL  i  sizeof(buffer) - 1) {
  +int j;
  + j = read(sock, buffer+i, (sizeof(buffer) - 1) - i);
  + if (j  0  errno != EINTR) {
  +ap_log_error(APLOG_MARK, APLOG_CRIT, srv,
  + read: rfc1413: error reading response);
  +return -1;
  + }
  + else if (j  0) {
  + i+=j; 
  + }
   }
   
  -buffer[i] = '\0';
   /* RFC1413_USERLEN = 512 */
   if (sscanf(buffer, %u , %u : USERID :%*[^:]:%512s, rmt_port, 
our_port,
   user) != 3 || ntohs(rmt_sin-sin_port) != rmt_port
  
  
  


cvs commit: apache-1.3/src/main rfc1413.c

1998-03-29 Thread dgaudet
dgaudet 98/03/29 01:33:25

  Modified:src/main rfc1413.c
  Log:
  a little more efficient
  
  Revision  ChangesPath
  1.21  +3 -2  apache-1.3/src/main/rfc1413.c
  
  Index: rfc1413.c
  ===
  RCS file: /export/home/cvs/apache-1.3/src/main/rfc1413.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- rfc1413.c 1998/03/17 08:21:03 1.20
  +++ rfc1413.c 1998/03/29 09:33:24 1.21
  @@ -106,6 +106,7 @@
   int i;
   char *cp;
   char buffer[RFC1413_MAXDATA + 1];
  +int buflen;
   
   /*
* Bind the local and remote ends of the query socket to the same
  @@ -137,10 +138,10 @@
return -1;
   
   /* send the data */
  -ap_snprintf(buffer, sizeof(buffer), %u,%u\r\n, 
ntohs(rmt_sin-sin_port),
  +buflen = ap_snprintf(buffer, sizeof(buffer), %u,%u\r\n, 
ntohs(rmt_sin-sin_port),
ntohs(our_sin-sin_port));
   do
  - i = write(sock, buffer, strlen(buffer));
  + i = write(sock, buffer, buflen);
   while (i == -1  errno == EINTR);
   if (i == -1) {
aplog_error(APLOG_MARK, APLOG_CRIT, srv,