Andreas Pflug wrote:
> Hm,
> 
> I don't see any reaction on my posts from last sunday, neither in this 
> list nor in unapplied patches, did they get lost?
> If so, attached is a combined patch for all three problems with libpq 
> compiling under win32.


I am working through my mail queue.  Sorry.  They are not lost.

---------------------------------------------------------------------------




> 
> Regards,
> Andreas
> 

> cvs diff -u interfaces\libpq\fe-connect.c interfaces\libpq\fe-exec.c 
> interfaces\libpq\fe-secure.c interfaces\libpq\libpq-int.h include\pg_config.h.win32 
> interfaces\libpq\win32.c interfaces\libpq\win32.mak (in directory C:\postgresql\src\)
> Index: interfaces/libpq/fe-connect.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/fe-connect.c,v
> retrieving revision 1.259
> diff -u -r1.259 fe-connect.c
> --- interfaces/libpq/fe-connect.c     4 Aug 2003 02:40:16 -0000       1.259
> +++ interfaces/libpq/fe-connect.c     31 Aug 2003 23:22:25 -0000
> @@ -48,7 +48,7 @@
>  
>  /* For FNCTL_NONBLOCK */
>  #if defined(WIN32) || defined(__BEOS__)
> -long         ioctlsocket_ret;
> +long         ioctlsocket_ret=1;
>  #endif
>  
>  #define PGPASSFILE ".pgpass"
>  
> Index: interfaces/libpq/fe-exec.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/fe-exec.c,v
> retrieving revision 1.146
> diff -u -r1.146 fe-exec.c
> --- interfaces/libpq/fe-exec.c        27 Aug 2003 00:33:34 -0000      1.146
> +++ interfaces/libpq/fe-exec.c        31 Aug 2003 23:22:28 -0000
> @@ -2304,7 +2304,7 @@
>       if (buffer == NULL)
>               return NULL;
>  
> -     for (i = j = buflen = 0; i < strtextlen;)
> +     for (i = j = buflen = 0; i < (int)strtextlen;)
>       {
>               switch (strtext[i])
>               {
> Index: interfaces/libpq/fe-secure.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/fe-secure.c,v
> retrieving revision 1.29
> diff -u -r1.29 fe-secure.c
> --- interfaces/libpq/fe-secure.c      4 Aug 2003 17:25:14 -0000       1.29
> +++ interfaces/libpq/fe-secure.c      31 Aug 2003 23:22:29 -0000
> @@ -312,7 +312,7 @@
>                                               printfPQExpBuffer(&conn->errorMessage,
>                                                                                 
> libpq_gettext("SSL SYSCALL error: EOF detected\n"));
>  
> -                                             SOCK_ERRNO = ECONNRESET;
> +                                             SOCK_ERRNO_SET(ECONNRESET);
>                                               n = -1;
>                                       }
>                                       break;
> @@ -322,7 +322,7 @@
>                                         libpq_gettext("SSL error: %s\n"), 
> SSLerrmessage());
>                               /* fall through */
>                       case SSL_ERROR_ZERO_RETURN:
> -                             SOCK_ERRNO = ECONNRESET;
> +                             SOCK_ERRNO_SET(ECONNRESET);
>                               n = -1;
>                               break;
>                       default:
> @@ -383,7 +383,7 @@
>                                       {
>                                               printfPQExpBuffer(&conn->errorMessage,
>                                                                                 
> libpq_gettext("SSL SYSCALL error: EOF detected\n"));
> -                                             SOCK_ERRNO = ECONNRESET;
> +                                             SOCK_ERRNO_SET(ECONNRESET);
>                                               n = -1;
>                                       }
>                                       break;
> @@ -393,7 +393,7 @@
>                                         libpq_gettext("SSL error: %s\n"), 
> SSLerrmessage());
>                               /* fall through */
>                       case SSL_ERROR_ZERO_RETURN:
> -                             SOCK_ERRNO = ECONNRESET;
> +                             SOCK_ERRNO_SET(ECONNRESET);
>                               n = -1;
>                               break;
>                       default:
> @@ -544,6 +544,9 @@
>  static DH  *
>  load_dh_file(int keylength)
>  {
> +#ifdef WIN32
> +    return NULL;
> +#else
>       char            pwdbuf[BUFSIZ];
>       struct passwd pwdstr;
>       struct passwd *pwd = NULL;
> @@ -558,6 +561,7 @@
>       /* attempt to open file.  It's not an error if it doesn't exist. */
>       snprintf(fnbuf, sizeof fnbuf, "%s/.postgresql/dh%d.pem",
>                        pwd->pw_dir, keylength);
> +
>       if ((fp = fopen(fnbuf, "r")) == NULL)
>               return NULL;
>  
> @@ -583,6 +587,7 @@
>       }
>  
>       return dh;
> +#endif
>  }
>  
>  /*
> @@ -686,6 +691,9 @@
>  static int
>  client_cert_cb(SSL *ssl, X509 **x509, EVP_PKEY **pkey)
>  {
> +#ifdef WIN32
> +   return 0;
> +#else
>       char            pwdbuf[BUFSIZ];
>       struct passwd pwdstr;
>       struct passwd *pwd = NULL;
> @@ -785,6 +793,7 @@
>       }
>  
>       return 1;
> +#endif
>  }
>  
>  /*
> @@ -793,11 +802,13 @@
>  static int
>  initialize_SSL(PGconn *conn)
>  {
> +#ifndef WIN32
>       struct stat buf;
>       char            pwdbuf[BUFSIZ];
>       struct passwd pwdstr;
>       struct passwd *pwd = NULL;
>       char            fnbuf[2048];
> +#endif
>  
>       if (!SSL_context)
>       {
> @@ -813,6 +824,7 @@
>               }
>       }
>  
> +#ifndef WIN32
>       if (pqGetpwuid(getuid(), &pwdstr, pwdbuf, sizeof(pwdbuf), &pwd) == 0)
>       {
>               snprintf(fnbuf, sizeof fnbuf, "%s/.postgresql/root.crt",
> @@ -849,6 +861,7 @@
>  
>       /* set up mechanism to provide client certificate, if available */
>       SSL_CTX_set_client_cert_cb(SSL_context, client_cert_cb);
> +#endif
>  
>       return 0;
>  }
> Index: interfaces/libpq/libpq-int.h
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/libpq-int.h,v
> retrieving revision 1.81
> diff -u -r1.81 libpq-int.h
> --- interfaces/libpq/libpq-int.h      13 Aug 2003 18:56:21 -0000      1.81
> +++ interfaces/libpq/libpq-int.h      31 Aug 2003 23:22:30 -0000
> @@ -465,9 +465,11 @@
>  #ifdef WIN32
>  #define SOCK_ERRNO (WSAGetLastError())
>  #define SOCK_STRERROR winsock_strerror
> +#define SOCK_ERRNO_SET(e) WSASetLastError(e)
>  #else
>  #define SOCK_ERRNO errno
>  #define SOCK_STRERROR pqStrerror
> +#define SOCK_ERRNO_SET(e) errno=e
>  #endif
>  
>  #endif   /* LIBPQ_INT_H */
> Index: interfaces/libpq/win32.c
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/win32.c,v
> retrieving revision 1.6
> diff -u -r1.6 win32.c
> --- interfaces/libpq/win32.c  4 Aug 2003 02:40:20 -0000       1.6
> +++ interfaces/libpq/win32.c  31 Aug 2003 23:22:31 -0000
> @@ -312,7 +312,7 @@
>       {
>               strerrbuf[buflen - 1] = '\0';
>               offs = strlen(strerrbuf);
> -             if (offs > buflen - 64)
> +             if (offs > (int)buflen - 64)
>                       offs = buflen - 64;
>               sprintf(strerrbuf + offs, " (0x%08X/%lu)", err, err);
>       }
> Index: interfaces/libpq/win32.mak
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/interfaces/libpq/win32.mak,v
> retrieving revision 1.18
> diff -u -r1.18 win32.mak
> --- interfaces/libpq/win32.mak        12 Jun 2003 08:15:29 -0000      1.18
> +++ interfaces/libpq/win32.mak        31 Aug 2003 23:22:31 -0000
> @@ -1,14 +1,16 @@
>  # Makefile for Microsoft Visual C++ 5.0 (or compat)
>  
> -# Will build a Win32 static library (non-debug) libpq.lib
> -#        and a Win32 dynamic library (non-debug) libpq.dll with import library 
> libpqdll.lib
> +# Will build a Win32 static library libpq.lib
> +#        and a Win32 dynamic library libpq.dll with import library libpqdll.lib
> +# USE_SSL=1 will compile with OpenSSL
> +# DEBUG=1 compiles with debugging symbols
>  
>  
>  !MESSAGE Building the Win32 static library...
>  !MESSAGE
>  
>  !IFDEF DEBUG
> -OPT=/Od
> +OPT=/Od /Zi
>  LOPT=/debug
>  DEBUGDEF=/D _DEBUG
>  !ELSE
> @@ -26,12 +28,16 @@
>  CPP=cl.exe
>  RSC=rc.exe
>  
> +!IFDEF DEBUG
> +OUTDIR=.\Debug
> +INTDIR=.\Debug
> +CPP_OBJS=.\Debug/
> +!ELSE
>  OUTDIR=.\Release
>  INTDIR=.\Release
> +CPP_OBJS=.\Release/
> +!ENDIF
>  
> -# Begin Custom Macros
> -OutDir=.\Release
> -# End Custom Macros
>  
>  ALL : "$(OUTDIR)\libpq.lib" "$(OUTDIR)\libpq.dll" 
>  
> @@ -72,16 +78,20 @@
>   "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" /YX\
>   /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c  /D "HAVE_VSNPRINTF" /D "HAVE_STRDUP"
>  
> -CPP_OBJS=.\Release/
> +!IFDEF USE_SSL
> +CPP_PROJ=$(CPP_PROJ) /D USE_SSL
> +SSL_LIBS=ssleay32.lib libeay32.lib gdi32.lib
> +!ENDIF
> +
>  CPP_SBRS=.
>  
>  LIB32=link.exe -lib
>  LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\libpq.lib" 
>  LIB32_OBJS= \
> -     "$(OUTDIR)\win32.obj" \
> +     "$(INTDIR)\win32.obj" \
>       "$(INTDIR)\getaddrinfo.obj" \
>       "$(INTDIR)\inet_aton.obj" \
> -      "$(INTDIR)\crypt.obj" \
> +        "$(INTDIR)\crypt.obj" \
>       "$(INTDIR)\path.obj" \
>       "$(INTDIR)\dllist.obj" \
>       "$(INTDIR)\md5.obj" \
> @@ -94,15 +104,17 @@
>       "$(INTDIR)\fe-lobj.obj" \
>       "$(INTDIR)\fe-misc.obj" \
>       "$(INTDIR)\fe-print.obj" \
> +     "$(INTDIR)\thread.obj" \
>       "$(INTDIR)\fe-secure.obj" \
>       "$(INTDIR)\pqexpbuffer.obj" \
>       "$(INTDIR)\wchar.obj" \
>       "$(INTDIR)\encnames.obj"
>  
> +
>  RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"
>  
>  LINK32=link.exe
> -LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib wsock32.lib\
> +LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib wsock32.lib $(SSL_LIBS)  \
>   /nologo /subsystem:windows /dll $(LOPT) /incremental:no\
>   /pdb:"$(OUTDIR)\libpqdll.pdb" /machine:I386 /out:"$(OUTDIR)\libpq.dll"\
>   /implib:"$(OUTDIR)\libpqdll.lib"  /def:libpqdll.def
> @@ -126,38 +138,43 @@
>    $(LINK32_FLAGS) $(LINK32_OBJS)
>  <<
>  
> -"$(OUTDIR)\getaddrinfo.obj" : ..\..\port\getaddrinfo.c
> +"$(INTDIR)\getaddrinfo.obj" : ..\..\port\getaddrinfo.c
>      $(CPP) @<<
>      $(CPP_PROJ) ..\..\port\getaddrinfo.c
>  <<
>  
> -"$(OUTDIR)\inet_aton.obj" : ..\..\port\inet_aton.c
> +"$(INTDIR)\thread.obj" : ..\..\port\thread.c
> +    $(CPP) @<<
> +    $(CPP_PROJ) ..\..\port\thread.c
> +<<
> +
> +"$(INTDIR)\inet_aton.obj" : ..\..\port\inet_aton.c
>      $(CPP) @<<
>      $(CPP_PROJ) ..\..\port\inet_aton.c
>  <<
>  
> -"$(OUTDIR)\crypt.obj" : ..\..\port\crypt.c
> +"$(INTDIR)\crypt.obj" : ..\..\port\crypt.c
>      $(CPP) @<<
>      $(CPP_PROJ) ..\..\port\crypt.c
>  <<
>  
> -"$(OUTDIR)\path.obj" : ..\..\port\path.c
> +"$(INTDIR)\path.obj" : ..\..\port\path.c
>      $(CPP) @<<
>      $(CPP_PROJ) ..\..\port\path.c
>  <<
>  
> -"$(OUTDIR)\dllist.obj" : ..\..\backend\lib\dllist.c
> +"$(INTDIR)\dllist.obj" : ..\..\backend\lib\dllist.c
>      $(CPP) @<<
>      $(CPP_PROJ) ..\..\backend\lib\dllist.c
>  <<
>  
>  
> -"$(OUTDIR)\md5.obj" : ..\..\backend\libpq\md5.c
> +"$(INTDIR)\md5.obj" : ..\..\backend\libpq\md5.c
>      $(CPP) @<<
>      $(CPP_PROJ) ..\..\backend\libpq\md5.c
>  <<
>  
> -"$(OUTDIR)\ip.obj" : ..\..\backend\libpq\ip.c
> +"$(INTDIR)\ip.obj" : ..\..\backend\libpq\ip.c
>      $(CPP) @<<
>      $(CPP_PROJ) ..\..\backend\libpq\ip.c
>  <<
> Index: include/pg_config.h.win32
> ===================================================================
> RCS file: /projects/cvsroot/pgsql-server/src/include/pg_config.h.win32,v
> retrieving revision 1.11
> diff -u -r1.11 pg_config.h.win32
> --- include/pg_config.h.win32 12 Jun 2003 08:15:29 -0000      1.11
> +++ include/pg_config.h.win32 31 Aug 2003 23:22:31 -0000
> @@ -60,4 +60,9 @@
>  #include <windows.h>
>  #endif
>  
> +#include <port/win32.h>
> +
> +/* getpwuid doesn't exist under win32 */
> +#define getpwuid(uid) NULL
> +
>  #endif /* pg_config_h_win32__ */
> 
> ***** CVS exited normally with code 1 *****
> 
> 

-- 
  Bruce Momjian                        |  http://candle.pha.pa.us
  [EMAIL PROTECTED]               |  (610) 359-1001
  +  If your life is a hard drive,     |  13 Roberts Road
  +  Christ can be your backup.        |  Newtown Square, Pennsylvania 19073

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to