PG_MODULE_MAGIC;
+/* Saved hook value in case of unload */
+static check_password_hook_type prev_check_password_hook = NULL;
+
/* passwords shorter than this will be rejected */
#define MIN_PWD_LENGTH 8
extern void _PG_init(void);
+extern void _PG_fini(void);
/*
* check_password
Datum validuntil_time,
bool validuntil_null)
{
+ if (prev_check_password_hook)
+ prev_check_password_hook(username, shadow_pass,
+ password_type, validuntil_time,
+ validuntil_null);
+
if (password_type != PASSWORD_TYPE_PLAINTEXT)
{
/*
_PG_init(void)
{
/* activate password checks when the module is loaded */
+ prev_check_password_hook = check_password_hook;
check_password_hook = check_password;
}
+
+/*
+ * Module unload function
+ */
+void
+_PG_fini(void)
+{
+ /* uninstall hook */
+ check_password_hook = prev_check_password_hook;
+}