preauthmysql.c
上传用户:s81996212
上传日期:2007-01-04
资源大小:722k
文件大小:1k
- /*
- ** Copyright 1998 - 1999 Double Precision, Inc. See COPYING for
- ** distribution information.
- */
- #if HAVE_CONFIG_H
- #include "config.h"
- #endif
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <errno.h>
- #include <pwd.h>
- #if HAVE_UNISTD_H
- #include <unistd.h>
- #endif
- #include "auth.h"
- #include "authmod.h"
- #include "authmysql.h"
- static const char rcsid[]="$Id: preauthmysql.c,v 1.5 2000/07/04 00:08:56 mrsam Exp $";
- int auth_mysql_pre(const char *user, const char *service,
- int (*callback)(struct authinfo *, void *), void *arg)
- {
- struct authmysqluserinfo *authinfo;
- struct authinfo aa;
- authinfo=auth_mysql_getuserinfo(user);
- if (!authinfo) /* Fatal error - such as MySQL being down */
- return (1);
- if (!authinfo->home) /* User not found */
- return (-1);
- memset(&aa, 0, sizeof(aa));
- /*aa.sysusername=user;*/
- aa.sysuserid= &authinfo->uid;
- aa.sysgroupid= authinfo->gid;
- aa.homedir=authinfo->home;
- aa.maildir=authinfo->maildir && authinfo->maildir[0] ?
- authinfo->maildir:0;
- aa.address=authinfo->username;
- aa.passwd=authinfo->cryptpw;
- aa.clearpasswd=authinfo->clearpw;
- return ((*callback)(&aa, arg));
- }