## Name

auth_meta — Authentication metadata

## Synopsis

#include <courierauth.h>

`struct auth_meta *meta=auth_meta_init_default(` | void`)`;

`void auth_meta_destroy_default(` | struct auth_meta *meta`)`;

## DESCRIPTION

The auth_meta structure provides additional, optional metadata for auth_login_meta(3), auth_generic_meta(3), and auth_getuserinfo_meta(3).

>     struct auth_meta {
>         char **envvars;
>     };

Description of the above fields:

envvars

  An array of opaque “`name`=`value`” strings, ending with a null pointer.

The library recognizes the following `envvars` variables:

TCPREMOTEIP

  The IP address the authentication request came from.

### Initializing a default auth_meta

`auth_meta_init_default` creates an auth_meta with default values. A NULL pointer gets returned if the object could not be created. `auth_meta_destroy_default` frees the object and all memory used by it, after it is no longer needed.

Typical usage:

- `auth_meta_init_default` gets called to create an auth_meta.

- The pointer to the new auth_meta gets passed to auth_login_meta(3), auth_generic_meta(3) or auth_getuserinfo_meta(3).

- `auth_meta_destroy_default` deallocates and frees auth_meta's memory.

### Default auth_meta values

`auth_meta_init_default` creates an auth_meta with the following values:

- The `TCPREMOTEIP` environment variable, if set, is placed in the `TCPREMOTEIP` `envvars`

## SEE ALSO

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