#ifndef UAM_H
#define UAM_H 1
-#include <sys/cdefs.h>
#include <pwd.h>
#include <stdarg.h>
#endif /* TRU64 */
/* just a label for exported bits */
-#define UAM_MODULE_EXPORT
+#ifndef UAM_MODULE_EXPORT
+#define UAM_MODULE_EXPORT
+#endif
/* type of uam */
#define UAM_MODULE_SERVER 1
#define UAM_OPTION_RANDNUM (1 << 4) /* request a random number */
#define UAM_OPTION_HOSTNAME (1 << 5) /* get host name */
#define UAM_OPTION_COOKIE (1 << 6) /* cookie handle */
-#define UAM_OPTION_PROTOCOL (1 << 7) /* DSI or ASP */
#define UAM_OPTION_CLIENTNAME (1 << 8) /* get client IP address */
#define UAM_OPTION_KRB5SERVICE (1 << 9) /* service name for krb5 principal */
#define UAM_OPTION_MACCHARSET (1 << 10) /* mac charset handle */
* get back the corresponding option. not all of these are implemented. */
#define UAM_PASSWD_FILENAME (1 << 0)
#define UAM_PASSWD_MINLENGTH (1 << 1)
-#define UAM_PASSWD_MAXFAIL (1 << 2) /* not implemented yet. */
#define UAM_PASSWD_EXPIRETIME (1 << 3) /* not implemented yet. */
/* max lenght of username */
* support is braindead. it also allows me to do a little versioning. */
struct uam_export {
int uam_type, uam_version;
- int (*uam_setup)(const char *);
+ int (*uam_setup)(void *, const char *);
void (*uam_cleanup)(void);
};
size_t cryptedkey_len;
void *sessiontoken; /* session token sent to the client on FPGetSessionToken*/
size_t sessiontoken_len;
+ void *clientid; /* whole buffer cotaining eg idlen, id and boottime */
+ size_t clientid_len;
};
/* register and unregister uams with these functions */
-extern int uam_register (const int, const char *, const char *, ...);
-extern void uam_unregister (const int, const char *);
+extern UAM_MODULE_EXPORT int uam_register (const int, const char *, const char *, ...);
+extern UAM_MODULE_EXPORT void uam_unregister (const int, const char *);
/* helper functions */
-extern struct passwd *uam_getname (void*, char *, const int);
-extern int uam_checkuser (const struct passwd *);
+extern UAM_MODULE_EXPORT struct passwd *uam_getname (void*, char *, const int);
+extern UAM_MODULE_EXPORT int uam_checkuser (const struct passwd *);
/* afp helper functions */
-extern int uam_afp_read (void *, char *, size_t *,
+extern UAM_MODULE_EXPORT int uam_afp_read (void *, char *, size_t *,
int (*)(void *, void *, const int));
-extern int uam_afpserver_option (void *, const int, void *, size_t *);
+extern UAM_MODULE_EXPORT int uam_afpserver_option (void *, const int, void *, size_t *);
+
#ifdef TRU64
extern void uam_afp_getcmdline (int *, char ***);
extern int uam_sia_validate_user (sia_collect_func_t *, int, char **,