Header And Logo

PostgreSQL
| The world's most advanced open source database.

Functions | Variables

auth_delay.c File Reference

#include "postgres.h"
#include "libpq/auth.h"
#include "port.h"
#include "utils/guc.h"
#include "utils/timestamp.h"
Include dependency graph for auth_delay.c:

Go to the source code of this file.

Functions

void _PG_init (void)
static void auth_delay_checks (Port *port, int status)

Variables

 PG_MODULE_MAGIC
static int auth_delay_milliseconds
static
ClientAuthentication_hook_type 
original_client_auth_hook = NULL

Function Documentation

void _PG_init ( void   ) 

Definition at line 54 of file auth_delay.c.

{
    /* Define custom GUC variables */
    DefineCustomIntVariable("auth_delay.milliseconds",
             "Milliseconds to delay before reporting authentication failure",
                            NULL,
                            &auth_delay_milliseconds,
                            0,
                            0, INT_MAX / 1000,
                            PGC_SIGHUP,
                            GUC_UNIT_MS,
                            NULL,
                            NULL,
                            NULL);
    /* Install Hooks */
    original_client_auth_hook = ClientAuthentication_hook;
    ClientAuthentication_hook = auth_delay_checks;
}

static void auth_delay_checks ( Port port,
int  status 
) [static]

Definition at line 33 of file auth_delay.c.

References auth_delay_milliseconds, original_client_auth_hook, pg_usleep(), and STATUS_OK.

{
    /*
     * Any other plugins which use ClientAuthentication_hook.
     */
    if (original_client_auth_hook)
        original_client_auth_hook(port, status);

    /*
     * Inject a short delay if authentication failed.
     */
    if (status != STATUS_OK)
    {
        pg_usleep(1000L * auth_delay_milliseconds);
    }
}


Variable Documentation

Definition at line 24 of file auth_delay.c.

Referenced by _PG_init(), and auth_delay_checks().

Definition at line 27 of file auth_delay.c.

Referenced by _PG_init(), and auth_delay_checks().

Definition at line 19 of file auth_delay.c.