95 lines
3.7 KiB
Diff
95 lines
3.7 KiB
Diff
diff -ur gsoap2-code-r187/gsoap/plugin/wsseapi.c gsoap2-code-r188/gsoap/plugin/wsseapi.c
|
|
--- gsoap2-code-r187/gsoap/plugin/wsseapi.c 2020-06-30 21:06:47.000000000 +0200
|
|
+++ gsoap2-code-r188/gsoap/plugin/wsseapi.c 2020-07-22 22:20:04.000000000 +0200
|
|
@@ -3956,9 +3956,12 @@
|
|
if (!strcmp(att->name, "xmlns"))
|
|
{
|
|
soap_attribute(soap, att->name, att->text);
|
|
+ prt = NULL;
|
|
break;
|
|
}
|
|
}
|
|
+ if (!prt)
|
|
+ break;
|
|
}
|
|
}
|
|
else
|
|
@@ -4247,9 +4250,12 @@
|
|
if (!strcmp(att->name, "xmlns"))
|
|
{
|
|
soap_attribute(soap, att->name, att->text);
|
|
+ prt = NULL;
|
|
break;
|
|
}
|
|
}
|
|
+ if (!prt)
|
|
+ break;
|
|
}
|
|
}
|
|
else
|
|
@@ -4984,7 +4990,7 @@
|
|
if (soap_tagsearch(data->encid, "ds:Signature"))
|
|
{
|
|
/* support ds:Signature encryption only with HTTP chunking, otherwise content length is incorrect */
|
|
- if ((soap->omode & SOAP_IO) == SOAP_IO_BUFFER)
|
|
+ if ((soap->omode & SOAP_IO) == SOAP_IO_BUFFER || (soap->omode & SOAP_IO) == SOAP_IO_FLUSH)
|
|
soap->omode = (soap->omode & ~SOAP_IO) | SOAP_IO_CHUNK;
|
|
}
|
|
}
|
|
@@ -7573,6 +7579,8 @@
|
|
soap->c14ninclude = NULL; /* but do not render inclusive namespaces */
|
|
if ((soap->mode & SOAP_XML_INDENT))
|
|
soap->count += 5; /* correction for soap->ns = 0: add \n+indent */
|
|
+ if ((soap->mode & SOAP_XML_DEFAULTNS))
|
|
+ soap->count -= 2*(9 + strlen(ds_URI)); /* correct for xmlns="http://www.w3.org/2000/09/xmldsig#" added to SignedInfo and ds:SignatureValue */
|
|
}
|
|
soap_out_ds__SignedInfoType(soap, "ds:SignedInfo", 0, signature->SignedInfo, NULL);
|
|
soap_out__ds__SignatureValue(soap, "ds:SignatureValue", 0, &signature->SignatureValue, NULL);
|
|
diff -ur gsoap2-code-r187/gsoap/plugin/wsseapi.cpp gsoap2-code-r188/gsoap/plugin/wsseapi.cpp
|
|
--- gsoap2-code-r187/gsoap/plugin/wsseapi.cpp 2020-06-30 21:06:47.000000000 +0200
|
|
+++ gsoap2-code-r188/gsoap/plugin/wsseapi.cpp 2020-07-22 22:20:04.000000000 +0200
|
|
@@ -3956,9 +3956,12 @@
|
|
if (!strcmp(att->name, "xmlns"))
|
|
{
|
|
soap_attribute(soap, att->name, att->text);
|
|
+ prt = NULL;
|
|
break;
|
|
}
|
|
}
|
|
+ if (!prt)
|
|
+ break;
|
|
}
|
|
}
|
|
else
|
|
@@ -4247,9 +4250,12 @@
|
|
if (!strcmp(att->name, "xmlns"))
|
|
{
|
|
soap_attribute(soap, att->name, att->text);
|
|
+ prt = NULL;
|
|
break;
|
|
}
|
|
}
|
|
+ if (!prt)
|
|
+ break;
|
|
}
|
|
}
|
|
else
|
|
@@ -4984,7 +4990,7 @@
|
|
if (soap_tagsearch(data->encid, "ds:Signature"))
|
|
{
|
|
/* support ds:Signature encryption only with HTTP chunking, otherwise content length is incorrect */
|
|
- if ((soap->omode & SOAP_IO) == SOAP_IO_BUFFER)
|
|
+ if ((soap->omode & SOAP_IO) == SOAP_IO_BUFFER || (soap->omode & SOAP_IO) == SOAP_IO_FLUSH)
|
|
soap->omode = (soap->omode & ~SOAP_IO) | SOAP_IO_CHUNK;
|
|
}
|
|
}
|
|
@@ -7573,6 +7579,8 @@
|
|
soap->c14ninclude = NULL; /* but do not render inclusive namespaces */
|
|
if ((soap->mode & SOAP_XML_INDENT))
|
|
soap->count += 5; /* correction for soap->ns = 0: add \n+indent */
|
|
+ if ((soap->mode & SOAP_XML_DEFAULTNS))
|
|
+ soap->count -= 2*(9 + strlen(ds_URI)); /* correct for xmlns="http://www.w3.org/2000/09/xmldsig#" added to SignedInfo and ds:SignatureValue */
|
|
}
|
|
soap_out_ds__SignedInfoType(soap, "ds:SignedInfo", 0, signature->SignedInfo, NULL);
|
|
soap_out__ds__SignatureValue(soap, "ds:SignatureValue", 0, &signature->SignatureValue, NULL);
|