Hi,

Windows build environment is not up to date, missing 4 new C source files,
and VC 6.0 was broken now.

Tested at VC 6.0, VC 2008 x86 and x64, VC 2010 x86 and x64.

Please pull from git://github.com/songdongsheng/libssh2.git

Regards,
Dongsheng

From bf9dcd92c7b73da6d2e134e4feda3cbff8204fc0 Mon Sep 17 00:00:00 2001
From: Dongsheng Song <[email protected]>
Date: Wed, 17 Nov 2010 17:35:42 +0800
Subject: [PATCH 2/2] Bring up to date windows build environment

---
 NMakefile              |    5 ++---
 src/NMakefile          |   11 +++++++----
 src/keepalive.c        |    2 +-
 src/libssh2_priv.h     |   21 ---------------------
 win32/config.mk        |   16 +++++++---------
 win32/libssh2.rc       |    2 +-
 win32/libssh2_config.h |    8 +++++++-
 win32/rules.mk         |    3 ++-
 8 files changed, 27 insertions(+), 41 deletions(-)

diff --git a/NMakefile b/NMakefile
index 51948cc..0254d53 100644
--- a/NMakefile
+++ b/NMakefile
@@ -11,9 +11,8 @@ clean:
 
 real-clean: clean
        -del libssh2.dll
+       -del libssh2.dll.manifest
        -del libssh2.exp
        -del libssh2.ilk
        -del libssh2.lib
-       -del *.pdb
-
-
+       -del libssh2.pdb
diff --git a/src/NMakefile b/src/NMakefile
index aabceab..b54541a 100644
--- a/src/NMakefile
+++ b/src/NMakefile
@@ -3,6 +3,7 @@
 CFLAGS=$(CFLAGS)
 
 OBJECTS = \
+       $(INTDIR)\agent.obj \
        $(INTDIR)\channel.obj \
        $(INTDIR)\comp.obj \
        $(INTDIR)\crypt.obj \
@@ -10,6 +11,8 @@ OBJECTS = \
        $(INTDIR)\hostkey.obj \
        $(INTDIR)\keepalive.obj \
        $(INTDIR)\kex.obj \
+       $(INTDIR)\knownhost.obj \
+       $(INTDIR)\libgcrypt.obj \
        $(INTDIR)\mac.obj \
        $(INTDIR)\misc.obj \
        $(INTDIR)\openssl.obj \
@@ -20,14 +23,14 @@ OBJECTS = \
        $(INTDIR)\session.obj \
        $(INTDIR)\sftp.obj \
        $(INTDIR)\transport.obj \
-       $(INTDIR)\userauth.obj
+       $(INTDIR)\userauth.obj \
+       $(INTDIR)\version.obj
 
 DLL=libssh2$(SUFFIX).dll
 
-$(DLL): $(OBJECTS)
-       $(CC) -o $(DLL) $(DLLFLAGS) $(OBJECTS) $(LIBS)
+$(DLL): $(OBJECTS) $(INTDIR)\libssh2.res
+       $(CC) -Fe"$(DLL)" $(DLLFLAGS) $(OBJECTS) $(INTDIR)\libssh2.res $(LIBS)
 
 all: $(DLL)
 
 !include "win32/rules.mk"
-
diff --git a/src/keepalive.c b/src/keepalive.c
index 260206a..160c80e 100644
--- a/src/keepalive.c
+++ b/src/keepalive.c
@@ -91,7 +91,7 @@ libssh2_keepalive_send (LIBSSH2_SESSION *session,
             *seconds_to_next = session->keepalive_interval;
     } else if (seconds_to_next) {
         *seconds_to_next = (int) session->keepalive_last_sent
-            + session->keepalive_interval - now;
+            + session->keepalive_interval - (int) now;
     }
 
     return 0;
diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h
index d281c11..b912111 100644
--- a/src/libssh2_priv.h
+++ b/src/libssh2_priv.h
@@ -43,14 +43,6 @@
 #define LIBSSH2_LIBRARY
 #include "libssh2_config.h"
 
-#ifdef HAVE_WINDOWS_H
-#include <windows.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
 #include <stdio.h>
 #include <time.h>
 
@@ -132,19 +124,6 @@ static inline int writev(int sock, struct iovec *iov, int 
nvecs)
 #include "openssl.h"
 #endif
 
-#ifdef HAVE_WINSOCK2_H
-
-#include <winsock2.h>
-#include <mswsock.h>
-#include <ws2tcpip.h>
-
-#ifdef _MSC_VER
-/* "inline" keyword is valid only with C++ engine! */
-#define inline __inline
-#endif
-
-#endif
-
 /* RFC4253 section 6.1 Maximum Packet Length says:
  *
  * "All implementations MUST be able to process packets with
diff --git a/win32/config.mk b/win32/config.mk
index 74627a4..15a7b8a 100644
--- a/win32/config.mk
+++ b/win32/config.mk
@@ -1,10 +1,10 @@
 
 # Tweak these for your system
-OPENSSLINC=..\openssl-0.9.8o\inc32
-OPENSSLLIB=..\openssl-0.9.8o\out32dll
+OPENSSLINC=..\thirdparty\openssl\inc32
+OPENSSLLIB=..\thirdparty\openssl\out32dll
 
-ZLIBINC=-DLIBSSH2_HAVE_ZLIB=1 /I..\zlib-1.2.5
-ZLIBLIB=..\zlib-1.2.5
+ZLIBINC=-DLIBSSH2_HAVE_ZLIB=1 /I..\thirdparty\zlib
+ZLIBLIB=..\thirdparty\zlib
 
 !if "$(TARGET)" == ""
 TARGET=Release
@@ -15,15 +15,13 @@ SUFFIX=_debug
 CPPFLAGS=/Od /MDd
 DLLFLAGS=/DEBUG /LDd
 !else
-CPPFLAGS=/Og /Oi /O2 /Oy /GF /Y- /MD /DNDEBUG
+CPPFLAGS=/MD /O2 /Oy- /Zi /D"_WIN32_WINNT=0x0502" /DNDEBUG
 DLLFLAGS=/DEBUG /LD
 !endif
 
-CPPFLAGS=/nologo /GL /Zi /EHsc $(CPPFLAGS) /Iwin32 /Iinclude /I$(OPENSSLINC) 
$(ZLIBINC) -DLIBSSH2_WIN32
+CPPFLAGS=/nologo /W3 /GL /EHsc /Fdlibssh2.pdb $(CPPFLAGS) 
/DWIN32_LEAN_AND_MEAN /DNOCRYPT /Iwin32 /Iinclude /I$(OPENSSLINC) $(ZLIBINC) 
-DLIBSSH2_WIN32
 CFLAGS=$(CPPFLAGS)
 DLLFLAGS=$(CFLAGS) $(DLLFLAGS)
-LIBS=$(OPENSSLLIB)\libeay32.lib $(OPENSSLLIB)\ssleay32.lib ws2_32.lib 
$(ZLIBLIB)\zlib.lib
+LIBS=ws2_32.lib user32.lib $(OPENSSLLIB)\libeay32.lib 
$(OPENSSLLIB)\ssleay32.lib $(ZLIBLIB)\zdll.lib
 
 INTDIR=$(TARGET)\$(SUBDIR)
-
-
diff --git a/win32/libssh2.rc b/win32/libssh2.rc
index 1fdd46c..1d8b56f 100644
--- a/win32/libssh2.rc
+++ b/win32/libssh2.rc
@@ -33,7 +33,7 @@ BEGIN
       VALUE "OriginalFilename", "libssh2.dll\0"
       VALUE "ProductName",      "The libssh2 library\0"
       VALUE "ProductVersion",   LIBSSH2_VERSION "\0"
-      VALUE "LegalCopyright",   "© " LIBSSH2_COPYRIGHT "\0"
+      VALUE "LegalCopyright",   "Copyright (c) " LIBSSH2_COPYRIGHT "\0"
       VALUE "License",          "http://www.libssh2.org/license.html\0";
     END
   END
diff --git a/win32/libssh2_config.h b/win32/libssh2_config.h
index 56c64a6..32524ce 100644
--- a/win32/libssh2_config.h
+++ b/win32/libssh2_config.h
@@ -4,11 +4,12 @@
 #ifndef WIN32
 #define WIN32
 #endif
+
 #ifndef _CRT_SECURE_NO_DEPRECATE
 #define _CRT_SECURE_NO_DEPRECATE 1
 #endif /* _CRT_SECURE_NO_DEPRECATE */
+
 #include <winsock2.h>
-#include <mswsock.h>
 #include <ws2tcpip.h>
 
 #ifdef __MINGW32__
@@ -22,7 +23,12 @@
 #define HAVE_SELECT
 
 #ifdef _MSC_VER
+/* "inline" keyword is valid only with C++ engine! */
+#define inline __inline
 #define snprintf _snprintf
+#if _MSC_VER <= 1200
+typedef int socklen_t;
+#endif
 #if _MSC_VER < 1500
 #define vsnprintf _vsnprintf
 #endif
diff --git a/win32/rules.mk b/win32/rules.mk
index bfb7784..49a21ed 100644
--- a/win32/rules.mk
+++ b/win32/rules.mk
@@ -12,4 +12,5 @@ $(INTDIR):
 {$(SUBDIR)}.c{$(INTDIR)}.obj::
        $(CC) -c $(CFLAGS) /Fo"$(INTDIR)\\" $<
 
-
+$(INTDIR)\libssh2.res: win32\libssh2.rc
+       $(RC) /Fo"$@" $?
\ No newline at end of file
-- 
1.7.2.3

From 2c13683554ee64d8fd6f65987dc35e2819a9604a Mon Sep 17 00:00:00 2001
From: Dongsheng Song <[email protected]>
Date: Wed, 17 Nov 2010 17:23:16 +0800
Subject: [PATCH 1/2] Typo fix, s/elsif/elif/g

---
 src/misc.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/misc.c b/src/misc.c
index cbea039..c1ac128 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -100,7 +100,7 @@ _libssh2_recv(libssh2_socket_t sock, void *buffer, size_t 
length, int flags)
 #ifdef WIN32
     if (rc < 0 )
         return -wsa2errno();
-#elsif defined(__VMS)
+#elif defined(__VMS)
     if (rc < 0 ){
         if ( errno == EWOULDBLOCK )
             return -EAGAIN;
@@ -126,7 +126,7 @@ _libssh2_send(libssh2_socket_t sock, const void *buffer, 
size_t length,
 #ifdef WIN32
     if (rc < 0 )
         return -wsa2errno();
-#elsif defined(__VMS)
+#elif defined(__VMS)
     if (rc < 0 ) {
         if ( errno == EWOULDBLOCK )
             return -EAGAIN;
@@ -564,7 +564,7 @@ void _libssh2_list_insert(struct list_node *after, /* 
insert before this */
  * The Open Group Base Specifications Issue 6
  * IEEE Std 1003.1, 2004 Edition
  */
-  
+
 /*
  *  THIS SOFTWARE IS NOT COPYRIGHTED
  *
-- 
1.7.2.3

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
libssh2-devel http://cool.haxx.se/cgi-bin/mailman/listinfo/libssh2-devel

Reply via email to