diff options
Diffstat (limited to 'kresources/groupwise/soap/patches')
-rw-r--r-- | kresources/groupwise/soap/patches/README | 32 | ||||
-rw-r--r-- | kresources/groupwise/soap/patches/broken_namespace.diff | 20 | ||||
-rw-r--r-- | kresources/groupwise/soap/patches/socklen.diff | 28 | ||||
-rw-r--r-- | kresources/groupwise/soap/patches/type_typo.diff | 15 | ||||
-rw-r--r-- | kresources/groupwise/soap/patches/utf8_entities.diff | 15 |
5 files changed, 110 insertions, 0 deletions
diff --git a/kresources/groupwise/soap/patches/README b/kresources/groupwise/soap/patches/README new file mode 100644 index 000000000..17e91cb8c --- /dev/null +++ b/kresources/groupwise/soap/patches/README @@ -0,0 +1,32 @@ +gSoap Patches +============= + +This directory contains patches for gSoap required to make the GroupWise +resource work with the real existing GroupWise server. They are already included +in the gSoap or gSoap generated files in CVS, so if you don't create the stubs +yourself or want to upgrade the gSoap version you don't have to care about these +patches. + +Patch descriptions +------------------ + +broken_namespace.diff: + + The GroupWise server doesn't correctly declare the default namespace. This + patch disables the namespace checking for the GroupWise namespace ns1. + +utf8_entities.diff: + + gSoap encodes utf8 characters as XML entities, but the server doesn't seem to + be able to decode them. This patch makes gSoap send unencoded utf8 characters. + +type_typo.diff + + Some intermediate versions of GroupWise have a typo in the protocol. This + patch works around it. + +socklen.diff: + + Adriaan de Groot <groot@kde.org>: The attached patch is needed for me to get + kresources/groupwise/soap/stdsoap2.cpp to build -- it's the pretty usual + socklen_t type mixups (that are only serious on 64-bitters). diff --git a/kresources/groupwise/soap/patches/broken_namespace.diff b/kresources/groupwise/soap/patches/broken_namespace.diff new file mode 100644 index 000000000..46c5eee41 --- /dev/null +++ b/kresources/groupwise/soap/patches/broken_namespace.diff @@ -0,0 +1,20 @@ +--- /build/progs/gsoap-linux-2.7/stdsoap2.cpp 2004-10-10 20:33:26.000000000 +0200 ++++ ../stdsoap2.cpp 2004-10-25 15:44:05.707573480 +0200 +@@ -2249,10 +2249,15 @@ + SOAP_FMAC1 + int + SOAP_FMAC2 +-soap_match_tag(struct soap *soap, const char *tag1, const char *tag2) ++soap_match_tag(struct soap *soap, const char *tag1, const char *tag2_) + { register const char *s, *t; +- if (!tag1 || !tag2 || !*tag2) ++ if (!tag1 || !tag2_ || !*tag2_) + return SOAP_OK; ++ ++ const char *tag2; ++ if ( strncmp( tag2_, "ns1:", 4 ) == 0 ) tag2 = tag2_ + 4; ++ else tag2 = tag2_; ++ + s = strchr(tag1, ':'); + t = strchr(tag2, ':'); + if (t) diff --git a/kresources/groupwise/soap/patches/socklen.diff b/kresources/groupwise/soap/patches/socklen.diff new file mode 100644 index 000000000..87b283804 --- /dev/null +++ b/kresources/groupwise/soap/patches/socklen.diff @@ -0,0 +1,28 @@ +Index: soap/stdsoap2.cpp +=================================================================== +RCS file: /home/kde/kdepim/kresources/groupwise/soap/stdsoap2.cpp,v +retrieving revision 1.3 +diff -u -3 -p -r1.3 stdsoap2.cpp +--- soap/stdsoap2.cpp 3 Dec 2004 17:15:43 -0000 1.3 ++++ soap/stdsoap2.cpp 6 Dec 2004 21:27:25 -0000 +@@ -3072,7 +3072,7 @@ tcp_connect(struct soap *soap, const cha + #elif defined(WIN32) || defined(__APPLE__) || defined(HP_UX) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS) + int n = sizeof(struct sockaddr_in); + #else +- size_t n = sizeof(struct sockaddr_in); ++ kde_socklen_t n = sizeof(struct sockaddr_in); + #endif + fd_set fds; + if (soap->connect_timeout > 0) +@@ -3503,7 +3503,10 @@ tcp_accept(struct soap *soap, int s, str + #elif defined(WIN32) || defined(__APPLE__) || defined(HP_UX) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS) + fd = (int)accept((SOAP_SOCKET)s, a, n); + #else +- fd = (int)accept((SOAP_SOCKET)s, a, (size_t*)n); ++ kde_socklen_t n_size = 0; ++ if (n) n_size = *n; ++ fd = (int)accept((SOAP_SOCKET)s, a, &n_size); ++ if (n) *n = n_size; + #endif + #ifdef SOCKET_CLOSE_ON_EXEC + #ifdef WIN32 diff --git a/kresources/groupwise/soap/patches/type_typo.diff b/kresources/groupwise/soap/patches/type_typo.diff new file mode 100644 index 000000000..c663dad14 --- /dev/null +++ b/kresources/groupwise/soap/patches/type_typo.diff @@ -0,0 +1,15 @@ +Index: soap/soapC.cpp +=================================================================== +RCS file: /home/kde/kdepim/kresources/groupwise/soap/soapC.cpp,v +retrieving revision 1.4.2.3 +diff -u -3 -p -r1.4.2.3 soapC.cpp +--- soap/soapC.cpp 25 Oct 2004 13:58:20 -0000 1.4.2.3 ++++ soap/soapC.cpp 29 Oct 2004 11:25:22 -0000 +@@ -6337,6 +6337,7 @@ static const struct soap_code_map soap_c + { { (long)User, "User" }, + { (long)PersonalGroup, "PersonalGroup" }, + { (long)SystemGroup, "SystemGroup" }, ++ { (long)SystemGroup, "SsytemGroup" }, + { (long)PersonalGroupMember, "PersonalGroupMember" }, + { (long)SystemGroupMember, "SystemGroupMember" }, + { 0, NULL } diff --git a/kresources/groupwise/soap/patches/utf8_entities.diff b/kresources/groupwise/soap/patches/utf8_entities.diff new file mode 100644 index 000000000..b8600a9dd --- /dev/null +++ b/kresources/groupwise/soap/patches/utf8_entities.diff @@ -0,0 +1,15 @@ +--- kresources/groupwise/soap/stdsoap2.cpp ++++ kresources/groupwise/soap/stdsoap2.cpp 2004/10/15 12:42:53 +@@ -6470,7 +6470,11 @@ + } + #endif + if (c & mask) +- { if (soap_send_raw(soap, s, t - s - 1) || soap_pututf8(soap, (unsigned char)c)) ++ { ++ char S[2]; ++ S[0] = c; ++ S[1] = 0; ++ if (soap_send_raw(soap, s, t - s - 1) || soap_send(soap, S) ) + return soap->error; + s = t; + } |