You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@hyperreal.org on 1999/08/30 17:20:17 UTC

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

rbb         99/08/30 08:20:16

  Modified:    src/lib/apr configure.in
               src/lib/apr/include apr_config.h.in
               src/lib/apr/lib apr_getpass.c
               src/lib/apr/time/unix time.c
  Log:
  More BeOS fixes.
  Submitted by:  David Reid
  
  Revision  Changes    Path
  1.6       +6 -0      apache-2.0/src/lib/apr/configure.in
  
  Index: configure.in
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/configure.in,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- configure.in	1999/08/30 14:44:46	1.5
  +++ configure.in	1999/08/30 15:20:01	1.6
  @@ -118,6 +118,7 @@
   dnl Checks for header files.
   AC_HEADER_STDC
   
  +AC_CHECK_HEADERS(conio.h)
   AC_CHECK_HEADERS(crypt.h)
   AC_CHECK_HEADERS(ctype.h)
   AC_CHECK_HEADERS(dir.h)
  @@ -145,6 +146,7 @@
   AC_CHECK_HEADERS(string.h)
   AC_CHECK_HEADERS(sysapi.h)
   AC_CHECK_HEADERS(sysgtime.h)
  +AC_CHECK_HEADERS(termios.h)
   AC_CHECK_HEADERS(time.h)
   AC_CHECK_HEADERS(sys/time.h)
   AC_CHECK_HEADERS(sys/times.h)
  @@ -164,12 +166,14 @@
   AC_CHECK_HEADERS(sys/param.h)
   AC_CHECK_HEADERS(sys/resource.h)
   AC_CHECK_HEADERS(sys/select.h)
  +AC_CHECK_HEADERS(sys/signal.h)
   AC_CHECK_HEADERS(sys/socket.h)
   AC_CHECK_HEADERS(sys/stat.h)
   AC_CHECK_HEADERS(sys/types.h)
   AC_CHECK_HEADERS(sys/wait.h)
   
   AC_CHECK_HEADERS(pthread.h)
  +AC_CHECK_HEADERS(kernel/OS.h)
   
   dnl Checks for typedefs, structures, and compiler characteristics.
   AC_C_CONST
  @@ -193,6 +197,8 @@
   dnl Checks for library functions.
   AC_CHECK_FUNCS(strcasecmp stricmp poll setsid)
   AC_CHECK_FUNCS(sigaction writev)
  +AC_CHECK_FUNC(getpass)
  +AC_CHECK_FUNC(_getch)
   
   dnl Start building stuff from our information
   AC_SUBST(LDLIBS)
  
  
  
  1.5       +6 -0      apache-2.0/src/lib/apr/include/apr_config.h.in
  
  Index: apr_config.h.in
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/include/apr_config.h.in,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- apr_config.h.in	1999/08/19 13:31:10	1.4
  +++ apr_config.h.in	1999/08/30 15:20:06	1.5
  @@ -247,6 +247,9 @@
   /* Define if you have the <sysgtime.h> header file.  */
   #undef HAVE_SYSGTIME_H
   
  +/* Define if you have the <termios.h> header file.  */
  +#undef HAVE_TERMIOS_H
  +
   /* Define if you have the <time.h> header file.  */
   #undef HAVE_TIME_H
   
  @@ -267,6 +270,9 @@
   
   /* Define if you have the dl library (-ldl).  */
   #undef HAVE_LIBDL
  +
  +/* Define if you have the kernel/OS.h header file (BEOS) */
  +#undef HAVE_KERNEL_OS_H
   
   /* Define if you have the pthread library (-lpthread).  */
   #undef HAVE_LIBPTHREAD
  
  
  
  1.2       +52 -4     apache-2.0/src/lib/apr/lib/apr_getpass.c
  
  Index: apr_getpass.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/lib/apr_getpass.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- apr_getpass.c	1999/08/17 15:59:40	1.1
  +++ apr_getpass.c	1999/08/30 15:20:12	1.2
  @@ -74,6 +74,10 @@
   #include <conio.h>
   #endif
   
  +#if defined(HAVE_TERMIOS_H) && !defined(HAVE_GETPASS)
  +#include <termios.h>
  +#endif
  +
   #ifndef CHARSET_EBCDIC
   #define LF 10
   #define CR 13
  @@ -85,8 +89,12 @@
   #define MAX_STRING_LEN 256
   
   #define ERR_OVERFLOW 5
  +
  +#ifndef HAVE_GETPASS
  +
  +/* MPE, Win32 and BeOS all lack a native getpass() */
   
  -#ifdef MPE
  +#if !defined(HAVE_TERMIOS_H) && !defined(WIN32)
   /*
    * MPE lacks getpass() and a way to suppress stdin echo.  So for now, just
    * issue the prompt and read the results with echo.  (Ugh).
  @@ -106,9 +114,46 @@
       return (char *) &password;
   }
   
  -#endif
  +#elif defined (HAVE_TERMIOS_H)
  +static char *getpass(const char *prompt)
  +{
  +    struct termios attr;
  +    static char password[MAX_STRING_LEN];
  +    int n=0;
  +    fputs(prompt, stderr);
  +    fflush(stderr);
  +	
  +    if (tcgetattr(STDIN_FILENO, &attr) != 0)
  +        return NULL;
  +	attr.c_lflag &= ~(ECHO);
  +    
  +	if (tcsetattr(STDIN_FILENO, TCSAFLUSH, &attr) != 0)
  +		return NULL;
  +    while ((password[n] = getchar()) != '\n') {
  +        if (password[n] >= ' ' && password[n] <= '~') {
  +            n++;
  +        } else {
  +            fprintf(stderr,"\n");
  +            fputs(prompt, stderr);
  +            fflush(stderr);
  +            n = 0;
  +        }
  +    }
  + 
  +    password[n] = '\0';
  +    fprintf(stderr, "********************\n");
  +
  +    if (n > (MAX_STRING_LEN - 1)) {
  +        password[MAX_STRING_LEN - 1] = '\0';
  +    }
  +
  +    attr.c_lflag |= ECHO;
  +    tcsetattr(STDIN_FILENO, TCSANOW, &attr);
  +    return (char*) &password;
  +}
  +
  +#else
   
  -#ifdef WIN32
   /*
    * Windows lacks getpass().  So we'll re-implement it here.
    */
  @@ -141,7 +186,10 @@
   
       return (char *) &password;
   }
  -#endif
  +
  +#endif /* no getchar or _getch */
  +
  +#endif /* no getpass */
   
   /*
    * Use the OS getpass() routine (or our own) to obtain a password from
  
  
  
  1.2       +1 -1      apache-2.0/src/lib/apr/time/unix/time.c
  
  Index: time.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/time/unix/time.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- time.c	1999/08/17 15:59:53	1.1
  +++ time.c	1999/08/30 15:20:14	1.2
  @@ -163,7 +163,7 @@
   }
   
   /* ***APRDOC********************************************************
  - * ap_status_t ap_get_os_time(ap_time_t *, ap_os_time_t *)
  + * ap_status_t ap_get_os_time(ap_time_t *, ap_os_time_t **)
    *    Convert from apr time type to OS specific time value
    * arg 1) The time value to convert.
    * arg 2) The OS specific value to convert to.