henesyinit from p9fce6d0435 years agoHistory
38 lines · 650 B · C
RawDownload
#include <u.h>#include <libc.h>#include <auth.h>#include "authlocal.h" static char *ccmsg = "can't connect to AS"; intauthenticate(int fd, int afd){	int rv;	char trbuf[TICKREQLEN];	char tbuf[2*TICKETLEN]; 	if(fsession(fd, trbuf) < 0){		werrstr("fsession: %r");		return -1;	} 	/* no authentication required? */	memset(tbuf, 0, 2*TICKETLEN);	if(trbuf[0] == 0)		return 0; 	/* try getting to an auth server */	if(afd >= 0)		return _asgetticket(afd, trbuf, tbuf);	afd = authdial();	if(afd < 0){		werrstr(ccmsg);		return -1;	}	rv = _asgetticket(afd, trbuf, tbuf);	close(afd);	if(rv < 0)		return -1;	return fauth(fd, tbuf);}