diff options
author | Karl Ramm <kcr@mit.edu> | 2008-03-24 23:33:03 +0000 |
---|---|---|
committer | Karl Ramm <kcr@mit.edu> | 2008-03-24 23:33:03 +0000 |
commit | 8a382cc10f75deb474ae6d6959e6ded952203ae5 (patch) | |
tree | 184689da5a9a8894f44867d3f2fe27dd0c6bf2a0 /lib/ZLocations.c | |
parent | 6843142aa38e83a5102574d66c6f20fd7688ed8f (diff) |
patch from eichin to fix crossed acks
Diffstat (limited to 'lib/ZLocations.c')
-rw-r--r-- | lib/ZLocations.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/ZLocations.c b/lib/ZLocations.c index e721a9c..f0bf0a7 100644 --- a/lib/ZLocations.c +++ b/lib/ZLocations.c @@ -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(¬ice->z_uid, uid)); +} + Code_t Z_SendLocation(char *class, char *opcode, @@ -130,7 +137,7 @@ Z_SendLocation(char *class, if ((retval = ZSendList(¬ice, bptr, 3, auth)) != ZERR_NONE) return (retval); - retval = Z_WaitForNotice (&retnotice, ZCompareUIDPred, ¬ice.z_uid, + retval = Z_WaitForNotice (&retnotice, wait_for_srvack, ¬ice.z_uid, SRV_TIMEOUT); if (retval != ZERR_NONE) return retval; |