diff options
-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; |