From 12c371ad1869842c529e38a271dc6e32e7564677 Mon Sep 17 00:00:00 2001
From: Jose Baars <peut@peut.org>
Date: Thu, 29 Apr 2010 09:15:52 -0400
Subject: [PATCH] Add VMS specific libssh2_config.h

---
 vms/libssh2_config.h |   82 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)
 create mode 100644 vms/libssh2_config.h

diff --git a/vms/libssh2_config.h b/vms/libssh2_config.h
new file mode 100644
index 0000000..2eb09a8
--- /dev/null
+++ b/vms/libssh2_config.h
@@ -0,0 +1,82 @@
+#ifndef LIBSSH2_CONFIG_H
+#ifdef __VMS
+
+#define LIBSSH2_CONFIG_H
+
+/* VMS specific libssh2_config.h
+ */
+
+#define ssize_t SSIZE_T
+
+typedef unsigned int uint32_t ;
+typedef unsigned int socklen_t; /* missing in headers on VMS */
+
+/* Have's */
+
+#define HAVE_UNISTD_H
+#define HAVE_INTTYPES_H
+#define HAVE_SYS_TIME_H
+#define HAVE_SELECT
+#define HAVE_UIO
+
+#define HAVE_SYS_SOCKET.H
+#define HAVE_NETINET_IN_H
+#define HAVE_ARPA_INET_H
+
+#define POSIX_C_SOURCE
+
+/* Enable the possibility of using tracing */
+ 
+#define LIBSSH2DEBUG 1
+
+/* For selection of proper block/unblock function in session.c */
+
+#define HAVE_FIONBIO
+
+#include <stropts.h>
+
+/* In VMS TCP/IP Services and some BSD variants SO_STATE retrieves 
+ * a bitmask revealing amongst others the blocking state of the 
+ * socket. On VMS the bits are undocumented, but  SS_NBIO
+ * works, I did not test the other bits. Below bitdefs are 
+ * from Berkely source socketvar.h at   
+ * http://ftp.fibranet.cat/UnixArchive/PDP-11/Trees/2.11BSD/sys/h/socketvar.h
+ *  Socket state bits.
+ *  #define SS_NOFDREF          0x001    no file table ref any more 
+ *  #define SS_ISCONNECTED      0x002    socket connected to a peer 
+ *  #define SS_ISCONNECTING     0x004    in process of connecting to peer 
+ *  #define SS_ISDISCONNECTING  0x008    in process of disconnecting 
+ *  #define SS_CANTSENDMORE     0x010    can't send more data to peer 
+ *  #define SS_CANTRCVMORE      0x020    can't receive more data from peer 
+ *  #define SS_RCVATMARK        0x040    at mark on input 
+ *  #define SS_PRIV             0x080    privileged for broadcast, raw... 
+ *  #define SS_NBIO             0x100    non-blocking ops 
+ *  #define SS_ASYNC            0x200    async i/o notify 
+ *
+ */
+
+#ifdef SO_STATE
+
+/* SO_STATE is defined in stropts.h  by DECC
+ * When running on Multinet, SO_STATE renders a protocol
+ * not started error. Functionally this has no impact,
+ * apart from libssh2 not being able to restore the socket
+ * to the proper blocking/non-blocking state.  
+ */
+
+#define SS_NBIO         0x100 
+
+#endif
+
+/* Compile in zlib support. We link against gnv$libzshr, as available
+ * on encompasserve.com.
+ */
+
+#define LIBSSH2_HAVE_ZLIB
+
+/* Enable newer diffie-hellman-group-exchange-sha1 syntax */
+
+#define LIBSSH2_DH_GEX_NEW 1
+
+#endif /* __VMS */
+#endif /* LIBSSH2_CONFIG_H */                             
-- 
1.6.6.1

