1/*
2 * Copyright (c) 1990,1993 Regents of The University of Michigan.
3 * All Rights Reserved.  See COPYRIGHT.
4 */
5
6#ifndef AFPD_AUTH_H
7#define AFPD_AUTH_H 1
8
9#ifdef HAVE_LIMITS_H
10#include <limits.h>
11#endif /* HAVE_LIMITS_H */
12
13#ifdef HAVE_SYS_CDEFS_H
14#include <sys/cdefs.h>
15#endif /* HAVE_SYS_CDEFS_H */
16
17#include <atalk/globals.h>
18
19struct afp_versions {
20    char	*av_name;
21    int		av_number;
22};
23
24static const struct afp_versions  afp_versions[] = {
25#ifndef NO_DDP
26    { "AFPVersion 1.1", 11 },
27    { "AFPVersion 2.0", 20 },
28    { "AFPVersion 2.1", 21 },
29#endif /* ! NO_DDP */
30    { "AFP2.2", 22 },
31    { "AFPX03", 30 },
32    { "AFP3.1", 31 },
33    { "AFP3.2", 32 },
34    { "AFP3.3", 33 }
35};
36
37/* for GetUserInfo */
38#define USERIBIT_USER  (1 << 0)
39#define USERIBIT_GROUP (1 << 1)
40#define USERIBIT_UUID  (1 << 2)
41#define USERIBIT_ALL   (USERIBIT_USER | USERIBIT_GROUP | USERIBIT_UUID)
42
43extern uid_t    uuid;
44#if defined( sun ) && !defined( __svr4__ ) || defined( ultrix )
45extern int	*groups;
46#else /*sun __svr4__ ultrix*/
47extern gid_t	*groups;
48#endif /*sun __svr4__ ultrix*/
49extern int	ngroups;
50
51extern int set_groups(AFPObj *obj, struct passwd *pwd);
52extern const char *print_groups(int ngroups, gid_t *groups);
53
54/* FP functions */
55int afp_login (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
56int afp_login_ext (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
57int afp_logincont (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
58int afp_changepw (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
59int afp_logout (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
60int afp_getuserinfo (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
61int afp_getsession (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
62int afp_disconnect (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
63int afp_zzz (AFPObj *obj, char *ibuf, size_t ibuflen, char *rbuf,  size_t *rbuflen);
64
65#endif /* auth.h */
66