A small memory footprint AMQP implimentation

Dependents:   iothub_client_sample_amqp remote_monitoring simplesample_amqp

Revision:
29:4a11413cf217
Parent:
28:add19eb7defa
Child:
34:6be9c2058664
--- a/link.c	Fri Jun 30 10:41:22 2017 -0700
+++ b/link.c	Fri Jul 14 16:38:03 2017 -0700
@@ -277,6 +277,7 @@
                 (attach_get_initial_delivery_count(attach_handle, &link_instance->delivery_count) != 0))
             {
                 /* error */
+                remove_all_pending_deliveries(link_instance, true);
                 set_link_state(link_instance, LINK_STATE_DETACHED);
             }
             else
@@ -327,6 +328,7 @@
                     (flow_get_delivery_count(flow_handle, &rcv_delivery_count) != 0))
                 {
                     /* error */
+                    remove_all_pending_deliveries(link_instance, true);
                     set_link_state(link_instance, LINK_STATE_DETACHED);
                 }
                 else
@@ -546,12 +548,14 @@
             {
                 error_destroy(error);
 
+                remove_all_pending_deliveries(link_instance, true);
                 set_link_state(link_instance, LINK_STATE_ERROR);
             }
             else 
             {
                 (void)detach_get_closed(detach, &closed);
 
+                remove_all_pending_deliveries(link_instance, true);
                 set_link_state(link_instance, LINK_STATE_DETACHED);
             }
 
@@ -577,13 +581,13 @@
     }
     else if (new_session_state == SESSION_STATE_DISCARDING)
     {
+                remove_all_pending_deliveries(link_instance, true);
                 set_link_state(link_instance, LINK_STATE_DETACHED);
-                remove_all_pending_deliveries(link_instance, true);
     }
     else if (new_session_state == SESSION_STATE_ERROR)
     {
+                remove_all_pending_deliveries(link_instance, true);
                 set_link_state(link_instance, LINK_STATE_ERROR);
-                remove_all_pending_deliveries(link_instance, true);
     }
 }