[gaim-migrate @ 5229]
[pidgin-git.git] / src / protocols / zephyr / ZNewLocU.c
blobd631c49d1d5a77b229a74a0266fbc1e2fe312f73
1 /* This file is part of the Project Athena Zephyr Notification System.
2 * It contains source for the ZNewLocateUser function.
4 * Created by: Robert French
6 * $Source$
7 * $Author: warmenhoven $
9 * Copyright (c) 1987,1988,1991 by the Massachusetts Institute of Technology.
10 * For copying and distribution information, see the file
11 * "mit-copyright.h".
13 /* $Header$ */
15 #include <internal.h>
17 #ifndef lint
18 static const char rcsid_ZNewLocateUser_c[] =
19 "$Id: ZNewLocU.c 2096 2001-07-31 01:00:39Z warmenhoven $";
20 #endif
22 Code_t ZLocateUser(user, nlocs, auth)
23 char *user;
24 int *nlocs;
25 Z_AuthProc auth;
27 Code_t retval;
28 ZNotice_t notice;
29 ZAsyncLocateData_t zald;
31 (void) ZFlushLocations(); /* ZFlushLocations never fails (the library
32 is allowed to know this). */
34 if ((retval = ZRequestLocations(user, &zald, UNACKED, auth)) != ZERR_NONE)
35 return(retval);
37 retval = Z_WaitForNotice (&notice, ZCompareALDPred, &zald, SRV_TIMEOUT);
38 if (retval == ZERR_NONOTICE)
39 return ETIMEDOUT;
40 if (retval != ZERR_NONE)
41 return retval;
43 if ((retval = ZParseLocations(&notice, &zald, nlocs, NULL)) != ZERR_NONE) {
44 ZFreeNotice(&notice);
45 return(retval);
48 ZFreeNotice(&notice);
49 ZFreeALD(&zald);
50 return(ZERR_NONE);