daemon/lookup.cc
changeset 2 b3afb9f1e801
parent 0 6f7a81934006
equal deleted inserted replaced
1:30113bfbe723 2:b3afb9f1e801
    38     RETURN(err, "Incorrect password");
    38     RETURN(err, "Incorrect password");
    39   if(virtname.empty())
    39   if(virtname.empty())
    40     RETURN(err, "User name does not refer to a virtual user");
    40     RETURN(err, "User name does not refer to a virtual user");
    41   state = new saved_state(pw);
    41   state = new saved_state(pw);
    42   if(mustexist) {
    42   if(mustexist) {
    43     vpw = state->domain.lookup(virtname, true);
    43     vpw = state->domain.lookup(virtname);
    44     if(!vpw)
    44     if(!vpw)
    45       RETURN(err, "Invalid or unknown virtual user");
    45       RETURN(err, "Invalid or unknown virtual user");
    46     else if(!passok && !vpw->authenticate(password))
    46     else if(!passok && !vpw->authenticate(password))
    47       RETURN(err, "Incorrect password");
    47       RETURN(err, "Incorrect password");
    48     else
    48     else
    49       RETURN(ok, "");
    49       RETURN(ok, "");
    50   }
    50   }
    51   else {			// user must not already exist
    51   else {			// user must not already exist
    52     vpw = state->domain.lookup(virtname, true);
    52     vpw = state->domain.lookup(virtname);
    53     if(vpw)
    53     if(vpw)
    54       RETURN(err, "Virtual user already exists");
    54       RETURN(err, "Virtual user already exists");
    55     else {
    55     else {
    56       vpw = new vpwentry(virtname, "*", 0, 0);
    56       vpw = new vpwentry(virtname, "*", 0, 0, false);
    57       vpw->set_defaults(true, true);
       
    58       RETURN(ok, "");
    57       RETURN(ok, "");
    59     }
    58     }
    60   }
    59   }
    61 }
    60 }
    62 
    61