You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by bo...@apache.org on 2014/09/30 10:55:45 UTC
svn commit: r1628376 - in /qpid/proton/trunk/proton-c/src: platform.h
ssl/openssl.c util.c util.h
Author: bozzo
Date: Tue Sep 30 08:55:45 2014
New Revision: 1628376
URL: http://svn.apache.org/r1628376
Log:
PROTON-660: Fix openssl.c build on windows
Modified:
qpid/proton/trunk/proton-c/src/platform.h
qpid/proton/trunk/proton-c/src/ssl/openssl.c
qpid/proton/trunk/proton-c/src/util.c
qpid/proton/trunk/proton-c/src/util.h
Modified: qpid/proton/trunk/proton-c/src/platform.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/platform.h?rev=1628376&r1=1628375&r2=1628376&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/platform.h (original)
+++ qpid/proton/trunk/proton-c/src/platform.h Tue Sep 30 08:55:45 2014
@@ -78,10 +78,20 @@ int64_t pn_i_atoll(const char* num);
* Provide the expected C99 behavior for these functions.
*/
#include <stdio.h>
+
#define snprintf pn_i_snprintf
#define vsnprintf pn_i_vsnprintf
+
int pn_i_snprintf(char *buf, size_t count, const char *fmt, ...);
int pn_i_vsnprintf(char *buf, size_t count, const char *fmt, va_list ap);
+
+#define strcasecmp(A,B) (!pni_eq_nocase(A,B))
+#define strncasecmp(A,B,C) (!pni_eq_n_nocase(A,B,C))
+
+#if !defined(S_ISDIR)
+# define S_ISDIR(X) ((X) & _S_IFDIR)
+#endif
+
#endif
#if defined _MSC_VER || defined _OPENVMS
Modified: qpid/proton/trunk/proton-c/src/ssl/openssl.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/ssl/openssl.c?rev=1628376&r1=1628375&r2=1628376&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/ssl/openssl.c (original)
+++ qpid/proton/trunk/proton-c/src/ssl/openssl.c Tue Sep 30 08:55:45 2014
@@ -25,6 +25,22 @@
#include "platform.h"
#include "util.h"
+// openssl on windows expects the user to have already included
+// winsock.h
+
+#ifdef _MSC_VER
+#ifndef _WIN32_WINNT
+#define _WIN32_WINNT 0x0501
+#endif
+#if _WIN32_WINNT < 0x0501
+#error "Proton requires Windows API support for XP or later."
+#endif
+#include <winsock2.h>
+#include <mswsock.h>
+#include <Ws2tcpip.h>
+#endif
+
+
#include <openssl/ssl.h>
#include <openssl/dh.h>
#include <openssl/err.h>
Modified: qpid/proton/trunk/proton-c/src/util.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/util.c?rev=1628376&r1=1628375&r2=1628376&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/util.c (original)
+++ qpid/proton/trunk/proton-c/src/util.c Tue Sep 30 08:55:45 2014
@@ -213,7 +213,7 @@ void pni_fatal(const char *fmt, ...)
va_end(ap);
}
-static bool pn_i_eq_nocase(const char *a, const char *b)
+bool pni_eq_nocase(const char *a, const char *b)
{
while (*b) {
if (tolower(*a++) != tolower(*b++))
@@ -222,11 +222,20 @@ static bool pn_i_eq_nocase(const char *a
return !(*a);
}
+bool pni_eq_n_nocase(const char *a, const char *b, int len)
+{
+ while (*b && len-- > 0 ) {
+ if (tolower(*a++) != tolower(*b++))
+ return false;
+ }
+ return !(*a) && !(*b);
+}
+
bool pn_env_bool(const char *name)
{
char *v = getenv(name);
- return v && (pn_i_eq_nocase(v, "true") || pn_i_eq_nocase(v, "1") ||
- pn_i_eq_nocase(v, "yes") || pn_i_eq_nocase(v, "on"));
+ return v && (pni_eq_nocase(v, "true") || pni_eq_nocase(v, "1") ||
+ pni_eq_nocase(v, "yes") || pni_eq_nocase(v, "on"));
}
char *pn_strdup(const char *src)
Modified: qpid/proton/trunk/proton-c/src/util.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/util.h?rev=1628376&r1=1628375&r2=1628376&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/util.h (original)
+++ qpid/proton/trunk/proton-c/src/util.h Tue Sep 30 08:55:45 2014
@@ -40,6 +40,8 @@ PN_EXTERN ssize_t pn_quote_data(char *ds
int pn_quote(pn_string_t *dst, const char *src, size_t size);
PN_EXTERN void pn_fprint_data(FILE *stream, const char *bytes, size_t size);
PN_EXTERN void pn_print_data(const char *bytes, size_t size);
+bool pni_eq_nocase(const char *a, const char *b);
+bool pni_eq_n_nocase(const char *a, const char *b, int len);
bool pn_env_bool(const char *name);
pn_timestamp_t pn_timestamp_min(pn_timestamp_t a, pn_timestamp_t b);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org