]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
packet: make it possible to free the packet_context from the send_callback
authorStefan Metzmacher <metze@samba.org>
Mon, 7 Jul 2008 16:55:59 +0000 (18:55 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 7 Jul 2008 19:42:10 +0000 (21:42 +0200)
metze
(cherry picked from commit 20795c4a0d5f75561561470231de1a2fad2906ff)

source/lib/stream/packet.c

index 51021c1fc619da4d906b6ae85b6907cc5ebce104..92fa0e5a548af0d0053f67a5bbfc48494a53dff6 100644 (file)
@@ -469,7 +469,13 @@ _PUBLIC_ void packet_queue_run(struct packet_context *pc)
                if (el->nsent == el->blob.length) {
                        DLIST_REMOVE(pc->send_queue, el);
                        if (el->send_callback) {
+                               pc->busy = true;
                                el->send_callback(el->send_callback_private);
+                               pc->busy = false;
+                               if (pc->destructor_called) {
+                                       talloc_free(pc);
+                                       return;
+                               }
                        }
                        talloc_free(el);
                }