--- kdm/backend/session.c +++ kdm/backend/session.c @@ -136,7 +136,9 @@ td->hstent->npass = 0; newdmrc = td->hstent->nargs; td->hstent->nargs = 0; + ReStr( &curtype, "classic" ); cursource = (td->hstent->rLogin == 1) ? PWSRC_RELOGIN : PWSRC_MANUAL; + return 1; } else if (*td->autoUser && tdiff > 0) { unsigned int lmask; Window dummy1, dummy2; @@ -146,14 +148,13 @@ &lmask ); if (lmask & ShiftMask) return 0; - StrDup( &curuser, td->autoUser ); - StrDup( &curpass, td->autoPass ); + ReStr( &curuser, td->autoUser ); + ReStr( &curpass, td->autoPass ); + ReStr( &curtype, "classic" ); cursource = PWSRC_AUTOLOGIN; - } else { - cursource = PWSRC_MANUAL; - return 0; + return 1; } - return 1; + return 0; } @@ -365,6 +366,7 @@ if (curtype) free( curtype ); curtype = GRecvStr(); Debug( " type %\"s\n", curtype ); + cursource = PWSRC_MANUAL; if (Verify( conv_interact, rootok )) { Debug( " -> return success\n" ); GSendInt( V_OK ); @@ -548,7 +550,7 @@ } if (AutoLogon()) { - if (!StrDup( &curtype, "classic" ) || !Verify( conv_auto, FALSE )) + if (!Verify( conv_auto, FALSE )) goto gcont; if (greeter) GSendInt( V_OK );