NE_SET_SERVER_AUTH(3)
NAME
ne_set_server_auth, ne_set_proxy_auth, ne_forget_auth - register
authentication callbacks
SYNOPSIS
#include <ne_auth.h> typedef int (*ne_auth_creds)(void *userdata, const char *realm, int attempt, char *username, char *password); void ne_set_server_auth(ne_session *session, ne_auth_creds callback, void *userdata); void ne_set_proxy_auth(ne_session *session, ne_auth_creds callback, void *userdata); void ne_forget_auth(ne_session *session);
DESCRIPTION
The ne_auth_creds function type defines a callback which is invoked
when a server or proxy server requires user authentication for a
particular request. The realm string is supplied by the server. The
attempt is a counter giving the number of times the request has been
retried with different authentication credentials. The first time the
callback is invoked for a particular request, attempt will be zero.
- To retry the request using new authentication credentials, the callback
should return zero, and the username and password buffers must contain
NUL-terminated strings. The NE_ABUFSIZ constant gives the size of these
buffers.
- Tip
If you only wish to allow the user one attempt to enter
credentials, use the value of the attempt parameter as the return value of the callback. - To abort the request, the callback should return a non-zero value; in
which case the contents of the username and password buffers are ignored. - The ne_forget_auth function can be used to discard the cached authentication credentials.
EXAMPLES
/* Function which prompts for a line of user input: */
extern char *prompt_for(const char *prompt);
- static int
my_auth(void *userdata, const char *realm, int attempts, - char *username, char *password)
- {
- strncpy(username, prompt_for("Username: "), NE_ABUFSIZ);
strncpy(password, prompt_for("Password: "), NE_ABUFSIZ);
return attempts; - }
- int main(...)
{ - ne_session *sess = ne_session_create(...);
- ne_set_server_auth(sess, my_auth, NULL);
- /* ... */
- }
AUTHOR
- Joe Orton <neon@lists.manyfish.co.uk>
- Author.