]> asedeno.scripts.mit.edu Git - 1ts-debian.git/commitdiff
patch from eichin to fix crossed acks
authorkcr <kcr@cbed1d16-5ef5-0310-b6a1-d4a37b08ba1f>
Mon, 24 Mar 2008 23:33:03 +0000 (23:33 +0000)
committerkcr <kcr@cbed1d16-5ef5-0310-b6a1-d4a37b08ba1f>
Mon, 24 Mar 2008 23:33:03 +0000 (23:33 +0000)
git-svn-id: svn://svn.1ts.org/debian/branches/zephyr-reloaded@280 cbed1d16-5ef5-0310-b6a1-d4a37b08ba1f

zephyr/lib/ZLocations.c

index e721a9c00e3c0f044cf736c4a2adec392f8a96e6..f0bf0a731caa3867c11eb3f70ce42585f6bbb93b 100644 (file)
@@ -95,6 +95,13 @@ ZParseExposureLevel(char *text)
        return(NULL);
 }
 
+/* lifted from lib/ZSendPkt.c wait_for_hmack, but waits for SERVACK instead */
+static int
+wait_for_srvack(ZNotice_t *notice, ZUnique_Id_t *uid)
+{
+    return (notice->z_kind == SERVACK && ZCompareUID(&notice->z_uid, uid));
+}
+
 Code_t
 Z_SendLocation(char *class,
               char *opcode,
@@ -130,7 +137,7 @@ Z_SendLocation(char *class,
     if ((retval = ZSendList(&notice, bptr, 3, auth)) != ZERR_NONE)
        return (retval);
 
-    retval = Z_WaitForNotice (&retnotice, ZCompareUIDPred, &notice.z_uid,
+    retval = Z_WaitForNotice (&retnotice, wait_for_srvack, &notice.z_uid,
                              SRV_TIMEOUT);
     if (retval != ZERR_NONE)
       return retval;