1998-05-07 22:19:05 +04:00
/*
Unix SMB / Netbios implementation .
Version 1.9 .
Password and authentication handling
2001-09-26 00:21:21 +04:00
Copyright ( C ) Jeremy Allison 1996 - 2001
2000-11-14 02:03:34 +03:00
Copyright ( C ) Luke Kenneth Casson Leighton 1996 - 1998
2001-04-26 02:12:13 +04:00
Copyright ( C ) Gerald ( Jerry ) Carter 2000 - 2001
1998-05-19 01:30:57 +04:00
1998-05-07 22:19:05 +04:00
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 2 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 , write to the Free Software
Foundation , Inc . , 675 Mass Ave , Cambridge , MA 0213 9 , USA .
*/
# include "includes.h"
1999-12-13 16:27:58 +03:00
/*
* This is set on startup - it defines the SID for this
* machine , and therefore the SAM database for which it is
* responsible .
*/
1998-11-29 23:03:33 +03:00
extern DOM_SID global_sam_sid ;
1998-05-07 22:19:05 +04:00
2000-11-14 02:03:34 +03:00
struct passdb_ops * pdb_ops ;
2001-09-26 00:21:21 +04:00
#if 0 /* JERRY */
2000-11-14 02:03:34 +03:00
static void * pdb_handle = NULL ;
2001-09-26 00:21:21 +04:00
# endif
1998-05-19 03:57:28 +04:00
1998-05-19 23:17:35 +04:00
/***************************************************************
1999-12-13 16:27:58 +03:00
Initialize the password db operations .
1998-05-19 23:17:35 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
BOOL initialize_password_db ( BOOL reload )
2001-09-26 00:21:21 +04:00
{
/*
* This function is unfinished right now , so just
* ignore the details and always return True . It
* is here only as a placeholder - - jerry
*/
2000-11-14 02:03:34 +03:00
return True ;
2001-09-05 12:54:04 +04:00
1998-05-07 22:19:05 +04:00
}
2001-09-27 13:13:26 +04:00
/************************************************************
Fill the SAM_ACCOUNT with default values .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
static BOOL pdb_fill_default_sam ( SAM_ACCOUNT * user )
{
if ( user = = NULL ) {
DEBUG ( 0 , ( " pdb_fill_default_sam: SAM_ACCOUNT was NULL \n " ) ) ;
return False ;
}
ZERO_STRUCTP ( user ) ;
2001-10-04 03:08:10 +04:00
/* Don't change these timestamp settings without a good reason.
They are important for NT member server compatibility . */
2001-09-28 00:40:47 +04:00
user - > logon_time = ( time_t ) 0 ;
2001-10-04 02:58:37 +04:00
user - > pass_last_set_time = ( time_t ) 0 ;
user - > pass_can_change_time = ( time_t ) 0 ;
2001-10-02 10:57:18 +04:00
user - > logoff_time =
user - > kickoff_time =
user - > pass_must_change_time = get_time_t_max ( ) ;
2001-09-28 00:40:47 +04:00
user - > unknown_3 = 0x00ffffff ; /* don't know */
user - > logon_divs = 168 ; /* hours per week */
user - > hours_len = 21 ; /* 21 times 8 bits = 168 */
memset ( user - > hours , 0xff , user - > hours_len ) ; /* available at all hours */
user - > unknown_5 = 0x00000000 ; /* don't know */
user - > unknown_6 = 0x000004ec ; /* don't know */
2001-09-27 13:13:26 +04:00
return True ;
}
2000-11-14 02:03:34 +03:00
/*************************************************************
2001-09-26 00:21:21 +04:00
Alloc memory and initialises a struct sam_passwd .
2000-11-14 02:03:34 +03:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2001-05-04 19:44:27 +04:00
BOOL pdb_init_sam ( SAM_ACCOUNT * * user )
1998-05-07 22:19:05 +04:00
{
2001-05-04 19:44:27 +04:00
if ( * user ! = NULL ) {
DEBUG ( 0 , ( " pdb_init_sam: SAM_ACCOUNT was non NULL \n " ) ) ;
#if 0
smb_panic ( " NULL pointer passed to pdb_init_sam \n " ) ;
# endif
return False ;
}
2000-11-14 02:03:34 +03:00
2001-05-04 19:44:27 +04:00
* user = ( SAM_ACCOUNT * ) malloc ( sizeof ( SAM_ACCOUNT ) ) ;
if ( * user = = NULL ) {
DEBUG ( 0 , ( " pdb_init_sam: error while allocating memory \n " ) ) ;
return False ;
}
2001-09-27 13:13:26 +04:00
pdb_fill_default_sam ( * user ) ;
return True ;
}
/*************************************************************
Initialises a struct sam_passwd with sane values .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
BOOL pdb_init_sam_pw ( SAM_ACCOUNT * * new_sam_acct , struct passwd * pwd )
{
This commit is number 2 of 4.
In particular this commit focuses on:
The guts of the moving about inside passdb.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes allow for the introduction of a large dose of 'const' to
the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
passdb/
- Kill off disp_info stuff, it isn't used any more - Kill off
support for writing to the old smbpasswd format, it isn't relevent
to Samba 3.0
- Move around and modify the pdb_...() helper functions, adding
one that sets the last changed time to 'now' and that sets the
must change time appropriately.
- Remove the ugly forced update of the LCT- value in
pdb_smbpasswd. - Remove the implicit modification of the ACB
flags when both NT and LM passwords are set.
- Removed substation in pdb_getsampwnam output, as a single
password change will render them inoperable in any case (they
will be substituted and stored)
- Added a default RID to the init_sam_from_pw() function, based on
our rid algorithm.
- Added checks that an smbpasswd stored user has a uid-based RID.
- Fail to store tdb based users without a RID
lib/
- Change the substituion code to use global_myname if there is
no connection (and therefore no called name) at the present time.
(This used to be commit 8f607810eb24ed1157bbd2e896c2c167bc34d986)
2001-10-29 10:24:49 +03:00
pstring str ;
extern BOOL sam_logon_in_ssb ;
extern pstring samlogon_user ;
2001-09-27 13:13:26 +04:00
if ( ! pwd ) {
new_sam_acct = NULL ;
return False ;
}
if ( ! pdb_init_sam ( new_sam_acct ) ) {
new_sam_acct = NULL ;
return False ;
}
pdb_set_username ( * new_sam_acct , pwd - > pw_name ) ;
pdb_set_fullname ( * new_sam_acct , pwd - > pw_gecos ) ;
pdb_set_uid ( * new_sam_acct , pwd - > pw_uid ) ;
pdb_set_gid ( * new_sam_acct , pwd - > pw_gid ) ;
This commit is number 2 of 4.
In particular this commit focuses on:
The guts of the moving about inside passdb.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes allow for the introduction of a large dose of 'const' to
the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
passdb/
- Kill off disp_info stuff, it isn't used any more - Kill off
support for writing to the old smbpasswd format, it isn't relevent
to Samba 3.0
- Move around and modify the pdb_...() helper functions, adding
one that sets the last changed time to 'now' and that sets the
must change time appropriately.
- Remove the ugly forced update of the LCT- value in
pdb_smbpasswd. - Remove the implicit modification of the ACB
flags when both NT and LM passwords are set.
- Removed substation in pdb_getsampwnam output, as a single
password change will render them inoperable in any case (they
will be substituted and stored)
- Added a default RID to the init_sam_from_pw() function, based on
our rid algorithm.
- Added checks that an smbpasswd stored user has a uid-based RID.
- Fail to store tdb based users without a RID
lib/
- Change the substituion code to use global_myname if there is
no connection (and therefore no called name) at the present time.
(This used to be commit 8f607810eb24ed1157bbd2e896c2c167bc34d986)
2001-10-29 10:24:49 +03:00
pdb_set_user_rid ( * new_sam_acct , pdb_uid_to_user_rid ( pwd - > pw_uid ) ) ;
pdb_set_group_rid ( * new_sam_acct , pdb_gid_to_group_rid ( pwd - > pw_gid ) ) ;
/* UGLY, UGLY HACK!!! */
pstrcpy ( samlogon_user , pwd - > pw_name ) ;
sam_logon_in_ssb = True ;
pstrcpy ( str , lp_logon_path ( ) ) ;
standard_sub_advanced ( - 1 , pwd - > pw_name , " " , pwd - > pw_gid , str ) ;
pdb_set_profile_path ( * new_sam_acct , str ) ;
pstrcpy ( str , lp_logon_home ( ) ) ;
standard_sub_advanced ( - 1 , pwd - > pw_name , " " , pwd - > pw_gid , str ) ;
pdb_set_homedir ( * new_sam_acct , str ) ;
pstrcpy ( str , lp_logon_drive ( ) ) ;
standard_sub_advanced ( - 1 , pwd - > pw_name , " " , pwd - > pw_gid , str ) ;
pdb_set_dir_drive ( * new_sam_acct , str ) ;
pstrcpy ( str , lp_logon_script ( ) ) ;
standard_sub_advanced ( - 1 , pwd - > pw_name , " " , pwd - > pw_gid , str ) ;
pdb_set_logon_script ( * new_sam_acct , str ) ;
sam_logon_in_ssb = False ;
2001-05-04 19:44:27 +04:00
return True ;
1998-05-07 22:19:05 +04:00
}
2001-09-27 13:13:26 +04:00
2000-11-14 02:03:34 +03:00
/************************************************************
2001-09-27 13:13:26 +04:00
Free the NT / LM hashes only .
2000-11-14 02:03:34 +03:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2001-09-27 13:13:26 +04:00
static BOOL pdb_free_sam_contents ( SAM_ACCOUNT * user )
1998-05-07 22:19:05 +04:00
{
2001-05-04 19:44:27 +04:00
if ( user = = NULL ) {
2001-09-27 13:13:26 +04:00
DEBUG ( 0 , ( " pdb_free_sam_contents: SAM_ACCOUNT was NULL \n " ) ) ;
2001-05-04 19:44:27 +04:00
#if 0
2001-09-29 17:14:19 +04:00
smb_panic ( " NULL pointer passed to pdb_free_sam_contents \n " ) ;
2001-05-04 19:44:27 +04:00
# endif
return False ;
}
2001-04-26 02:12:13 +04:00
2001-09-27 13:13:26 +04:00
/* As we start mallocing more strings this is where
we should free them . */
2001-09-17 09:04:17 +04:00
SAFE_FREE ( user - > nt_pw ) ;
SAFE_FREE ( user - > lm_pw ) ;
2000-11-14 02:03:34 +03:00
2001-05-04 19:44:27 +04:00
return True ;
1998-05-07 22:19:05 +04:00
}
2001-09-27 13:13:26 +04:00
2001-05-07 18:04:46 +04:00
/************************************************************
2001-09-27 13:13:26 +04:00
Reset the SAM_ACCOUNT and free the NT / LM hashes .
- note : they are not zero ' ed out however .
2001-05-07 18:04:46 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
BOOL pdb_reset_sam ( SAM_ACCOUNT * user )
{
if ( user = = NULL ) {
DEBUG ( 0 , ( " pdb_reset_sam: SAM_ACCOUNT was NULL \n " ) ) ;
2001-09-29 17:14:19 +04:00
#if 0
smb_panic ( " NULL pointer passed to pdb_free_sam \n " ) ;
# endif
2001-05-07 18:04:46 +04:00
return False ;
}
2001-09-27 13:13:26 +04:00
if ( ! pdb_free_sam_contents ( user ) ) {
return False ;
}
if ( ! pdb_fill_default_sam ( user ) ) {
return False ;
}
2001-05-07 18:04:46 +04:00
return True ;
}
2000-02-26 01:25:25 +03:00
2001-09-27 13:13:26 +04:00
/************************************************************
Free the SAM_ACCOUNT and the NT / LM hashes .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-29 17:14:19 +04:00
BOOL pdb_free_sam ( SAM_ACCOUNT * * user )
2001-09-27 13:13:26 +04:00
{
2001-09-29 17:14:19 +04:00
if ( * user = = NULL ) {
2001-09-27 13:13:26 +04:00
DEBUG ( 0 , ( " pdb_free_sam: SAM_ACCOUNT was NULL \n " ) ) ;
#if 0
smb_panic ( " NULL pointer passed to pdb_free_sam \n " ) ;
# endif
return False ;
}
2001-09-29 17:14:19 +04:00
if ( ! pdb_free_sam_contents ( * user ) ) {
2001-09-27 13:13:26 +04:00
return False ;
}
2001-09-29 17:14:19 +04:00
SAFE_FREE ( * user ) ;
2001-09-27 13:13:26 +04:00
return True ;
}
2001-09-26 00:21:21 +04:00
/**********************************************************
Encode the account control bits into a string .
length = length of string to encode into ( including terminating
null ) . length * MUST BE MORE THAN 2 * !
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
char * pdb_encode_acct_ctrl ( uint16 acct_ctrl , size_t length )
{
static fstring acct_str ;
size_t i = 0 ;
acct_str [ i + + ] = ' [ ' ;
if ( acct_ctrl & ACB_PWNOTREQ ) acct_str [ i + + ] = ' N ' ;
if ( acct_ctrl & ACB_DISABLED ) acct_str [ i + + ] = ' D ' ;
if ( acct_ctrl & ACB_HOMDIRREQ ) acct_str [ i + + ] = ' H ' ;
if ( acct_ctrl & ACB_TEMPDUP ) acct_str [ i + + ] = ' T ' ;
if ( acct_ctrl & ACB_NORMAL ) acct_str [ i + + ] = ' U ' ;
if ( acct_ctrl & ACB_MNS ) acct_str [ i + + ] = ' M ' ;
if ( acct_ctrl & ACB_WSTRUST ) acct_str [ i + + ] = ' W ' ;
if ( acct_ctrl & ACB_SVRTRUST ) acct_str [ i + + ] = ' S ' ;
if ( acct_ctrl & ACB_AUTOLOCK ) acct_str [ i + + ] = ' L ' ;
if ( acct_ctrl & ACB_PWNOEXP ) acct_str [ i + + ] = ' X ' ;
if ( acct_ctrl & ACB_DOMTRUST ) acct_str [ i + + ] = ' I ' ;
for ( ; i < length - 2 ; i + + )
acct_str [ i ] = ' ' ;
i = length - 2 ;
acct_str [ i + + ] = ' ] ' ;
acct_str [ i + + ] = ' \0 ' ;
return acct_str ;
}
/**********************************************************
Decode the account control bits from a string .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
uint16 pdb_decode_acct_ctrl ( const char * p )
{
uint16 acct_ctrl = 0 ;
BOOL finished = False ;
/*
* Check if the account type bits have been encoded after the
* NT password ( in the form [ NDHTUWSLXI ] ) .
*/
if ( * p ! = ' [ ' )
return 0 ;
for ( p + + ; * p & & ! finished ; p + + ) {
switch ( * p ) {
case ' N ' : { acct_ctrl | = ACB_PWNOTREQ ; break ; /* 'N'o password. */ }
case ' D ' : { acct_ctrl | = ACB_DISABLED ; break ; /* 'D'isabled. */ }
case ' H ' : { acct_ctrl | = ACB_HOMDIRREQ ; break ; /* 'H'omedir required. */ }
case ' T ' : { acct_ctrl | = ACB_TEMPDUP ; break ; /* 'T'emp account. */ }
case ' U ' : { acct_ctrl | = ACB_NORMAL ; break ; /* 'U'ser account (normal). */ }
case ' M ' : { acct_ctrl | = ACB_MNS ; break ; /* 'M'NS logon user account. What is this ? */ }
case ' W ' : { acct_ctrl | = ACB_WSTRUST ; break ; /* 'W'orkstation account. */ }
case ' S ' : { acct_ctrl | = ACB_SVRTRUST ; break ; /* 'S'erver account. */ }
case ' L ' : { acct_ctrl | = ACB_AUTOLOCK ; break ; /* 'L'ocked account. */ }
case ' X ' : { acct_ctrl | = ACB_PWNOEXP ; break ; /* No 'X'piry on password */ }
case ' I ' : { acct_ctrl | = ACB_DOMTRUST ; break ; /* 'I'nterdomain trust account. */ }
case ' ' : { break ; }
case ' : ' :
case ' \n ' :
case ' \0 ' :
case ' ] ' :
default : { finished = True ; }
}
}
return acct_ctrl ;
}
/*************************************************************
Routine to set 32 hex password characters from a 16 byte array .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
void pdb_sethexpwd ( char * p , const unsigned char * pwd , uint16 acct_ctrl )
2001-09-26 00:21:21 +04:00
{
if ( pwd ! = NULL ) {
int i ;
for ( i = 0 ; i < 16 ; i + + )
slprintf ( & p [ i * 2 ] , 3 , " %02X " , pwd [ i ] ) ;
} else {
if ( acct_ctrl & ACB_PWNOTREQ )
safe_strcpy ( p , " NO PASSWORDXXXXXXXXXXXXXXXXXXXXX " , 33 ) ;
else
safe_strcpy ( p , " XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX " , 33 ) ;
}
}
/*************************************************************
Routine to get the 32 hex characters and turn them
into a 16 byte array .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_gethexpwd ( const char * p , unsigned char * pwd )
2001-09-26 00:21:21 +04:00
{
int i ;
unsigned char lonybble , hinybble ;
char * hexchars = " 0123456789ABCDEF " ;
char * p1 , * p2 ;
if ( ! p )
return ( False ) ;
for ( i = 0 ; i < 32 ; i + = 2 ) {
hinybble = toupper ( p [ i ] ) ;
lonybble = toupper ( p [ i + 1 ] ) ;
p1 = strchr ( hexchars , hinybble ) ;
p2 = strchr ( hexchars , lonybble ) ;
if ( ! p1 | | ! p2 )
return ( False ) ;
hinybble = PTR_DIFF ( p1 , hexchars ) ;
lonybble = PTR_DIFF ( p2 , hexchars ) ;
pwd [ i / 2 ] = ( hinybble < < 4 ) | lonybble ;
}
return ( True ) ;
}
2000-11-14 02:03:34 +03:00
/*******************************************************************
Group and User RID username mapping function
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_name_to_rid ( const char * user_name , uint32 * u_rid , uint32 * g_rid )
2000-11-14 02:03:34 +03:00
{
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
struct passwd * pw = Get_Pwnam ( user_name ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
if ( u_rid = = NULL | | g_rid = = NULL | | user_name = = NULL )
return False ;
1999-12-13 16:27:58 +03:00
2001-09-26 00:21:21 +04:00
if ( ! pw ) {
2000-11-14 02:03:34 +03:00
DEBUG ( 1 , ( " Username %s is invalid on this system \n " , user_name ) ) ;
return False ;
1999-12-13 16:27:58 +03:00
}
2001-05-08 02:10:38 +04:00
/* turn the unix UID into a Domain RID. this is what the posix
sub - system does ( adds 1000 to the uid ) */
* u_rid = pdb_uid_to_user_rid ( pw - > pw_uid ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
/* absolutely no idea what to do about the unix GID to Domain RID mapping */
* g_rid = pdb_gid_to_group_rid ( pw - > pw_gid ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
/*******************************************************************
Converts NT user RID to a UNIX uid .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
uid_t pdb_user_rid_to_uid ( uint32 user_rid )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
return ( uid_t ) ( ( ( user_rid & ( ~ USER_RID_TYPE ) ) - 1000 ) / RID_MULTIPLIER ) ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
/*******************************************************************
Converts NT user RID to a UNIX gid .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
gid_t pdb_user_rid_to_gid ( uint32 user_rid )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
return ( uid_t ) ( ( ( user_rid & ( ~ GROUP_RID_TYPE ) ) - 1000 ) / RID_MULTIPLIER ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
/*******************************************************************
Converts NT group RID to a UNIX gid .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
gid_t pdb_group_rid_to_gid ( uint32 group_rid )
{
return ( gid_t ) ( ( ( group_rid & ( ~ GROUP_RID_TYPE ) ) - 1000 ) / RID_MULTIPLIER ) ;
}
2000-11-14 02:03:34 +03:00
/*******************************************************************
converts UNIX uid to an NT User RID .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
uint32 pdb_uid_to_user_rid ( uid_t uid )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
return ( ( ( ( ( uint32 ) uid ) * RID_MULTIPLIER ) + 1000 ) | USER_RID_TYPE ) ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
/*******************************************************************
converts NT Group RID to a UNIX uid .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2000-10-07 19:56:36 +04:00
2000-11-14 02:03:34 +03:00
uint32 pdb_gid_to_group_rid ( gid_t gid )
2000-10-07 19:56:36 +04:00
{
2000-11-14 02:03:34 +03:00
return ( ( ( ( ( uint32 ) gid ) * RID_MULTIPLIER ) + 1000 ) | GROUP_RID_TYPE ) ;
2000-10-07 19:56:36 +04:00
}
2000-11-14 02:03:34 +03:00
/*******************************************************************
Decides if a RID is a well known RID .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
static BOOL pdb_rid_is_well_known ( uint32 rid )
2000-10-07 19:56:36 +04:00
{
2000-11-14 02:03:34 +03:00
return ( rid < 1000 ) ;
2000-10-07 19:56:36 +04:00
}
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
/*******************************************************************
Decides if a RID is a user or group RID .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
BOOL pdb_rid_is_user ( uint32 rid )
{
/* lkcl i understand that NT attaches an enumeration to a RID
* such that it can be identified as either a user , group etc
* type . there are 5 such categories , and they are documented .
*/
if ( pdb_rid_is_well_known ( rid ) ) {
/*
* The only well known user RIDs are DOMAIN_USER_RID_ADMIN
* and DOMAIN_USER_RID_GUEST .
*/
if ( rid = = DOMAIN_USER_RID_ADMIN | | rid = = DOMAIN_USER_RID_GUEST )
return True ;
} else if ( ( rid & RID_TYPE_MASK ) = = USER_RID_TYPE ) {
return True ;
}
return False ;
}
/*******************************************************************
Convert a rid into a name . Used in the lookup SID rpc .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
BOOL local_lookup_rid ( uint32 rid , char * name , enum SID_NAME_USE * psid_name_use )
{
BOOL is_user = pdb_rid_is_user ( rid ) ;
1999-12-13 16:27:58 +03:00
2001-10-10 00:54:56 +04:00
* psid_name_use = SID_NAME_UNKNOWN ;
2000-11-14 02:03:34 +03:00
DEBUG ( 5 , ( " local_lookup_rid: looking up %s RID %u. \n " , is_user ? " user " :
" group " , ( unsigned int ) rid ) ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
if ( is_user ) {
if ( rid = = DOMAIN_USER_RID_ADMIN ) {
pstring admin_users ;
char * p = admin_users ;
2001-10-10 00:54:56 +04:00
* psid_name_use = SID_NAME_USER ;
2000-11-14 02:03:34 +03:00
if ( ! next_token ( & p , name , NULL , sizeof ( fstring ) ) )
fstrcpy ( name , " Administrator " ) ;
} else if ( rid = = DOMAIN_USER_RID_GUEST ) {
pstring guest_users ;
char * p = guest_users ;
2001-10-10 00:54:56 +04:00
* psid_name_use = SID_NAME_USER ;
2000-11-14 02:03:34 +03:00
if ( ! next_token ( & p , name , NULL , sizeof ( fstring ) ) )
fstrcpy ( name , " Guest " ) ;
} else {
2001-01-10 19:05:41 +03:00
uid_t uid ;
struct passwd * pass ;
/*
* Don ' t try to convert the rid to a name if
* running in appliance mode
*/
if ( lp_hide_local_users ( ) )
return False ;
uid = pdb_user_rid_to_uid ( rid ) ;
pass = sys_getpwuid ( uid ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
* psid_name_use = SID_NAME_USER ;
DEBUG ( 5 , ( " local_lookup_rid: looking up uid %u %s \n " , ( unsigned int ) uid ,
pass ? " succeeded " : " failed " ) ) ;
if ( ! pass ) {
slprintf ( name , sizeof ( fstring ) - 1 , " unix_user.%u " , ( unsigned int ) uid ) ;
return True ;
}
fstrcpy ( name , pass - > pw_name ) ;
DEBUG ( 5 , ( " local_lookup_rid: found user %s for rid %u \n " , name ,
( unsigned int ) rid ) ) ;
}
} else {
2001-09-26 00:21:21 +04:00
gid_t gid ;
2001-01-10 19:05:41 +03:00
struct group * gr ;
2001-09-26 00:21:21 +04:00
2001-01-10 19:05:41 +03:00
/*
* Don ' t try to convert the rid to a name if running
* in appliance mode
*/
if ( lp_hide_local_users ( ) )
return False ;
2001-05-04 19:44:27 +04:00
gid = pdb_user_rid_to_gid ( rid ) ;
gr = getgrgid ( gid ) ;
2001-09-26 00:21:21 +04:00
* psid_name_use = SID_NAME_ALIAS ;
2000-11-14 02:03:34 +03:00
DEBUG ( 5 , ( " local_local_rid: looking up gid %u %s \n " , ( unsigned int ) gid ,
gr ? " succeeded " : " failed " ) ) ;
if ( ! gr ) {
slprintf ( name , sizeof ( fstring ) - 1 , " unix_group.%u " , ( unsigned int ) gid ) ;
return True ;
}
fstrcpy ( name , gr - > gr_name ) ;
2001-09-26 00:21:21 +04:00
DEBUG ( 5 , ( " local_lookup_rid: found group %s for rid %u \n " , name ,
( unsigned int ) rid ) ) ;
2000-11-14 02:03:34 +03:00
}
return True ;
1998-05-18 19:50:56 +04:00
}
2000-11-14 02:03:34 +03:00
/*******************************************************************
Convert a name into a SID . Used in the lookup name rpc .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1999-12-13 16:27:58 +03:00
2001-03-21 02:07:36 +03:00
BOOL local_lookup_name ( const char * c_domain , const char * c_user , DOM_SID * psid , enum SID_NAME_USE * psid_name_use )
1998-05-18 18:43:06 +04:00
{
2000-11-14 02:03:34 +03:00
extern DOM_SID global_sid_World_Domain ;
struct passwd * pass = NULL ;
DOM_SID local_sid ;
2001-03-21 02:07:36 +03:00
fstring user ;
fstring domain ;
2001-10-10 00:54:56 +04:00
* psid_name_use = SID_NAME_UNKNOWN ;
2001-03-21 02:07:36 +03:00
/*
* domain and user may be quoted const strings , and map_username and
* friends can modify them . Make a modifiable copy . JRA .
*/
fstrcpy ( domain , c_domain ) ;
fstrcpy ( user , c_user ) ;
2000-11-14 02:03:34 +03:00
sid_copy ( & local_sid , & global_sam_sid ) ;
/*
* Special case for MACHINE \ Everyone . Map to the world_sid .
*/
if ( strequal ( user , " Everyone " ) ) {
sid_copy ( psid , & global_sid_World_Domain ) ;
sid_append_rid ( psid , 0 ) ;
* psid_name_use = SID_NAME_ALIAS ;
return True ;
}
2001-01-10 19:05:41 +03:00
/*
* Don ' t lookup local unix users if running in appliance mode
*/
if ( lp_hide_local_users ( ) )
return False ;
2000-11-14 02:03:34 +03:00
( void ) map_username ( user ) ;
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
if ( ( pass = Get_Pwnam ( user ) ) ) {
2001-05-04 19:44:27 +04:00
sid_append_rid ( & local_sid , pdb_uid_to_user_rid ( pass - > pw_uid ) ) ;
* psid_name_use = SID_NAME_USER ;
} else {
2000-11-14 02:03:34 +03:00
/*
* Maybe it was a group ?
*/
2001-09-26 00:21:21 +04:00
struct group * grp = getgrnam ( user ) ;
2000-11-14 02:03:34 +03:00
2001-09-26 00:21:21 +04:00
if ( ! grp )
return False ;
2001-05-04 19:44:27 +04:00
2001-09-26 00:21:21 +04:00
sid_append_rid ( & local_sid , pdb_gid_to_group_rid ( grp - > gr_gid ) ) ;
* psid_name_use = SID_NAME_ALIAS ;
2000-11-14 02:03:34 +03:00
}
sid_copy ( psid , & local_sid ) ;
return True ;
1998-05-18 18:43:06 +04:00
}
2000-11-14 02:03:34 +03:00
/****************************************************************************
Convert a uid to SID - locally .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
DOM_SID * local_uid_to_sid ( DOM_SID * psid , uid_t uid )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
extern DOM_SID global_sam_sid ;
sid_copy ( psid , & global_sam_sid ) ;
sid_append_rid ( psid , pdb_uid_to_user_rid ( uid ) ) ;
return psid ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
/****************************************************************************
Convert a SID to uid - locally .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
BOOL local_sid_to_uid ( uid_t * puid , DOM_SID * psid , enum SID_NAME_USE * name_type )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
extern DOM_SID global_sam_sid ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
DOM_SID dom_sid ;
uint32 rid ;
2001-01-16 01:46:22 +03:00
fstring str ;
struct passwd * pass ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
* name_type = SID_NAME_UNKNOWN ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
sid_copy ( & dom_sid , psid ) ;
sid_split_rid ( & dom_sid , & rid ) ;
1999-12-13 16:27:58 +03:00
2001-03-22 04:26:37 +03:00
if ( ! pdb_rid_is_user ( rid ) )
return False ;
2000-11-14 02:03:34 +03:00
/*
* We can only convert to a uid if this is our local
* Domain SID ( ie . we are the controling authority ) .
*/
if ( ! sid_equal ( & global_sam_sid , & dom_sid ) )
return False ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
* puid = pdb_user_rid_to_uid ( rid ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
/*
* Ensure this uid really does exist .
*/
2001-01-16 01:46:22 +03:00
if ( ! ( pass = sys_getpwuid ( * puid ) ) )
2000-11-14 02:03:34 +03:00
return False ;
1999-12-13 16:27:58 +03:00
2001-01-16 01:46:22 +03:00
DEBUG ( 10 , ( " local_sid_to_uid: SID %s -> uid (%u) (%s). \n " , sid_to_string ( str , psid ) ,
( unsigned int ) * puid , pass - > pw_name ) ) ;
2001-10-10 00:54:56 +04:00
* name_type = SID_NAME_USER ;
2000-11-14 02:03:34 +03:00
return True ;
}
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
/****************************************************************************
Convert a gid to SID - locally .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
DOM_SID * local_gid_to_sid ( DOM_SID * psid , gid_t gid )
{
extern DOM_SID global_sam_sid ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
sid_copy ( psid , & global_sam_sid ) ;
sid_append_rid ( psid , pdb_gid_to_group_rid ( gid ) ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
return psid ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
/****************************************************************************
Convert a SID to gid - locally .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
BOOL local_sid_to_gid ( gid_t * pgid , DOM_SID * psid , enum SID_NAME_USE * name_type )
{
extern DOM_SID global_sam_sid ;
DOM_SID dom_sid ;
uint32 rid ;
2001-01-16 01:46:22 +03:00
fstring str ;
struct group * grp ;
2000-11-14 02:03:34 +03:00
* name_type = SID_NAME_UNKNOWN ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
sid_copy ( & dom_sid , psid ) ;
sid_split_rid ( & dom_sid , & rid ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
/*
* We can only convert to a gid if this is our local
* Domain SID ( ie . we are the controling authority ) .
*/
if ( ! sid_equal ( & global_sam_sid , & dom_sid ) )
return False ;
1999-12-13 16:27:58 +03:00
2001-03-22 04:26:37 +03:00
if ( pdb_rid_is_user ( rid ) )
return False ;
2000-11-14 02:03:34 +03:00
* pgid = pdb_user_rid_to_gid ( rid ) ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
/*
* Ensure this gid really does exist .
*/
1999-12-13 16:27:58 +03:00
2001-01-16 01:46:22 +03:00
if ( ! ( grp = getgrgid ( * pgid ) ) )
2000-11-14 02:03:34 +03:00
return False ;
1999-12-13 16:27:58 +03:00
2001-01-16 01:46:22 +03:00
DEBUG ( 10 , ( " local_sid_to_gid: SID %s -> gid (%u) (%s). \n " , sid_to_string ( str , psid ) ,
( unsigned int ) * pgid , grp - > gr_name ) ) ;
2001-10-10 00:54:56 +04:00
* name_type = SID_NAME_ALIAS ;
2000-11-14 02:03:34 +03:00
return True ;
1999-12-13 16:27:58 +03:00
}
2001-05-04 19:44:27 +04:00
static void select_name ( pstring string , const UNISTR2 * from )
2000-10-07 19:56:36 +04:00
{
if ( from - > buffer ! = 0 )
2001-09-26 18:40:21 +04:00
unistr2_to_ascii ( string , from , sizeof ( pstring ) ) ;
2000-10-07 19:56:36 +04:00
}
/*************************************************************
2001-09-26 00:21:21 +04:00
Copies a SAM_USER_INFO_23 to a SAM_ACCOUNT
2000-10-07 19:56:36 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-21 08:55:16 +03:00
void copy_id23_to_sam_passwd ( SAM_ACCOUNT * to , SAM_USER_INFO_23 * from )
2000-10-07 19:56:36 +04:00
{
2000-11-21 08:55:16 +03:00
if ( from = = NULL | | to = = NULL )
return ;
2000-10-07 19:56:36 +04:00
to - > logon_time = nt_time_to_unix ( & from - > logon_time ) ;
to - > logoff_time = nt_time_to_unix ( & from - > logoff_time ) ;
to - > kickoff_time = nt_time_to_unix ( & from - > kickoff_time ) ;
to - > pass_last_set_time = nt_time_to_unix ( & from - > pass_last_set_time ) ;
to - > pass_can_change_time = nt_time_to_unix ( & from - > pass_can_change_time ) ;
to - > pass_must_change_time = nt_time_to_unix ( & from - > pass_must_change_time ) ;
2001-05-04 19:44:27 +04:00
select_name ( to - > username , & from - > uni_user_name ) ;
select_name ( to - > full_name , & from - > uni_full_name ) ;
select_name ( to - > home_dir , & from - > uni_home_dir ) ;
select_name ( to - > dir_drive , & from - > uni_dir_drive ) ;
select_name ( to - > logon_script , & from - > uni_logon_script ) ;
select_name ( to - > profile_path , & from - > uni_profile_path ) ;
select_name ( to - > acct_desc , & from - > uni_acct_desc ) ;
select_name ( to - > workstations , & from - > uni_workstations ) ;
select_name ( to - > unknown_str , & from - > uni_unknown_str ) ;
select_name ( to - > munged_dial , & from - > uni_munged_dial ) ;
2000-10-07 19:56:36 +04:00
to - > user_rid = from - > user_rid ;
to - > group_rid = from - > group_rid ;
to - > acct_ctrl = from - > acb_info ;
to - > unknown_3 = from - > unknown_3 ;
to - > logon_divs = from - > logon_divs ;
to - > hours_len = from - > logon_hrs . len ;
memcpy ( to - > hours , from - > logon_hrs . hours , MAX_HOURS_LEN ) ;
to - > unknown_5 = from - > unknown_5 ;
to - > unknown_6 = from - > unknown_6 ;
}
/*************************************************************
2001-09-26 00:21:21 +04:00
Copies a sam passwd .
2000-10-07 19:56:36 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-21 08:55:16 +03:00
void copy_id21_to_sam_passwd ( SAM_ACCOUNT * to , SAM_USER_INFO_21 * from )
2000-10-07 19:56:36 +04:00
{
2000-11-21 08:55:16 +03:00
if ( from = = NULL | | to = = NULL )
return ;
2000-10-07 19:56:36 +04:00
to - > logon_time = nt_time_to_unix ( & from - > logon_time ) ;
to - > logoff_time = nt_time_to_unix ( & from - > logoff_time ) ;
to - > kickoff_time = nt_time_to_unix ( & from - > kickoff_time ) ;
to - > pass_last_set_time = nt_time_to_unix ( & from - > pass_last_set_time ) ;
to - > pass_can_change_time = nt_time_to_unix ( & from - > pass_can_change_time ) ;
to - > pass_must_change_time = nt_time_to_unix ( & from - > pass_must_change_time ) ;
2001-05-04 19:44:27 +04:00
select_name ( to - > username , & from - > uni_user_name ) ;
select_name ( to - > full_name , & from - > uni_full_name ) ;
select_name ( to - > home_dir , & from - > uni_home_dir ) ;
select_name ( to - > dir_drive , & from - > uni_dir_drive ) ;
select_name ( to - > logon_script , & from - > uni_logon_script ) ;
select_name ( to - > profile_path , & from - > uni_profile_path ) ;
select_name ( to - > acct_desc , & from - > uni_acct_desc ) ;
select_name ( to - > workstations , & from - > uni_workstations ) ;
select_name ( to - > unknown_str , & from - > uni_unknown_str ) ;
select_name ( to - > munged_dial , & from - > uni_munged_dial ) ;
2000-10-07 19:56:36 +04:00
to - > user_rid = from - > user_rid ;
to - > group_rid = from - > group_rid ;
2000-11-21 08:55:16 +03:00
/* FIXME!! Do we need to copy the passwords here as well?
I don ' t know . Need to figure this out - - jerry */
2000-10-07 19:56:36 +04:00
to - > acct_ctrl = from - > acb_info ;
to - > unknown_3 = from - > unknown_3 ;
to - > logon_divs = from - > logon_divs ;
to - > hours_len = from - > logon_hrs . len ;
memcpy ( to - > hours , from - > logon_hrs . hours , MAX_HOURS_LEN ) ;
to - > unknown_5 = from - > unknown_5 ;
to - > unknown_6 = from - > unknown_6 ;
}
/*************************************************************
2001-09-26 00:21:21 +04:00
Copies a SAM_ACCOUNT .
2000-10-07 19:56:36 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-21 08:55:16 +03:00
void copy_sam_passwd ( SAM_ACCOUNT * to , const SAM_ACCOUNT * from )
2000-10-07 19:56:36 +04:00
{
2001-09-26 00:21:21 +04:00
if ( ! from | | ! to )
return ;
2000-10-07 19:56:36 +04:00
2001-05-04 19:44:27 +04:00
memcpy ( to , from , sizeof ( SAM_ACCOUNT ) ) ;
2000-10-07 19:56:36 +04:00
}
2000-11-14 02:03:34 +03:00
/*************************************************************
2001-09-26 00:21:21 +04:00
Change a password entry in the local smbpasswd file .
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
FIXME ! ! The function needs to be abstracted into the
passdb interface or something . It is currently being called
2001-09-29 17:14:19 +04:00
by _api_samr_create_user ( ) in rpc_server / srv_samr . c ,
in SWAT and by smbpasswd / pdbedit .
2000-11-14 02:03:34 +03:00
- - jerry
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL local_password_change ( const char * user_name , int local_flags ,
const char * new_passwd ,
2000-11-14 02:03:34 +03:00
char * err_str , size_t err_str_len ,
char * msg_str , size_t msg_str_len )
{
struct passwd * pwd = NULL ;
2001-05-04 19:44:27 +04:00
SAM_ACCOUNT * sam_pass = NULL ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
* err_str = ' \0 ' ;
* msg_str = ' \0 ' ;
1999-12-13 16:27:58 +03:00
2000-11-14 02:03:34 +03:00
/* Get the smb passwd entry for this user */
2001-05-04 19:44:27 +04:00
pdb_init_sam ( & sam_pass ) ;
2001-09-26 00:21:21 +04:00
if ( ! pdb_getsampwnam ( sam_pass , user_name ) ) {
2001-09-29 17:14:19 +04:00
pdb_free_sam ( & sam_pass ) ;
2001-05-07 18:04:46 +04:00
2001-09-29 17:14:19 +04:00
if ( local_flags & LOCAL_ADD_USER ) {
/*
* Check for a local account - if we ' re adding only .
*/
if ( ! ( pwd = sys_getpwnam ( user_name ) ) ) {
slprintf ( err_str , err_str_len - 1 , " User %s does not \
exist in system password file ( usually / etc / passwd ) . Cannot add \
account without a valid local system user . \ n " , user_name);
return False ;
}
} else {
2000-11-14 02:03:34 +03:00
slprintf ( err_str , err_str_len - 1 , " Failed to find entry for user %s. \n " , user_name ) ;
return False ;
}
1999-12-13 16:27:58 +03:00
2001-09-28 08:48:36 +04:00
if ( ! pdb_init_sam_pw ( & sam_pass , pwd ) ) {
2001-09-29 17:14:19 +04:00
slprintf ( err_str , err_str_len - 1 , " Failed initialise SAM_ACCOUNT for user %s. \n " , user_name ) ;
2001-09-27 13:13:26 +04:00
return False ;
}
1999-12-13 16:27:58 +03:00
2001-10-03 17:07:02 +04:00
/* set account flags. Note that the default is non-expiring accounts */
if ( ! pdb_set_acct_ctrl ( sam_pass , ( ( local_flags & LOCAL_TRUST_ACCOUNT ) ? ACB_WSTRUST : ACB_NORMAL | ACB_PWNOEXP ) ) ) {
2001-09-29 17:14:19 +04:00
slprintf ( err_str , err_str_len - 1 , " Failed to set 'trust account' flags for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
2000-11-14 02:03:34 +03:00
return False ;
}
2001-05-04 19:44:27 +04:00
} else {
2000-11-14 02:03:34 +03:00
/* the entry already existed */
local_flags & = ~ LOCAL_ADD_USER ;
}
1999-12-13 16:27:58 +03:00
/*
2000-11-14 02:03:34 +03:00
* We are root - just write the new password
* and the valid last change time .
1999-12-13 16:27:58 +03:00
*/
2001-09-29 17:14:19 +04:00
if ( local_flags & LOCAL_DISABLE_USER ) {
if ( ! pdb_set_acct_ctrl ( sam_pass , pdb_get_acct_ctrl ( sam_pass ) | ACB_DISABLED ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to set 'disabled' flag for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
2001-09-26 00:21:21 +04:00
} else if ( local_flags & LOCAL_ENABLE_USER ) {
2001-09-29 17:14:19 +04:00
if ( pdb_get_lanman_passwd ( sam_pass ) = = NULL ) {
if ( ! pdb_set_plaintext_passwd ( sam_pass , new_passwd ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to set password for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
}
if ( ! pdb_set_acct_ctrl ( sam_pass , pdb_get_acct_ctrl ( sam_pass ) & ( ~ ACB_DISABLED ) ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to unset 'disabled' flag for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
}
if ( local_flags & LOCAL_SET_NO_PASSWORD ) {
if ( ! pdb_set_acct_ctrl ( sam_pass , pdb_get_acct_ctrl ( sam_pass ) | ACB_PWNOTREQ ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to set 'no password required' flag for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
/* This is needed to preserve ACB_PWNOTREQ in mod_smbfilepwd_entry */
2001-09-29 17:14:19 +04:00
if ( ! pdb_set_lanman_passwd ( sam_pass , NULL ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to set NULL lanman password for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
if ( ! pdb_set_nt_passwd ( sam_pass , NULL ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to set NULL NT password for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
2001-09-26 00:21:21 +04:00
} else {
1999-12-13 16:27:58 +03:00
/*
2000-11-14 02:03:34 +03:00
* If we ' re dealing with setting a completely empty user account
* ie . One with a password of ' XXXX ' , but not set disabled ( like
* an account created from scratch ) then if the old password was
* ' XX ' s then getsmbpwent will have set the ACB_DISABLED flag .
* We remove that as we ' re giving this user their first password
* and the decision hasn ' t really been made to disable them ( ie .
* don ' t create them disabled ) . JRA .
1999-12-13 16:27:58 +03:00
*/
2001-09-29 17:14:19 +04:00
if ( ( pdb_get_lanman_passwd ( sam_pass ) = = NULL ) & & ( pdb_get_acct_ctrl ( sam_pass ) & ACB_DISABLED ) ) {
if ( ! pdb_set_acct_ctrl ( sam_pass , pdb_get_acct_ctrl ( sam_pass ) & ( ~ ACB_DISABLED ) ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to unset 'disabled' flag for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
}
if ( ! pdb_set_acct_ctrl ( sam_pass , pdb_get_acct_ctrl ( sam_pass ) & ( ~ ACB_PWNOTREQ ) ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to unset 'no password required' flag for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
if ( ! pdb_set_plaintext_passwd ( sam_pass , new_passwd ) ) {
slprintf ( err_str , err_str_len - 1 , " Failed to set password for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
}
if ( local_flags & LOCAL_ADD_USER ) {
if ( pdb_add_sam_account ( sam_pass ) ) {
slprintf ( msg_str , msg_str_len - 1 , " Added user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return True ;
} else {
slprintf ( err_str , err_str_len - 1 , " Failed to add entry for user %s. \n " , user_name ) ;
pdb_free_sam ( & sam_pass ) ;
return False ;
}
} else if ( local_flags & LOCAL_DELETE_USER ) {
2001-05-04 19:44:27 +04:00
if ( ! pdb_delete_sam_account ( user_name ) ) {
2000-11-14 02:03:34 +03:00
slprintf ( err_str , err_str_len - 1 , " Failed to delete entry for user %s. \n " , user_name ) ;
2001-09-29 17:14:19 +04:00
pdb_free_sam ( & sam_pass ) ;
2000-11-14 02:03:34 +03:00
return False ;
}
slprintf ( msg_str , msg_str_len - 1 , " Deleted user %s. \n " , user_name ) ;
2001-09-26 00:21:21 +04:00
} else {
2001-05-04 19:44:27 +04:00
if ( ! pdb_update_sam_account ( sam_pass , True ) ) {
2000-11-14 02:03:34 +03:00
slprintf ( err_str , err_str_len - 1 , " Failed to modify entry for user %s. \n " , user_name ) ;
2001-09-29 17:14:19 +04:00
pdb_free_sam ( & sam_pass ) ;
2000-11-14 02:03:34 +03:00
return False ;
}
if ( local_flags & LOCAL_DISABLE_USER )
slprintf ( msg_str , msg_str_len - 1 , " Disabled user %s. \n " , user_name ) ;
else if ( local_flags & LOCAL_ENABLE_USER )
slprintf ( msg_str , msg_str_len - 1 , " Enabled user %s. \n " , user_name ) ;
else if ( local_flags & LOCAL_SET_NO_PASSWORD )
slprintf ( msg_str , msg_str_len - 1 , " User %s password set to none. \n " , user_name ) ;
1999-03-03 23:48:48 +03:00
}
2000-11-14 02:03:34 +03:00
2001-09-29 17:14:19 +04:00
pdb_free_sam ( & sam_pass ) ;
2000-11-14 02:03:34 +03:00
return True ;
1999-12-13 16:27:58 +03:00
}
1998-05-11 19:56:01 +04:00
2000-11-14 02:03:34 +03:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Collection of get . . . ( ) functions for SAM_ACCOUNT_INFO .
1999-12-13 16:27:58 +03:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uint16 pdb_get_acct_ctrl ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > acct_ctrl ) ;
else
return ( ACB_DISABLED ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
time_t pdb_get_logon_time ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > logon_time ) ;
else
2000-11-22 22:51:41 +03:00
return ( 0 ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
time_t pdb_get_logoff_time ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > logoff_time ) ;
else
return ( - 1 ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
time_t pdb_get_kickoff_time ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > kickoff_time ) ;
else
return ( - 1 ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
time_t pdb_get_pass_last_set_time ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > pass_last_set_time ) ;
else
return ( - 1 ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
time_t pdb_get_pass_can_change_time ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > pass_can_change_time ) ;
else
return ( - 1 ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
time_t pdb_get_pass_must_change_time ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > pass_must_change_time ) ;
else
return ( - 1 ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uint16 pdb_get_logon_divs ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > logon_divs ) ;
else
return ( - 1 ) ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uint32 pdb_get_hours_len ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > hours_len ) ;
else
return ( - 1 ) ;
}
1998-09-29 21:56:12 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const uint8 * pdb_get_hours ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > hours ) ;
else
return ( NULL ) ;
}
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const uint8 * pdb_get_nt_passwd ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > nt_pw ) ;
else
return ( NULL ) ;
}
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const uint8 * pdb_get_lanman_passwd ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > lm_pw ) ;
else
return ( NULL ) ;
}
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uint32 pdb_get_user_rid ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > user_rid ) ;
else
return ( - 1 ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uint32 pdb_get_group_rid ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > group_rid ) ;
else
return ( - 1 ) ;
}
1998-09-29 21:56:12 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uid_t pdb_get_uid ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > uid ) ;
else
return ( ( uid_t ) - 1 ) ;
}
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
gid_t pdb_get_gid ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > gid ) ;
else
return ( ( gid_t ) - 1 ) ;
}
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_username ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > username ) ;
else
return ( NULL ) ;
}
1998-06-01 22:50:27 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_domain ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > domain ) ;
1999-12-13 16:27:58 +03:00
else
2000-11-14 02:03:34 +03:00
return ( NULL ) ;
}
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_nt_username ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > nt_username ) ;
else
return ( NULL ) ;
}
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_fullname ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > full_name ) ;
else
return ( NULL ) ;
1999-12-13 16:27:58 +03:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_homedir ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > home_dir ) ;
else
return ( NULL ) ;
}
2000-04-12 04:37:08 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_dirdrive ( const SAM_ACCOUNT * sampass )
1999-12-13 16:27:58 +03:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > dir_drive ) ;
else
return ( NULL ) ;
}
2000-04-12 04:37:08 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_logon_script ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > logon_script ) ;
else
return ( NULL ) ;
}
2000-04-12 04:37:08 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_profile_path ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > profile_path ) ;
else
return ( NULL ) ;
}
2000-04-12 04:37:08 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_acct_desc ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > acct_desc ) ;
else
return ( NULL ) ;
}
2000-04-12 04:37:08 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_workstations ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > workstations ) ;
else
return ( NULL ) ;
}
2000-04-12 04:37:08 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
const char * pdb_get_munged_dial ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > munged_dial ) ;
else
return ( NULL ) ;
2000-04-12 04:37:08 +04:00
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uint32 pdb_get_unknown3 ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > unknown_3 ) ;
else
return ( - 1 ) ;
}
2000-04-12 04:37:08 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uint32 pdb_get_unknown5 ( const SAM_ACCOUNT * sampass )
2000-04-12 04:37:08 +04:00
{
2000-11-14 02:03:34 +03:00
if ( sampass )
return ( sampass - > unknown_5 ) ;
else
return ( - 1 ) ;
}
1999-12-13 16:27:58 +03:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
uint32 pdb_get_unknown6 ( const SAM_ACCOUNT * sampass )
2000-11-14 02:03:34 +03:00
{
if ( sampass )
return ( sampass - > unknown_6 ) ;
else
return ( - 1 ) ;
}
2000-04-12 02:47:24 +04:00
2000-11-14 02:03:34 +03:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Collection of set . . . ( ) functions for SAM_ACCOUNT_INFO .
2000-11-14 02:03:34 +03:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
2000-11-14 02:03:34 +03:00
BOOL pdb_set_acct_ctrl ( SAM_ACCOUNT * sampass , uint16 flags )
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
2001-09-26 00:21:21 +04:00
if ( sampass ) {
2000-11-14 02:03:34 +03:00
sampass - > acct_ctrl = flags ;
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
return False ;
}
1999-12-13 16:27:58 +03:00
2000-11-14 18:50:30 +03:00
BOOL pdb_set_logon_time ( SAM_ACCOUNT * sampass , time_t mytime )
2000-11-14 02:03:34 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > logon_time = mytime ;
return True ;
2000-11-14 02:03:34 +03:00
}
1999-12-13 16:27:58 +03:00
2000-11-14 18:50:30 +03:00
BOOL pdb_set_logoff_time ( SAM_ACCOUNT * sampass , time_t mytime )
2000-11-14 02:03:34 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > logoff_time = mytime ;
return True ;
2000-11-14 02:03:34 +03:00
}
2000-04-12 04:37:08 +04:00
2000-11-14 18:50:30 +03:00
BOOL pdb_set_kickoff_time ( SAM_ACCOUNT * sampass , time_t mytime )
2000-11-14 02:03:34 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > kickoff_time = mytime ;
return True ;
2000-11-14 02:03:34 +03:00
}
2000-04-12 04:37:08 +04:00
2000-11-14 18:50:30 +03:00
BOOL pdb_set_pass_can_change_time ( SAM_ACCOUNT * sampass , time_t mytime )
2000-11-14 02:03:34 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > pass_can_change_time = mytime ;
return True ;
2000-11-14 02:03:34 +03:00
}
1999-12-13 16:27:58 +03:00
2000-11-14 18:50:30 +03:00
BOOL pdb_set_pass_must_change_time ( SAM_ACCOUNT * sampass , time_t mytime )
1999-12-13 16:27:58 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > pass_must_change_time = mytime ;
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 18:50:30 +03:00
BOOL pdb_set_pass_last_set_time ( SAM_ACCOUNT * sampass , time_t mytime )
1999-12-13 16:27:58 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > pass_last_set_time = mytime ;
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
BOOL pdb_set_hours_len ( SAM_ACCOUNT * sampass , uint32 len )
1999-12-13 16:27:58 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > hours_len = len ;
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
BOOL pdb_set_logons_divs ( SAM_ACCOUNT * sampass , uint16 hours )
1999-12-13 16:27:58 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > logon_divs = hours ;
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
BOOL pdb_set_uid ( SAM_ACCOUNT * sampass , uid_t uid )
1999-12-13 16:27:58 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > uid = uid ;
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
BOOL pdb_set_gid ( SAM_ACCOUNT * sampass , gid_t gid )
1999-12-13 16:27:58 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > gid = gid ;
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
BOOL pdb_set_user_rid ( SAM_ACCOUNT * sampass , uint32 rid )
1999-12-13 16:27:58 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > user_rid = rid ;
return True ;
1999-12-13 16:27:58 +03:00
}
2000-11-14 02:03:34 +03:00
BOOL pdb_set_group_rid ( SAM_ACCOUNT * sampass , uint32 grid )
1999-12-13 16:27:58 +03:00
{
2000-11-21 08:55:16 +03:00
if ( ! sampass )
return False ;
sampass - > group_rid = grid ;
return True ;
2000-11-14 02:03:34 +03:00
}
1999-12-13 16:27:58 +03:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s UNIX name .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_username ( SAM_ACCOUNT * sampass , const char * username )
2001-05-04 19:44:27 +04:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > username = ' \0 ' ;
if ( ! username )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > username , username , strlen ( username ) ) ;
2000-11-21 08:55:16 +03:00
return True ;
1998-11-29 23:03:33 +03:00
}
2000-06-08 21:50:19 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the domain name .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_domain ( SAM_ACCOUNT * sampass , const char * domain )
2001-05-04 19:44:27 +04:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > domain = ' \0 ' ;
if ( ! domain )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > domain , domain , strlen ( domain ) ) ;
2001-04-26 02:12:13 +04:00
2000-11-21 08:55:16 +03:00
return True ;
2000-08-02 06:11:55 +04:00
}
2000-06-08 21:50:19 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s NT name .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_nt_username ( SAM_ACCOUNT * sampass , const char * nt_username )
2000-08-23 04:45:40 +04:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > nt_username = ' \0 ' ;
if ( ! nt_username )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > nt_username , nt_username , strlen ( nt_username ) ) ;
2000-11-21 08:55:16 +03:00
return True ;
2000-11-14 02:03:34 +03:00
}
2000-08-23 04:45:40 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s full name .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_fullname ( SAM_ACCOUNT * sampass , const char * fullname )
2000-11-14 02:03:34 +03:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > full_name = ' \0 ' ;
if ( ! fullname )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > full_name , fullname , strlen ( fullname ) ) ;
2001-04-26 02:12:13 +04:00
2000-11-21 08:55:16 +03:00
return True ;
2000-11-14 02:03:34 +03:00
}
2000-08-23 04:45:40 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s logon script .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_logon_script ( SAM_ACCOUNT * sampass , const char * logon_script )
2000-11-14 02:03:34 +03:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > logon_script = ' \0 ' ;
if ( ! logon_script )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > logon_script , logon_script , strlen ( logon_script ) ) ;
2001-04-26 02:12:13 +04:00
2000-11-21 08:55:16 +03:00
return True ;
2000-11-14 02:03:34 +03:00
}
2000-08-23 04:45:40 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s profile path .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_profile_path ( SAM_ACCOUNT * sampass , const char * profile_path )
2000-11-14 02:03:34 +03:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > profile_path = ' \0 ' ;
if ( ! profile_path )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > profile_path , profile_path , strlen ( profile_path ) ) ;
2001-04-26 02:12:13 +04:00
2000-11-21 08:55:16 +03:00
return True ;
2000-11-14 02:03:34 +03:00
}
2000-08-23 04:45:40 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s directory drive .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_dir_drive ( SAM_ACCOUNT * sampass , const char * dir_drive )
2000-11-14 02:03:34 +03:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > dir_drive = ' \0 ' ;
if ( ! dir_drive )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > dir_drive , dir_drive , strlen ( dir_drive ) ) ;
2001-04-26 02:12:13 +04:00
2000-11-21 08:55:16 +03:00
return True ;
2000-11-14 02:03:34 +03:00
}
2000-08-23 04:45:40 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s home directory .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_homedir ( SAM_ACCOUNT * sampass , const char * homedir )
2000-11-14 02:03:34 +03:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > home_dir = ' \0 ' ;
if ( ! homedir )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > home_dir , homedir , strlen ( homedir ) ) ;
2001-04-26 02:12:13 +04:00
2000-11-21 08:55:16 +03:00
return True ;
2000-08-23 04:45:40 +04:00
}
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s account description .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_acct_desc ( SAM_ACCOUNT * sampass , const char * acct_desc )
2000-11-21 08:55:16 +03:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > acct_desc = ' \0 ' ;
if ( ! acct_desc )
2001-04-26 02:12:13 +04:00
return False ;
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > acct_desc , acct_desc , strlen ( acct_desc ) ) ;
2000-11-21 08:55:16 +03:00
return True ;
}
2001-04-26 02:12:13 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s workstation allowed list .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_workstations ( SAM_ACCOUNT * sampass , const char * workstations )
2000-11-21 08:55:16 +03:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > workstations = ' \0 ' ;
if ( ! workstations )
return False ;
2000-11-21 08:55:16 +03:00
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > workstations , workstations , strlen ( workstations ) ) ;
2001-04-26 02:12:13 +04:00
2000-11-21 08:55:16 +03:00
return True ;
}
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s dial string .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_munged_dial ( SAM_ACCOUNT * sampass , const char * munged_dial )
2000-08-02 06:11:55 +04:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
* sampass - > munged_dial = ' \0 ' ;
if ( ! munged_dial )
return False ;
2000-11-21 08:55:16 +03:00
2001-05-04 19:44:27 +04:00
StrnCpy ( sampass - > munged_dial , munged_dial , strlen ( munged_dial ) ) ;
2000-11-21 08:55:16 +03:00
return True ;
}
2000-06-08 21:50:19 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s NT hash .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_nt_passwd ( SAM_ACCOUNT * sampass , const uint8 * pwd )
2000-11-21 08:55:16 +03:00
{
2001-09-29 17:14:19 +04:00
if ( ! sampass )
2001-09-26 00:21:21 +04:00
return False ;
2001-04-26 02:12:13 +04:00
2001-09-29 17:14:19 +04:00
if ( ! pwd ) {
/* Allow setting to NULL */
SAFE_FREE ( sampass - > nt_pw ) ;
return True ;
}
2001-05-04 19:44:27 +04:00
if ( sampass - > nt_pw ! = NULL )
2001-09-26 00:21:21 +04:00
DEBUG ( 4 , ( " pdb_set_nt_passwd: NT hash non NULL overwritting ? \n " ) ) ;
2001-05-04 19:44:27 +04:00
else
sampass - > nt_pw = ( unsigned char * ) malloc ( sizeof ( unsigned char ) * 16 ) ;
2001-04-26 02:12:13 +04:00
2001-05-04 19:44:27 +04:00
if ( sampass - > nt_pw = = NULL )
return False ;
2001-04-26 02:12:13 +04:00
memcpy ( sampass - > nt_pw , pwd , 16 ) ;
2000-06-08 21:50:19 +04:00
2000-11-21 08:55:16 +03:00
return True ;
2000-06-09 22:45:31 +04:00
}
2000-08-23 04:45:40 +04:00
2001-05-04 19:44:27 +04:00
/*********************************************************************
2001-09-26 00:21:21 +04:00
Set the user ' s LM hash .
2001-05-04 19:44:27 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2001-09-26 00:21:21 +04:00
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_lanman_passwd ( SAM_ACCOUNT * sampass , const uint8 * pwd )
2000-08-23 04:45:40 +04:00
{
2001-09-29 17:14:19 +04:00
if ( ! sampass )
2001-09-26 00:21:21 +04:00
return False ;
2001-04-26 02:12:13 +04:00
2001-09-29 17:14:19 +04:00
if ( ! pwd ) {
/* Allow setting to NULL */
SAFE_FREE ( sampass - > lm_pw ) ;
return True ;
}
2001-05-04 19:44:27 +04:00
if ( sampass - > lm_pw ! = NULL )
2001-09-26 00:21:21 +04:00
DEBUG ( 4 , ( " pdb_set_lanman_passwd: LM hash non NULL overwritting ? \n " ) ) ;
2001-05-04 19:44:27 +04:00
else
sampass - > lm_pw = ( unsigned char * ) malloc ( sizeof ( unsigned char ) * 16 ) ;
2001-04-26 02:12:13 +04:00
2001-05-04 19:44:27 +04:00
if ( sampass - > lm_pw = = NULL )
return False ;
2001-04-26 02:12:13 +04:00
memcpy ( sampass - > lm_pw , pwd , 16 ) ;
2000-08-23 04:45:40 +04:00
2000-11-21 08:55:16 +03:00
return True ;
2000-11-14 02:03:34 +03:00
}
2001-05-04 18:01:33 +04:00
BOOL pdb_set_unknown_3 ( SAM_ACCOUNT * sampass , uint32 unkn )
{
if ( ! sampass )
return False ;
sampass - > unknown_3 = unkn ;
return True ;
}
BOOL pdb_set_unknown_5 ( SAM_ACCOUNT * sampass , uint32 unkn )
{
if ( ! sampass )
return False ;
sampass - > unknown_5 = unkn ;
return True ;
}
BOOL pdb_set_unknown_6 ( SAM_ACCOUNT * sampass , uint32 unkn )
{
if ( ! sampass )
return False ;
sampass - > unknown_6 = unkn ;
return True ;
}
This commit is number 4 of 4.
In particular this commit focuses on:
Actually adding the 'const' to the passdb interface, and the flow-on changes.
Also kill off the 'disp_info' stuff, as its no longer used.
While these changes have been mildly tested, and are pretty small, any
assistance in this is appreciated.
----
These changes introduces a large dose of 'const' to the Samba tree.
There are a number of good reasons to do this:
- I want to allow the SAM_ACCOUNT structure to move from wasteful
pstrings and fstrings to allocated strings. We can't do that if
people are modifying these outputs, as they may well make
assumptions about getting pstrings and fstrings
- I want --with-pam_smbpass to compile with a slightly sane
volume of warnings, currently its pretty bad, even in 2.2
where is compiles at all.
- Tridge assures me that he no longer opposes 'const religion'
based on the ability to #define const the problem away.
- Changed Get_Pwnam(x,y) into two variants (so that the const
parameter can work correctly): - Get_Pwnam(const x) and
Get_Pwnam_Modify(x).
- Reworked smbd/chgpasswd.c to work with these mods, passing
around a 'struct passwd' rather than the modified username
---
This finishes this line of commits off, your tree should now compile again :-)
Andrew Bartlett
(This used to be commit c95f5aeb9327347674589ae313b75bee3bf8e317)
2001-10-29 10:35:11 +03:00
BOOL pdb_set_hours ( SAM_ACCOUNT * sampass , const uint8 * hours )
2001-05-04 18:01:33 +04:00
{
2001-09-26 00:21:21 +04:00
if ( ! sampass )
return False ;
2001-05-04 18:01:33 +04:00
2001-09-26 00:21:21 +04:00
if ( ! hours ) {
2001-05-04 18:01:33 +04:00
memset ( ( char * ) sampass - > hours , 0 , MAX_HOURS_LEN ) ;
return True ;
}
memcpy ( sampass - > hours , hours , MAX_HOURS_LEN ) ;
return True ;
}
2001-10-29 10:15:51 +03:00
/* Helpful interfaces to the above */
/*********************************************************************
Sets the last changed times and must change times for a normal
password change .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
BOOL pdb_set_pass_changed_now ( SAM_ACCOUNT * sampass )
{
if ( ! sampass )
return False ;
if ( ! pdb_set_pass_last_set_time ( sampass , time ( NULL ) ) )
return False ;
if ( ! pdb_set_pass_must_change_time ( sampass ,
pdb_get_pass_last_set_time ( sampass )
+ MAX_PASSWORD_AGE ) )
return False ;
return True ;
}
/*********************************************************************
Set the user ' s PLAINTEXT password . Used as an interface to the above .
Also sets the last change time to NOW .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
BOOL pdb_set_plaintext_passwd ( SAM_ACCOUNT * sampass , const char * plaintext )
{
uchar new_lanman_p16 [ 16 ] ;
uchar new_nt_p16 [ 16 ] ;
if ( ! sampass | | ! plaintext )
return False ;
nt_lm_owf_gen ( plaintext , new_nt_p16 , new_lanman_p16 ) ;
if ( ! pdb_set_nt_passwd ( sampass , new_nt_p16 ) )
return False ;
if ( ! pdb_set_lanman_passwd ( sampass , new_lanman_p16 ) )
return False ;
if ( ! pdb_set_pass_changed_now ( sampass ) )
return False ;
return True ;
}