You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2015/01/05 04:40:34 UTC

[2/3] qpid-proton git commit: made sasl layer emit transport events

made sasl layer emit transport events


Project: http://git-wip-us.apache.org/repos/asf/qpid-proton/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-proton/commit/86e08ba7
Tree: http://git-wip-us.apache.org/repos/asf/qpid-proton/tree/86e08ba7
Diff: http://git-wip-us.apache.org/repos/asf/qpid-proton/diff/86e08ba7

Branch: refs/heads/master
Commit: 86e08ba72facdecf8c9da4cfd21800d4fc271be9
Parents: 7359e2e
Author: Rafael Schloming <rh...@alum.mit.edu>
Authored: Sun Jan 4 22:25:53 2015 -0500
Committer: Rafael Schloming <rh...@alum.mit.edu>
Committed: Sun Jan 4 22:25:53 2015 -0500

----------------------------------------------------------------------
 proton-c/src/sasl/sasl.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/qpid-proton/blob/86e08ba7/proton-c/src/sasl/sasl.c
----------------------------------------------------------------------
diff --git a/proton-c/src/sasl/sasl.c b/proton-c/src/sasl/sasl.c
index 5e68233..cf8bd3b 100644
--- a/proton-c/src/sasl/sasl.c
+++ b/proton-c/src/sasl/sasl.c
@@ -98,6 +98,14 @@ const pn_io_layer_t sasl_layer = {
     NULL
 };
 
+static void pni_emit(pn_sasl_t *sasl) {
+  pn_transport_t *transport = get_transport_internal(sasl);
+  if (transport->connection && transport->connection->collector) {
+    pn_collector_t *collector = transport->connection->collector;
+    pn_collector_put(collector, PN_OBJECT, transport, PN_TRANSPORT);
+  }
+}
+
 pn_sasl_t *pn_sasl(pn_transport_t *transport)
 {
   if (!transport->sasl) {
@@ -147,6 +155,7 @@ void pn_sasl_mechanisms(pn_sasl_t *sasl0, const char *mechanisms)
   pni_sasl_t *sasl = get_sasl_internal(sasl0);
   if (!sasl) return;
   sasl->mechanisms = pn_strdup(mechanisms);
+  pni_emit(sasl0);
 }
 
 const char *pn_sasl_remote_mechanisms(pn_sasl_t *sasl0)
@@ -165,6 +174,7 @@ ssize_t pn_sasl_send(pn_sasl_t *sasl0, const char *bytes, size_t size)
     }
     int err = pn_buffer_append(sasl->send_data, bytes, size);
     if (err) return err;
+    pni_emit(sasl0);
     return size;
   } else {
     return PN_ARG_ERR;
@@ -255,6 +265,7 @@ void pn_sasl_done(pn_sasl_t *sasl0, pn_sasl_outcome_t outcome)
       sasl->rcvd_done = true;
       sasl->sent_done = true;
     }
+    pni_emit(sasl0);
   }
 }
 
@@ -285,6 +296,7 @@ void pn_client_init(pn_transport_t *transport)
   pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[sz]", SASL_INIT, sasl->mechanisms,
                 bytes.size, bytes.start);
   pn_buffer_clear(sasl->send_data);
+  pni_emit((pn_sasl_t *) transport);
 }
 
 void pn_server_init(pn_transport_t *transport)
@@ -317,6 +329,7 @@ void pn_server_init(pn_transport_t *transport)
   }
 
   pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[@T[*s]]", SASL_MECHANISMS, PN_SYMBOL, count, mechs);
+  pni_emit((pn_sasl_t *) transport);
 }
 
 void pn_server_done(pn_sasl_t *sasl0)
@@ -324,6 +337,7 @@ void pn_server_done(pn_sasl_t *sasl0)
   pn_transport_t *transport = get_transport_internal(sasl0);
   pni_sasl_t *sasl = transport->sasl;
   pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[B]", SASL_OUTCOME, sasl->outcome);
+  pni_emit(sasl0);
 }
 
 void pn_sasl_process(pn_transport_t *transport)
@@ -343,6 +357,7 @@ void pn_sasl_process(pn_transport_t *transport)
     pn_post_frame(transport, SASL_FRAME_TYPE, 0, "DL[z]", sasl->client ? SASL_RESPONSE : SASL_CHALLENGE,
                   bytes.size, bytes.start);
     pn_buffer_clear(sasl->send_data);
+    pni_emit((pn_sasl_t *) transport);
   }
 
   if (!sasl->client && sasl->outcome != PN_SASL_NONE && !sasl->sent_done) {
@@ -451,6 +466,7 @@ int pn_do_outcome(pn_transport_t *transport, uint8_t frame_type, uint16_t channe
   sasl->rcvd_done = true;
   sasl->sent_done = true;
   sasl->halt = true;
+  pni_emit((pn_sasl_t *) transport);
   return 0;
 }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org