state!=SASL_LOGIN_STATE_START) { $client->error="LOGIN authentication state is not at the start"; return(SASL_FAIL); } $this->credentials=array( "user"=>"", "password"=>"", "realm"=>"" ); $defaults=array( "realm"=>"" ); $status=$client->GetCredentials($this->credentials,$defaults,$interactions); if($status==SASL_CONTINUE) $this->state=SASL_LOGIN_STATE_IDENTIFY_USER; Unset($message); return($status); } Function Step(&$client, $response, &$message, &$interactions) { switch($this->state) { case SASL_LOGIN_STATE_IDENTIFY_USER: $message=$this->credentials["user"].(strlen($this->credentials["realm"]) ? "@".$this->credentials["realm"] : ""); $this->state=SASL_LOGIN_STATE_IDENTIFY_PASSWORD; break; case SASL_LOGIN_STATE_IDENTIFY_PASSWORD: $message=$this->credentials["password"]; $this->state=SASL_LOGIN_STATE_DONE; break; case SASL_LOGIN_STATE_DONE: $client->error="LOGIN authentication was finished without success"; break; default: $client->error="invalid LOGIN authentication step state"; return(SASL_FAIL); } return(SASL_CONTINUE); } }; ?>