From d0d5255e08f540bef3354ba1f19b22659f73141b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Wed, 28 Feb 2007 14:33:23 +0000 Subject: [PATCH] Gsoap compatibility macros. --- org.glite.security.gsoap-plugin/Makefile | 2 +- .../interface/glite_gscompat.h | 51 ++++++++++++++++++++++ 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 org.glite.security.gsoap-plugin/interface/glite_gscompat.h diff --git a/org.glite.security.gsoap-plugin/Makefile b/org.glite.security.gsoap-plugin/Makefile index 6f1c673..236f836 100644 --- a/org.glite.security.gsoap-plugin/Makefile +++ b/org.glite.security.gsoap-plugin/Makefile @@ -95,7 +95,7 @@ ARES_LIBS:=-L${cares_prefix}/lib -lcares EX_LIBS:= ${GLOBUS_LIBS} ${ARES_LIBS} EX_THRLIBS := ${GLOBUS_THR_LIBS} ${ARES_LIBS} -HDRS:=glite_gss.h glite_gsplugin.h +HDRS:=glite_gss.h glite_gsplugin.h glite_gscompat.h GSS_OBJS:=glite_gss.o GSS_LOBJS:=${GSS_OBJS:.o=.lo} diff --git a/org.glite.security.gsoap-plugin/interface/glite_gscompat.h b/org.glite.security.gsoap-plugin/interface/glite_gscompat.h new file mode 100644 index 0000000..0bdf5f8 --- /dev/null +++ b/org.glite.security.gsoap-plugin/interface/glite_gscompat.h @@ -0,0 +1,51 @@ +#ifndef GLIE_SECURITY_GSCOMPAT_H +#define GLIE_SECURITY_GSCOMPAT_H + +#ident "$Header: " + +#ifndef GSOAP_VERSION + #error GSOAP_VERSION required +#endif + +#if GSOAP_VERSION >= 20709 + #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->union_##TYPENAME.ITEM) +#elif GSOAP_VERSION >= 20706 + #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->union_##TYPENO.ITEM) +#else + #define GLITE_SECURITY_GSOAP_CHOICE_GET(CHOICE, ITEM, TYPENAME, TYPENO) ((CHOICE)->ITEM) +#endif + +#if GSOAP_VERSION >= 20706 + #define GLITE_SECURITY_GSOAP_REASON2(SOAP) ((SOAP)->fault->SOAP_ENV__Reason ? (SOAP)->fault->SOAP_ENV__Reason->SOAP_ENV__Text : "(no reason)") + #define GLITE_SECURITY_GSOAP_TRUE xsd__boolean__true_ + #define GLITE_SECURITY_GSOAP_FALSE xsd__boolean__false_ +#else + #define GLITE_SECURITY_GSOAP_REASON2(SOAP) ((SOAP)->fault->SOAP_ENV__Reason) + #define GLITE_SECURITY_GSOAP_TRUE true_ + #define GLITE_SECURITY_GSOAP_FALSE false_ +#endif + +#define GLITE_SECURITY_GSOAP_DETAIL(SOAP) ((SOAP)->version == 2 ? (SOAP)->fault->SOAP_ENV__Detail : (SOAP)->fault->detail) +#define GLITE_SECURITY_GSOAP_REASON(SOAP) ((SOAP)->version == 2 ? GLITE_SECURITY_GSOAP_REASON2((SOAP)) : (SOAP)->fault->faultstring) + +#if GSOAP_VERSION >= 20709 + #define GLITE_SECURITY_GSOAP_LIST_CREATE(SOAP, CONTAINER, LIST, TYPE, N) do { \ + (CONTAINER)->LIST = soap_malloc((SOAP), (N) * sizeof(TYPE)); \ + (CONTAINER)->__size##LIST = (N); \ +} while (0); + #define GLITE_SECURITY_GSOAP_LIST_GET(LIST, INDEX) (&(LIST)[INDEX]) +#else + #define GLITE_SECURITY_GSOAP_LIST_CREATE(SOAP, CONTAINER, LIST, TYPE, N) do { \ + int i##LIST; \ + \ + (CONTAINER)->LIST = soap_malloc((SOAP), (N) * sizeof(void *));\ + (CONTAINER)->__size##LIST = (N); \ + for (i##LIST = 0; i##LIST < (N); i##LIST++) { \ + (CONTAINER)->LIST[i##LIST] = soap_malloc((SOAP), sizeof(TYPE)); \ + } \ +} while (0) + #define GLITE_SECURITY_GSOAP_LIST_GET(LIST, INDEX) ((LIST)[INDEX]) +#endif + + +#endif -- 1.8.2.3