GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
NE_SET_SERVER_AUTH(3) neon API reference NE_SET_SERVER_AUTH(3)

ne_set_server_auth, ne_set_proxy_auth, ne_forget_auth - register authentication callbacks

#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);

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.

/* 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);
   /* ... */
}

Joe Orton <neon@lists.manyfish.co.uk>
Author.

12 January 2022 neon 0.32.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.