You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@zookeeper.apache.org by ma...@apache.org on 2009/02/27 21:04:37 UTC

svn commit: r748676 - in /hadoop/zookeeper/branches/branch-3.1: CHANGES.txt src/c/src/zookeeper.c

Author: mahadev
Date: Fri Feb 27 20:04:36 2009
New Revision: 748676

URL: http://svn.apache.org/viewvc?rev=748676&view=rev
Log:
ZOOKEEPER-320. call auth completion in free_completions(). (chris darroch via mahadev)

Modified:
    hadoop/zookeeper/branches/branch-3.1/CHANGES.txt
    hadoop/zookeeper/branches/branch-3.1/src/c/src/zookeeper.c

Modified: hadoop/zookeeper/branches/branch-3.1/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/branches/branch-3.1/CHANGES.txt?rev=748676&r1=748675&r2=748676&view=diff
==============================================================================
--- hadoop/zookeeper/branches/branch-3.1/CHANGES.txt (original)
+++ hadoop/zookeeper/branches/branch-3.1/CHANGES.txt Fri Feb 27 20:04:36 2009
@@ -17,6 +17,9 @@
   ZOOKEEPER-319. add locking around auth info in zhandle_t (chris darroch via
 mahadev)
 
+  ZOOKEEPER-320. call auth completion in free_completions(). (chris darroch
+via mahadev)
+
 IMPROVEMENTS:
 
 NEW FEATURES:

Modified: hadoop/zookeeper/branches/branch-3.1/src/c/src/zookeeper.c
URL: http://svn.apache.org/viewvc/hadoop/zookeeper/branches/branch-3.1/src/c/src/zookeeper.c?rev=748676&r1=748675&r2=748676&view=diff
==============================================================================
--- hadoop/zookeeper/branches/branch-3.1/src/c/src/zookeeper.c (original)
+++ hadoop/zookeeper/branches/branch-3.1/src/c/src/zookeeper.c Fri Feb 27 20:04:36 2009
@@ -761,6 +761,8 @@
     completion_head_t tmp_list;
     struct oarchive *oa;
     struct ReplyHeader h;
+    void_completion_t auth_completion = NULL;
+    const char *auth_data = NULL;
 
     lock_completion_list(&zh->sent_requests);
     tmp_list = zh->sent_requests;
@@ -800,6 +802,18 @@
             }
         }
     }
+
+    zoo_lock_auth(zh);
+    if (zh->auth.completion) {
+        auth_completion = zh->auth.completion;
+        auth_data = zh->auth.data;
+        zh->auth.completion = 0;
+    }
+    zoo_unlock_auth(zh);
+
+    if (auth_completion) {
+        auth_completion(reason, auth_data);
+    }
 }
 
 static void cleanup_bufs(zhandle_t *zh,int callCompletion,int rc)