You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2017/09/01 15:03:48 UTC
[20/50] qpid-proton git commit: PROTON-1539: Ensure that SASL
challenge and response frames generate a binary - And never a null even if
the binary is zero length
PROTON-1539: Ensure that SASL challenge and response frames generate a binary
- And never a null even if the binary is zero length
Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/1b1f3f9c
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/1b1f3f9c
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/1b1f3f9c
Branch: refs/heads/go1
Commit: 1b1f3f9cae1c68545f93c74e017edae039875440
Parents: 46f3007
Author: Andrew Stitcher <as...@apache.org>
Authored: Mon Aug 14 14:38:26 2017 -0400
Committer: Andrew Stitcher <as...@apache.org>
Committed: Mon Aug 14 15:27:04 2017 -0400
----------------------------------------------------------------------
proton-c/src/core/codec.c | 8 ++++++++
proton-c/src/sasl/cyrus_sasl.c | 3 +++
proton-c/src/sasl/sasl.c | 4 ++--
3 files changed, 13 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1b1f3f9c/proton-c/src/core/codec.c
----------------------------------------------------------------------
diff --git a/proton-c/src/core/codec.c b/proton-c/src/core/codec.c
index 7809907..3417c94 100644
--- a/proton-c/src/core/codec.c
+++ b/proton-c/src/core/codec.c
@@ -529,6 +529,14 @@ int pn_data_vfill(pn_data_t *data, const char *fmt, va_list ap)
case 'd':
err = pn_data_put_double(data, va_arg(ap, double));
break;
+ case 'Z':
+ {
+ // For maximum portability, caller must pass these as two separate args, not a single struct
+ size_t size = va_arg(ap, size_t);
+ char *start = va_arg(ap, char *);
+ err = pn_data_put_binary(data, pn_bytes(size, start));
+ }
+ break;
case 'z':
{
// For maximum portability, caller must pass these as two separate args, not a single struct
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1b1f3f9c/proton-c/src/sasl/cyrus_sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/cyrus_sasl.c b/proton-c/src/sasl/cyrus_sasl.c
index ae910f4..88bdd7a 100644
--- a/proton-c/src/sasl/cyrus_sasl.c
+++ b/proton-c/src/sasl/cyrus_sasl.c
@@ -440,6 +440,9 @@ static int pni_wrap_server_start(pn_transport_t *transport, const char *mech_sel
if (!in_bytes && strcmp(mech_selected, "ANONYMOUS")==0) {
in_bytes = "";
in_size = 0;
+ } else if (in_bytes && strcmp(mech_selected, "CRAM-MD5")==0) {
+ in_bytes = 0;
+ in_size = 0;
}
result = sasl_server_start(cyrus_conn,
mech_selected,
http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/1b1f3f9c/proton-c/src/sasl/sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/sasl.c b/proton-c/src/sasl/sasl.c
index 1469c51..fe778be 100644
--- a/proton-c/src/sasl/sasl.c
+++ b/proton-c/src/sasl/sasl.c
@@ -460,7 +460,7 @@ static void pni_post_sasl_frame(pn_transport_t *transport)
}
case SASL_POSTED_RESPONSE:
if (sasl->last_state != SASL_POSTED_RESPONSE) {
- pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[z]", SASL_RESPONSE, out.size, out.start);
+ pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[Z]", SASL_RESPONSE, out.size, out.start);
pni_emit(transport);
}
break;
@@ -469,7 +469,7 @@ static void pni_post_sasl_frame(pn_transport_t *transport)
desired_state = SASL_POSTED_MECHANISMS;
continue;
} else if (sasl->last_state != SASL_POSTED_CHALLENGE) {
- pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[z]", SASL_CHALLENGE, out.size, out.start);
+ pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[Z]", SASL_CHALLENGE, out.size, out.start);
pni_emit(transport);
}
break;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org