## Authenticate Callback

Authenticate Callback — Defining an Authenticate Callback

## Authenticate Callback

The "authenticate" callback allows a program to prompt for an authentication token after receiving an indication from a DMAP server that authentication is required. Once it receives the authentication token, the callback should call dmap_connection_authenticate_message.

The following is a simple "authenticate" callback:

    static void
    authenticate_cb(DmapConnection *connection,
                    const char     *name,
                    SoupSession    *session,
                    SoupMessage    *msg,
                    SoupAuth       *auth,
                    gboolean        retrying,
                    gpointer        user_data)
    {
    	char *username, password[BUFSIZ + 1];
    	g_object_get (connection, "username", &username, NULL);
    	fgets (password, BUFSIZ, stdin);
    	password[strlen(password) - 1] = 0x00; /* Remove newline. */

    	dmap_connection_authenticate_message(connection, session, msg, auth, password);

    	g_free(username);
    }