## Name

auth_enumerate — Obtain list of accounts

## Synopsis

#include <courierauth.h>

`auth_enumerate(` | int (*callback_func) `(`const char *, uid_t, gid_t, const char *, const char *, const char *, void *`)`,
| void *callback_arg`)`;

## DESCRIPTION

`auth_enumerate` enumerates all of the available accounts. `auth_enumerate` repeatedly calls `callback_func`, once for each account. `callback_func` receives the following arguments:

- Account name.

- Account's numeric userid.

- Account's numeric groupid.

- Account's home directory.

- Account's mailbox (if defined, may be `NULL`, which indicates the default mailbox location).

- Account's options string (if defined, may be `NULL`)

- `callback_arg`, verbatim.

After invoking `callback_func` for the last account, `auth_enumerate` invokes `callback_func` one more time with all parameters set to `NULL` or 0.

If `auth_enumerate` encounters an error it will terminate without calling `callback_func` with all `NULL` or 0 parameters. This can be used to determine whether a partial list of accounts was received.

### Note

Some back-end Courier authentication modules do not implement account enumeration, so this function may not be available in all configurations.

## SEE ALSO

authlib(3), auth_generic_meta(3), auth_login_meta(3), auth_getuserinfo_meta(3), auth_passwd(3).