authctxt->pw = fakepw();
input_userauth_request(int type, u_int32_t seq, void *ctxt){	Authctxt *authctxt = ctxt;	Authmethod *m = NULL;	char *user, *service, *method, *style = NULL;	int authenticated = 0;	if (authctxt == NULL)		fatal("input_userauth_request: no authctxt");	user = packet_get_string(NULL);	service = packet_get_string(NULL);	method = packet_get_string(NULL);	debug("userauth-request for user %s service %s method %s", user, service, method);	debug("attempt %d failures %d", authctxt->attempt, authctxt->failures);	if ((style = strchr(user, ':')) != NULL)		*style++ = 0;	if (authctxt->attempt++ == 0) {		/* setup auth context */		authctxt->pw = PRIVSEP(getpwnamallow(user));		if (authctxt->pw && strcmp(service, "ssh-connection")==0) {			authctxt->valid = 1;			debug2("input_userauth_request: setting up authctxt for %s", user);		} else {			logit("input_userauth_request: illegal user %s", user);		}		setproctitle("%s%s", authctxt->pw ? user : "unknown",		    use_privsep ? " [net]" : "");		authctxt->user = xstrdup(user);		authctxt->service = xstrdup(service);		authctxt->style = style ? xstrdup(style) : NULL;		if (use_privsep)			mm_inform_authserv(service, style);	} else if (strcmp(user, authctxt->user) != 0 ||	    strcmp(service, authctxt->service) != 0) {		packet_disconnect("Change of username or service not allowed: "		    "(%s,%s) -> (%s,%s)",		    authctxt->user, authctxt->service, user, service);	}	/* reset state */	auth2_challenge_stop(authctxt);#ifdef GSSAPI	dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_TOKEN, NULL);	dispatch_set(SSH2_MSG_USERAUTH_GSSAPI_EXCHANGE_COMPLETE, NULL);#endif	authctxt->postponed = 0;	/* try to authenticate user */	m = authmethod_lookup(method);	if (m != NULL) {		debug2("input_userauth_request: try method %s", method);		authenticated =	m->userauth(authctxt);	}	userauth_finish(authctxt, authenticated, method);	xfree(service);	xfree(user);	xfree(method);}