rbb         99/08/11 07:44:18

  Modified:    apr/file_io/win32 file_io.def fileio.h open.c readwrite.c
               apr/lib  apr_getpass.c lib.def lib.dsp
               apr/test htdigest.c test.dsw
  Added:       apr/test htdigest.dsp
  Log:
  htdigest is now X-platform.  :)
  
  Revision  Changes    Path
  1.5       +4 -0      apache-apr/apr/file_io/win32/file_io.def
  
  Index: file_io.def
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/file_io/win32/file_io.def,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- file_io.def       1999/07/02 19:09:15     1.4
  +++ file_io.def       1999/08/11 14:44:05     1.5
  @@ -33,4 +33,8 @@
       ap_set_filedata   @26
       ap_get_os_file   @27
       ap_get_os_dir   @28
  +    ap_putc   @29
  +    ap_getc   @30
  +    ap_fprintf   @31
  +    ap_eof   @32
        
  
  
  
  1.2       +1 -0      apache-apr/apr/file_io/win32/fileio.h
  
  Index: fileio.h
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/file_io/win32/fileio.h,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- fileio.h  1999/06/03 19:43:44     1.1
  +++ fileio.h  1999/08/11 14:44:07     1.2
  @@ -88,6 +88,7 @@
        char *lowerdemonfname;
       int buffered;
        int append;
  +    int eof_hit;
   /*    mode_t protection;
       uid_t user;
       gid_t group;*/
  
  
  
  1.5       +15 -12    apache-apr/apr/file_io/win32/open.c
  
  Index: open.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/file_io/win32/open.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- open.c    1999/07/06 17:36:59     1.4
  +++ open.c    1999/08/11 14:44:07     1.5
  @@ -82,6 +82,7 @@
   {
       DWORD oflags = 0;
        DWORD createflags = 0;
  +    DWORD theerror;
       /*mode_t mode = get_fileperms(perm);*/
   
       (*dafile) = (struct file_t *)ap_palloc(cont, sizeof(struct file_t));
  @@ -106,10 +107,10 @@
   
        (*dafile)->demonfname = canonical_filename((*dafile)->cntxt, fname);
        (*dafile)->lowerdemonfname = strlwr((*dafile)->demonfname);
  -
  +    
  +    createflags = OPEN_ALWAYS;     
       if (flag & APR_CREATE) {
  -        createflags = OPEN_ALWAYS; 
  -         if (flag & APR_EXCL) {
  +        if (flag & APR_EXCL) {
                        createflags = CREATE_NEW;
                }
       }
  @@ -133,17 +134,11 @@
                                                   NULL, createflags, 
FILE_ATTRIBUTE_NORMAL, 0);
   
       if ((*dafile)->filehand == INVALID_HANDLE_VALUE) {
  +        theerror = GetLastError();
           return APR_EEXIST;
  -    }
  -
  -    if (ap_getfileinfo(*dafile) == APR_SUCCESS) {
  -         ap_register_cleanup((*dafile)->cntxt, (void *)(*dafile), 
file_cleanup, NULL);
  -        return APR_SUCCESS;
       }
  -    else {
  -        (*dafile)->filehand = INVALID_HANDLE_VALUE;
  -        return APR_ENOSTAT;
  -    }
  +    (*dafile)->eof_hit = 0;
  +    return APR_SUCCESS;
   }
   
   ap_status_t ap_close(struct file_t *file)
  @@ -190,3 +185,11 @@
       (*file)->filehand = *thefile;
       return APR_SUCCESS;
   }    
  +
  +ap_status_t ap_eof(ap_file_t *fptr)
  +{
  +    if (fptr->eof_hit == 1) {
  +        return APR_EOF;
  +    }
  +    APR_SUCCESS;
  +}   
  
  
  
  1.4       +60 -0     apache-apr/apr/file_io/win32/readwrite.c
  
  Index: readwrite.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/file_io/win32/readwrite.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- readwrite.c       1999/08/08 21:19:36     1.3
  +++ readwrite.c       1999/08/11 14:44:08     1.4
  @@ -119,3 +119,63 @@
   }
   */
   
  +ap_status_t ap_putc(ap_file_t *thefile, char ch)
  +{
  +    DWORD bwrote;
  +
  +    if (WriteFile(thefile->filehand, &ch, 1, &bwrote, NULL)) {
  +        return APR_EEXIST;
  +    }
  +    return APR_SUCCESS; 
  +}
  +
  +ap_status_t ap_getc(ap_file_t *thefile, char *ch)
  +{
  +    DWORD bread;
  +    if (!ReadFile(thefile->filehand, ch, 1, &bread, NULL)) {
  +        return APR_EEXIST;
  +    }
  +    if (bread == 0) {
  +        thefile->eof_hit = TRUE;
  +        return APR_EOF;
  +    }
  +    return APR_SUCCESS; 
  +}
  +
  +static int printf_flush(ap_vformatter_buff_t *vbuff)
  +{
  +    /* I would love to print this stuff out to the file, but I will
  +     * get that working later.  :)  For now, just return.
  +     */
  +    return -1;
  +}
  +
  +API_EXPORT(int) ap_fprintf(struct file_t *fptr, const char *format, ...)
  +{
  +    int cc;
  +    va_list ap;
  +    ap_vformatter_buff_t vbuff;
  +    char *buf;
  +    int len;
  +
  +    buf = malloc(HUGE_STRING_LEN);
  +    if (buf == NULL) {
  +        return 0;
  +    }
  +    /* save one byte for nul terminator */
  +    vbuff.curpos = buf;
  +    vbuff.endpos = buf + len - 1;
  +    va_start(ap, format);
  +#if 0
  +    cc = ap_vformatter(printf_flush, &vbuff, format, ap);
  +    va_end(ap);
  +    *vbuff.curpos = '\0';
  +#endif
  +    vsprintf(buf, format, ap);
  +    len = strlen(buf);
  +    cc = ap_write(fptr, buf, &len);
  +    va_end(ap);
  +    return (cc == -1) ? len : cc;
  +}
  +
  +
  
  
  
  1.2       +4 -1      apache-apr/apr/lib/apr_getpass.c
  
  Index: apr_getpass.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/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/04 17:52:01     1.1
  +++ apr_getpass.c     1999/08/11 14:44:11     1.2
  @@ -60,8 +60,11 @@
    * wrapper for the system library's getpass() routine; otherwise, we
    * use one we define ourselves.
    */
  -
  +#ifndef WIN32
   #include "apr_config.h"
  +#else
  +#include "apr_win.h"
  +#endif
   #include "apr_errno.h"
   #include <sys/types.h>
   #include <errno.h>
  
  
  
  1.3       +1 -0      apache-apr/apr/lib/lib.def
  
  Index: lib.def
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/lib/lib.def,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- lib.def   1999/06/03 19:43:53     1.2
  +++ lib.def   1999/08/11 14:44:12     1.3
  @@ -57,3 +57,4 @@
        ap_vformatter   @55
        ap_snprintf   @56
        ap_vsnprintf   @57
  +    ap_getpass   @58
  
  
  
  1.5       +4 -0      apache-apr/apr/lib/lib.dsp
  
  Index: lib.dsp
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/lib/lib.dsp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- lib.dsp   1999/08/08 21:19:39     1.4
  +++ lib.dsp   1999/08/11 14:44:13     1.5
  @@ -99,6 +99,10 @@
   # End Source File
   # Begin Source File
   
  +SOURCE=.\apr_getpass.c
  +# End Source File
  +# Begin Source File
  +
   SOURCE=.\apr_md5.c
   # End Source File
   # Begin Source File
  
  
  
  1.2       +8 -10     apache-apr/apr/test/htdigest.c
  
  Index: htdigest.c
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/test/htdigest.c,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- htdigest.c        1999/08/04 17:52:17     1.1
  +++ htdigest.c        1999/08/11 14:44:16     1.2
  @@ -66,7 +66,6 @@
    * by Alexei Kosut, based on htpasswd.c, by Rob McCool
    */
   
  -#include "apr_config.h"
   #include "apr_lib.h"
   #include "apr_md5.h"
   #include <sys/types.h>
  @@ -78,7 +77,6 @@
   
   #ifdef WIN32
   #include <conio.h>
  -#define unlink _unlink
   #endif
   
   #ifdef CHARSET_EBCDIC
  @@ -92,6 +90,7 @@
   #define MAX_STRING_LEN 256
   
   char *tn;
  +ap_context_t *cntxt;
   
   static void getword(char *word, char *line, char stop)
   {
  @@ -162,7 +161,7 @@
       if (strcmp(pwin, pwv) != 0) {
        fprintf(stderr, "They don't match, sorry.\n");
        if (tn) {
  -         unlink(tn);
  +         ap_remove_file(cntxt, tn);
        }
        exit(1);
       }
  @@ -193,7 +192,7 @@
   {
       fprintf(stderr, "Interrupted.\n");
       if (tn)
  -     unlink(tn);
  +     ap_remove_file(cntxt, tn);
       exit(1);
   }
   
  @@ -208,16 +207,15 @@
       char x[MAX_STRING_LEN];
       char command[MAX_STRING_LEN];
       int found;
  -    ap_context_t *context;
       
  -    ap_create_context(NULL, NULL, &context);
  +    ap_create_context(NULL, NULL, &cntxt);
   
       tn = NULL;
       signal(SIGINT, (void (*)(int)) interrupted);
       if (argc == 5) {
        if (strcmp(argv[1], "-c"))
            usage();
  -     if (ap_open(context, argv[2], APR_WRITE | APR_CREATE, -1, &tfp) != 
APR_SUCCESS) {
  +     if (ap_open(cntxt, argv[2], APR_WRITE | APR_CREATE, -1, &tfp) != 
APR_SUCCESS) {
            fprintf(stderr, "Could not open passwd file %s for writing.\n",
                    argv[2]);
            perror("ap_open");
  @@ -232,12 +230,12 @@
        usage();
   
       tn = tmpnam(NULL);
  -    if (ap_open(context, tn, APR_WRITE | APR_CREATE, -1, &tfp)!= 
APR_SUCCESS) {
  +    if (ap_open(cntxt, tn, APR_WRITE | APR_CREATE, -1, &tfp)!= APR_SUCCESS) {
        fprintf(stderr, "Could not open temp file.\n");
        exit(1);
       }
   
  -    if (ap_open(context, argv[1], APR_READ, -1, &f) != APR_SUCCESS) {
  +    if (ap_open(cntxt, argv[1], APR_READ, -1, &f) != APR_SUCCESS) {
        fprintf(stderr,
                "Could not open passwd file %s for reading.\n", argv[1]);
        fprintf(stderr, "Use -c option to create new one.\n");
  @@ -277,6 +275,6 @@
       sprintf(command, "cp %s %s", tn, argv[1]);
   #endif
       system(command);
  -    unlink(tn);
  +    ap_remove_file(cntxt, tn);
       return 0;
   }
  
  
  
  1.6       +12 -0     apache-apr/apr/test/test.dsw
  
  Index: test.dsw
  ===================================================================
  RCS file: /home/cvs/apache-apr/apr/test/test.dsw,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- test.dsw  1999/08/08 21:19:48     1.5
  +++ test.dsw  1999/08/11 14:44:17     1.6
  @@ -27,6 +27,18 @@
   
   
###############################################################################
   
  +Project: "htdigest"=".\htdigest.dsp" - Package Owner=<4>
  +
  +Package=<5>
  +{{{
  +}}}
  +
  +Package=<4>
  +{{{
  +}}}
  +
  
+###############################################################################
  +
   Project: "server"=".\server.dsp" - Package Owner=<4>
   
   Package=<5>
  
  
  
  1.1                  apache-apr/apr/test/htdigest.dsp
  
  Index: htdigest.dsp
  ===================================================================
  # Microsoft Developer Studio Project File - Name="htdigest" - Package 
Owner=<4>
  # Microsoft Developer Studio Generated Build File, Format Version 5.00
  # ** DO NOT EDIT **
  
  # TARGTYPE "Win32 (x86) Console Application" 0x0103
  
  CFG=htdigest - Win32 Debug
  !MESSAGE This is not a valid makefile. To build this project using NMAKE,
  !MESSAGE use the Export Makefile command and run
  !MESSAGE 
  !MESSAGE NMAKE /f "htdigest.mak".
  !MESSAGE 
  !MESSAGE You can specify a configuration when running NMAKE
  !MESSAGE by defining the macro CFG on the command line. For example:
  !MESSAGE 
  !MESSAGE NMAKE /f "htdigest.mak" CFG="htdigest - Win32 Debug"
  !MESSAGE 
  !MESSAGE Possible choices for configuration are:
  !MESSAGE 
  !MESSAGE "htdigest - Win32 Release" (based on\
   "Win32 (x86) Console Application")
  !MESSAGE "htdigest - Win32 Debug" (based on "Win32 (x86) Console Application")
  !MESSAGE 
  
  # Begin Project
  # PROP Scc_ProjName ""
  # PROP Scc_LocalPath ""
  CPP=cl.exe
  RSC=rc.exe
  
  !IF  "$(CFG)" == "htdigest - Win32 Release"
  
  # PROP BASE Use_MFC 0
  # PROP BASE Use_Debug_Libraries 0
  # PROP BASE Output_Dir "Release"
  # PROP BASE Intermediate_Dir "Release"
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 0
  # PROP Use_Debug_Libraries 0
  # PROP Output_Dir "Release"
  # PROP Intermediate_Dir "Release"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D 
"_MBCS" /YX /FD /c
  # ADD CPP /nologo /W3 /GX /O2 /I "..\include" /I "..\..\include" /D "WIN32" 
/D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD BASE RSC /l 0x409 /d "NDEBUG"
  # ADD RSC /l 0x409 /d "NDEBUG"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib /nologo /subsystem:console /machine:I386
  # ADD LINK32 ..\lib\Debug\lib.lib ..\misc\win32\Debug\misc.lib 
..\threadproc\win32\Debug\threadproc.lib ..\file_io\win32\Debug\file_io.lib 
..\time\win32\Debug\time.lib ..\locks\win32\Debug\locks.lib 
..\network_io\win32\Debug\network_io.lib ..\signal\win32\Debug\signal.lib 
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib 
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo 
/subsystem:console /machine:I386
  
  !ELSEIF  "$(CFG)" == "htdigest - Win32 Debug"
  
  # PROP BASE Use_MFC 0
  # PROP BASE Use_Debug_Libraries 1
  # PROP BASE Output_Dir "htdigest"
  # PROP BASE Intermediate_Dir "htdigest"
  # PROP BASE Target_Dir ""
  # PROP Use_MFC 0
  # PROP Use_Debug_Libraries 1
  # PROP Output_Dir "htdigest"
  # PROP Intermediate_Dir "htdigest"
  # PROP Ignore_Export_Lib 0
  # PROP Target_Dir ""
  # ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D 
"_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD CPP /nologo /W3 /Gm /GX /Zi /Od /I "..\include" /I "..\..\include" /D 
"WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
  # ADD BASE RSC /l 0x409 /d "_DEBUG"
  # ADD RSC /l 0x409 /d "_DEBUG"
  BSC32=bscmake.exe
  # ADD BASE BSC32 /nologo
  # ADD BSC32 /nologo
  LINK32=link.exe
  # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib 
advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib 
odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
  # ADD LINK32 ..\lib\Debug\lib.lib ..\misc\win32\Debug\misc.lib 
..\threadproc\win32\Debug\threadproc.lib ..\file_io\win32\Debug\file_io.lib 
..\time\win32\Debug\time.lib ..\locks\win32\Debug\locks.lib 
..\network_io\win32\Debug\network_io.lib ..\signal\win32\Debug\signal.lib 
kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib 
shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo 
/subsystem:console /debug /machine:I386 /pdbtype:sept
  
  !ENDIF 
  
  # Begin Target
  
  # Name "htdigest - Win32 Release"
  # Name "htdigest - Win32 Debug"
  # Begin Source File
  
  SOURCE=.\htdigest.c
  # End Source File
  # End Target
  # End Project
  
  
  

Reply via email to