#include <unistd.h>
#include <errno.h>
#include "ad_func.h"
extern int errno;
int
main(int argc,char **argv)
{
char *login, *password;
int r, i;
char up[CHAR_MAX];
int uplen;
ad_pwd *ad;
if (!argv[1]) _exit(2);
uplen = 0;
for (;;) {
do
r = read(3,up + uplen,sizeof(up) - uplen);
while ((r == -1) && (errno == EINTR));
if (r == -1) _exit(111);
if (r == 0) break;
uplen += r;
if (uplen >= sizeof(up)) _exit(1);
}
close(3);
i = 0;
if (i >= uplen) _exit(2);
login = up + i;
while (up[i++]) if (i >= uplen) _exit(2);
password = up + i;
if (i >= uplen) _exit(2);
while (up[i++]) if (i >= uplen) _exit(2);
if(ad_verify_user(login, password)!=AD_SUCCESS) _exit(111);
ad=getdefault_mailuser(login);
if(!ad->is_complete) _exit(111);
if(!setup_identity(ad)) _exit(111);
execvp(argv[1],argv + 1);
_exit(111);
}
syntax highlighted by Code2HTML, v. 0.9.1