1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
/* This file is part of the Project Athena Zephyr Notification System.
* It contains source for the ZNewLocateUser function.
*
* Created by: Robert French
*
* $Id: c598c2695f2b222984e96492be9ea9a795d8d7b0 $
*
* Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
* For copying and distribution information, see the file
* "mit-copyright.h".
*/
#include <internal.h>
#ifndef lint
static const char rcsid_ZNewLocateUser_c[] =
"$Id: c598c2695f2b222984e96492be9ea9a795d8d7b0 $";
#endif
Code_t
ZLocateUser(char *user,
int *nlocs,
Z_AuthProc auth)
{
Code_t retval;
ZNotice_t notice;
ZAsyncLocateData_t zald;
(void) ZFlushLocations(); /* ZFlushLocations never fails (the library
is allowed to know this). */
if ((retval = ZRequestLocations(user, &zald, UNACKED, auth)) != ZERR_NONE)
return(retval);
retval = Z_WaitForNotice (¬ice, ZCompareALDPred, &zald, SRV_TIMEOUT);
if (retval == ZERR_NONOTICE)
return ETIMEDOUT;
if (retval != ZERR_NONE)
return retval;
if ((retval = ZParseLocations(¬ice, &zald, nlocs, NULL)) != ZERR_NONE) {
ZFreeNotice(¬ice);
return(retval);
}
ZFreeNotice(¬ice);
ZFreeALD(&zald);
return(ZERR_NONE);
}
|