sasl_server_start(26 March 2000)

NAME
sasl_server_start - Begin an authentication negotiation

SYNOPSIS
#include <sasl.h>

int sasl_server_start(sasl_conn_t * conn,
		           const char * mech,
		           const char * clientin,
		           unsigned * clientinlen,
		           char ** serverout,
		           unsigned * serveroutlen,
		           const char ** errstr);

DESCRIPTION
sasl_server_start() begins the authentication with the mechanism specified with mech. This fails if the mechanism is not supported. SASL_OK is returned if the authentication is complete and the user is authenticated. SASL_CONTINUE is returned if one or more steps are still required in the authentication. All other return values indicate failure. conn the SASL context for this connection mech the mechanism name that the client requested clientin client initial response, NULL if empty clientinlen length of initial response serverout is created by the library. It is the initial server response to send to the client. This is allocated for by the library and it is the job of the client to send it over the network to the server. Also protocal specific encoding (such as base64 encoding) must needs to be done by the server. serveroutlen length of initial server challenge errstr is set to a string to send to the user on failure

RETURN VALUE
sasl_server_start returns an integer which corresponds to one of the following codes. SASL_CONTINUE indicates sucess and that there are more steps needed in the authentication. All other return codes indicate errors and should either be handled or the authentication session should be quit.

ERRORS

SASL_CONTINUE
    Success. keep going.

SASL_INTERACT
    user interaction needed to fill in prompt_need list

SASL_BADVERS
    Mechanism version mismatch

SASL_BADPARAM
    error in config file

SASL_NOMEM
    not enough memory to complete operation

CONFORMING TO
RFC 2222

SEE ALSO
othersaslstuff