2008-01-18 11:40:42 +03:00
/*
* Unix SMB / CIFS implementation .
* Virtual Windows Registry Layer
* Copyright ( C ) Gerald Carter 2002 - 2005
* Copyright ( C ) Michael Adam 2008
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , see < http : //www.gnu.org/licenses/>.
*/
/*
* Netlogon parameters registry backend .
*
* This replaces the former dynamic netlogon parameters overlay .
*/
# include "includes.h"
2009-10-02 02:17:06 +04:00
# include "registry.h"
2010-05-25 03:00:37 +04:00
# include "reg_objects.h"
2011-03-22 18:50:02 +03:00
# include "passdb.h"
2008-01-18 11:40:42 +03:00
# undef DBGC_CLASS
# define DBGC_CLASS DBGC_REGISTRY
2009-03-24 01:14:45 +03:00
extern struct registry_ops regdb_ops ;
2008-01-18 11:40:42 +03:00
2009-03-23 20:14:17 +03:00
static int netlogon_params_fetch_values ( const char * key , struct regval_ctr * regvals )
2008-01-18 11:40:42 +03:00
{
2015-04-14 17:50:28 +03:00
uint32_t dwValue ;
2008-01-20 03:30:38 +03:00
2009-07-14 01:53:49 +04:00
if ( ! pdb_get_account_policy ( PDB_POLICY_REFUSE_MACHINE_PW_CHANGE , & dwValue ) ) {
2008-01-18 11:40:42 +03:00
dwValue = 0 ;
2008-01-20 03:30:38 +03:00
}
regval_ctr_addvalue ( regvals , " RefusePasswordChange " , REG_DWORD ,
2010-05-25 00:19:17 +04:00
( uint8_t * ) & dwValue , sizeof ( dwValue ) ) ;
2008-01-18 11:40:42 +03:00
2008-01-20 03:30:38 +03:00
return regval_ctr_numvals ( regvals ) ;
2008-01-18 11:40:42 +03:00
}
2008-01-20 00:39:33 +03:00
static int netlogon_params_fetch_subkeys ( const char * key ,
2009-02-24 17:19:18 +03:00
struct regsubkey_ctr * subkey_ctr )
2008-01-20 00:39:33 +03:00
{
return regdb_ops . fetch_subkeys ( key , subkey_ctr ) ;
}
2008-01-18 11:40:42 +03:00
2009-03-24 01:14:45 +03:00
struct registry_ops netlogon_params_reg_ops = {
2008-01-20 00:42:30 +03:00
. fetch_values = netlogon_params_fetch_values ,
2008-01-20 00:39:33 +03:00
. fetch_subkeys = netlogon_params_fetch_subkeys ,
2008-01-18 11:40:42 +03:00
} ;