summaryrefslogtreecommitdiff
path: root/source3/passdb/passdb.c
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2001-10-29 07:35:11 +0000
committerAndrew Bartlett <abartlet@samba.org>2001-10-29 07:35:11 +0000
commitd9d7f023d8d11943ca0375e1573e6ec9921889bc (patch)
tree05cc98ee549f6d8d52711172c6fdcd3564d7ef55 /source3/passdb/passdb.c
parent2038649e51f48a489aeec49947e1b791f0b3df43 (diff)
downloadsamba-d9d7f023d8d11943ca0375e1573e6ec9921889bc.tar.gz
samba-d9d7f023d8d11943ca0375e1573e6ec9921889bc.tar.bz2
samba-d9d7f023d8d11943ca0375e1573e6ec9921889bc.zip
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)
Diffstat (limited to 'source3/passdb/passdb.c')
-rw-r--r--source3/passdb/passdb.c142
1 files changed, 60 insertions, 82 deletions
diff --git a/source3/passdb/passdb.c b/source3/passdb/passdb.c
index 671f18a7b0..c58afc1f89 100644
--- a/source3/passdb/passdb.c
+++ b/source3/passdb/passdb.c
@@ -52,17 +52,6 @@ BOOL initialize_password_db(BOOL reload)
}
-/*************************************************************
- Initialises a struct sam_disp_info.
- **************************************************************/
-
-static void pdb_init_dispinfo(struct sam_disp_info *user)
-{
- if (user == NULL)
- return;
- ZERO_STRUCTP(user);
-}
-
/************************************************************
Fill the SAM_ACCOUNT with default values.
@@ -253,26 +242,6 @@ BOOL pdb_free_sam(SAM_ACCOUNT **user)
}
-/*************************************************************************
- Routine to return the next entry in the sam passwd list.
- *************************************************************************/
-
-struct sam_disp_info *pdb_sam_to_dispinfo(SAM_ACCOUNT *user)
-{
- static struct sam_disp_info disp_info;
-
- if (user == NULL)
- return NULL;
-
- pdb_init_dispinfo(&disp_info);
-
- disp_info.smb_name = user->username;
- disp_info.full_name = user->full_name;
- disp_info.user_rid = user->user_rid;
-
- return &disp_info;
-}
-
/**********************************************************
Encode the account control bits into a string.
length = length of string to encode into (including terminating
@@ -354,7 +323,7 @@ uint16 pdb_decode_acct_ctrl(const char *p)
Routine to set 32 hex password characters from a 16 byte array.
**************************************************************/
-void pdb_sethexpwd(char *p, unsigned char *pwd, uint16 acct_ctrl)
+void pdb_sethexpwd(char *p, const unsigned char *pwd, uint16 acct_ctrl)
{
if (pwd != NULL) {
int i;
@@ -373,7 +342,7 @@ void pdb_sethexpwd(char *p, unsigned char *pwd, uint16 acct_ctrl)
into a 16 byte array.
**************************************************************/
-BOOL pdb_gethexpwd(char *p, unsigned char *pwd)
+BOOL pdb_gethexpwd(const char *p, unsigned char *pwd)
{
int i;
unsigned char lonybble, hinybble;
@@ -405,9 +374,9 @@ BOOL pdb_gethexpwd(char *p, unsigned char *pwd)
Group and User RID username mapping function
********************************************************************/
-BOOL pdb_name_to_rid(char *user_name, uint32 *u_rid, uint32 *g_rid)
+BOOL pdb_name_to_rid(const char *user_name, uint32 *u_rid, uint32 *g_rid)
{
- struct passwd *pw = Get_Pwnam(user_name, False);
+ struct passwd *pw = Get_Pwnam(user_name);
if (u_rid == NULL || g_rid == NULL || user_name == NULL)
return False;
@@ -446,6 +415,15 @@ gid_t pdb_user_rid_to_gid(uint32 user_rid)
}
/*******************************************************************
+ 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);
+}
+
+/*******************************************************************
converts UNIX uid to an NT User RID.
********************************************************************/
@@ -628,7 +606,7 @@ BOOL local_lookup_name(const char *c_domain, const char *c_user, DOM_SID *psid,
(void)map_username(user);
- if((pass = Get_Pwnam(user, False))) {
+ if((pass = Get_Pwnam(user))) {
sid_append_rid( &local_sid, pdb_uid_to_user_rid(pass->pw_uid));
*psid_name_use = SID_NAME_USER;
} else {
@@ -881,8 +859,8 @@ void copy_sam_passwd(SAM_ACCOUNT *to, const SAM_ACCOUNT *from)
--jerry
*************************************************************/
-BOOL local_password_change(char *user_name, int local_flags,
- char *new_passwd,
+BOOL local_password_change(const char *user_name, int local_flags,
+ const char *new_passwd,
char *err_str, size_t err_str_len,
char *msg_str, size_t msg_str_len)
{
@@ -1042,7 +1020,7 @@ account without a valid local system user.\n", user_name);
Collection of get...() functions for SAM_ACCOUNT_INFO.
********************************************************************/
-uint16 pdb_get_acct_ctrl (SAM_ACCOUNT *sampass)
+uint16 pdb_get_acct_ctrl (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->acct_ctrl);
@@ -1050,7 +1028,7 @@ uint16 pdb_get_acct_ctrl (SAM_ACCOUNT *sampass)
return (ACB_DISABLED);
}
-time_t pdb_get_logon_time (SAM_ACCOUNT *sampass)
+time_t pdb_get_logon_time (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->logon_time);
@@ -1058,7 +1036,7 @@ time_t pdb_get_logon_time (SAM_ACCOUNT *sampass)
return (0);
}
-time_t pdb_get_logoff_time (SAM_ACCOUNT *sampass)
+time_t pdb_get_logoff_time (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->logoff_time);
@@ -1066,7 +1044,7 @@ time_t pdb_get_logoff_time (SAM_ACCOUNT *sampass)
return (-1);
}
-time_t pdb_get_kickoff_time (SAM_ACCOUNT *sampass)
+time_t pdb_get_kickoff_time (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->kickoff_time);
@@ -1074,7 +1052,7 @@ time_t pdb_get_kickoff_time (SAM_ACCOUNT *sampass)
return (-1);
}
-time_t pdb_get_pass_last_set_time (SAM_ACCOUNT *sampass)
+time_t pdb_get_pass_last_set_time (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->pass_last_set_time);
@@ -1082,7 +1060,7 @@ time_t pdb_get_pass_last_set_time (SAM_ACCOUNT *sampass)
return (-1);
}
-time_t pdb_get_pass_can_change_time (SAM_ACCOUNT *sampass)
+time_t pdb_get_pass_can_change_time (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->pass_can_change_time);
@@ -1090,7 +1068,7 @@ time_t pdb_get_pass_can_change_time (SAM_ACCOUNT *sampass)
return (-1);
}
-time_t pdb_get_pass_must_change_time (SAM_ACCOUNT *sampass)
+time_t pdb_get_pass_must_change_time (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->pass_must_change_time);
@@ -1098,7 +1076,7 @@ time_t pdb_get_pass_must_change_time (SAM_ACCOUNT *sampass)
return (-1);
}
-uint16 pdb_get_logon_divs (SAM_ACCOUNT *sampass)
+uint16 pdb_get_logon_divs (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->logon_divs);
@@ -1106,7 +1084,7 @@ uint16 pdb_get_logon_divs (SAM_ACCOUNT *sampass)
return (-1);
}
-uint32 pdb_get_hours_len (SAM_ACCOUNT *sampass)
+uint32 pdb_get_hours_len (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->hours_len);
@@ -1114,7 +1092,7 @@ uint32 pdb_get_hours_len (SAM_ACCOUNT *sampass)
return (-1);
}
-uint8* pdb_get_hours (SAM_ACCOUNT *sampass)
+const uint8* pdb_get_hours (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->hours);
@@ -1122,7 +1100,7 @@ uint8* pdb_get_hours (SAM_ACCOUNT *sampass)
return (NULL);
}
-uint8* pdb_get_nt_passwd (SAM_ACCOUNT *sampass)
+const uint8* pdb_get_nt_passwd (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->nt_pw);
@@ -1130,7 +1108,7 @@ uint8* pdb_get_nt_passwd (SAM_ACCOUNT *sampass)
return (NULL);
}
-uint8* pdb_get_lanman_passwd (SAM_ACCOUNT *sampass)
+const uint8* pdb_get_lanman_passwd (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->lm_pw);
@@ -1138,7 +1116,7 @@ uint8* pdb_get_lanman_passwd (SAM_ACCOUNT *sampass)
return (NULL);
}
-uint32 pdb_get_user_rid (SAM_ACCOUNT *sampass)
+uint32 pdb_get_user_rid (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->user_rid);
@@ -1146,7 +1124,7 @@ uint32 pdb_get_user_rid (SAM_ACCOUNT *sampass)
return (-1);
}
-uint32 pdb_get_group_rid (SAM_ACCOUNT *sampass)
+uint32 pdb_get_group_rid (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->group_rid);
@@ -1154,7 +1132,7 @@ uint32 pdb_get_group_rid (SAM_ACCOUNT *sampass)
return (-1);
}
-uid_t pdb_get_uid (SAM_ACCOUNT *sampass)
+uid_t pdb_get_uid (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->uid);
@@ -1162,7 +1140,7 @@ uid_t pdb_get_uid (SAM_ACCOUNT *sampass)
return ((uid_t)-1);
}
-gid_t pdb_get_gid (SAM_ACCOUNT *sampass)
+gid_t pdb_get_gid (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->gid);
@@ -1170,7 +1148,7 @@ gid_t pdb_get_gid (SAM_ACCOUNT *sampass)
return ((gid_t)-1);
}
-char* pdb_get_username (SAM_ACCOUNT *sampass)
+const char* pdb_get_username (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->username);
@@ -1178,7 +1156,7 @@ char* pdb_get_username (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_domain (SAM_ACCOUNT *sampass)
+const char* pdb_get_domain (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->domain);
@@ -1186,7 +1164,7 @@ char* pdb_get_domain (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_nt_username (SAM_ACCOUNT *sampass)
+const char* pdb_get_nt_username (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->nt_username);
@@ -1194,7 +1172,7 @@ char* pdb_get_nt_username (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_fullname (SAM_ACCOUNT *sampass)
+const char* pdb_get_fullname (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->full_name);
@@ -1202,7 +1180,7 @@ char* pdb_get_fullname (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_homedir (SAM_ACCOUNT *sampass)
+const char* pdb_get_homedir (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->home_dir);
@@ -1210,7 +1188,7 @@ char* pdb_get_homedir (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_dirdrive (SAM_ACCOUNT *sampass)
+const char* pdb_get_dirdrive (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->dir_drive);
@@ -1218,7 +1196,7 @@ char* pdb_get_dirdrive (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_logon_script (SAM_ACCOUNT *sampass)
+const char* pdb_get_logon_script (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->logon_script);
@@ -1226,7 +1204,7 @@ char* pdb_get_logon_script (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_profile_path (SAM_ACCOUNT *sampass)
+const char* pdb_get_profile_path (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->profile_path);
@@ -1234,7 +1212,7 @@ char* pdb_get_profile_path (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_acct_desc (SAM_ACCOUNT *sampass)
+const char* pdb_get_acct_desc (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->acct_desc);
@@ -1242,7 +1220,7 @@ char* pdb_get_acct_desc (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_workstations (SAM_ACCOUNT *sampass)
+const char* pdb_get_workstations (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->workstations);
@@ -1250,7 +1228,7 @@ char* pdb_get_workstations (SAM_ACCOUNT *sampass)
return (NULL);
}
-char* pdb_get_munged_dial (SAM_ACCOUNT *sampass)
+const char* pdb_get_munged_dial (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->munged_dial);
@@ -1258,7 +1236,7 @@ char* pdb_get_munged_dial (SAM_ACCOUNT *sampass)
return (NULL);
}
-uint32 pdb_get_unknown3 (SAM_ACCOUNT *sampass)
+uint32 pdb_get_unknown3 (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->unknown_3);
@@ -1266,7 +1244,7 @@ uint32 pdb_get_unknown3 (SAM_ACCOUNT *sampass)
return (-1);
}
-uint32 pdb_get_unknown5 (SAM_ACCOUNT *sampass)
+uint32 pdb_get_unknown5 (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->unknown_5);
@@ -1274,7 +1252,7 @@ uint32 pdb_get_unknown5 (SAM_ACCOUNT *sampass)
return (-1);
}
-uint32 pdb_get_unknown6 (SAM_ACCOUNT *sampass)
+uint32 pdb_get_unknown6 (const SAM_ACCOUNT *sampass)
{
if (sampass)
return (sampass->unknown_6);
@@ -1411,7 +1389,7 @@ BOOL pdb_set_group_rid (SAM_ACCOUNT *sampass, uint32 grid)
Set the user's UNIX name.
********************************************************************/
-BOOL pdb_set_username(SAM_ACCOUNT *sampass, char *username)
+BOOL pdb_set_username(SAM_ACCOUNT *sampass, const char *username)
{
if (!sampass)
return False;
@@ -1428,7 +1406,7 @@ BOOL pdb_set_username(SAM_ACCOUNT *sampass, char *username)
Set the domain name.
********************************************************************/
-BOOL pdb_set_domain(SAM_ACCOUNT *sampass, char *domain)
+BOOL pdb_set_domain(SAM_ACCOUNT *sampass, const char *domain)
{
if (!sampass)
return False;
@@ -1445,7 +1423,7 @@ BOOL pdb_set_domain(SAM_ACCOUNT *sampass, char *domain)
Set the user's NT name.
********************************************************************/
-BOOL pdb_set_nt_username(SAM_ACCOUNT *sampass, char *nt_username)
+BOOL pdb_set_nt_username(SAM_ACCOUNT *sampass, const char *nt_username)
{
if (!sampass)
return False;
@@ -1462,7 +1440,7 @@ BOOL pdb_set_nt_username(SAM_ACCOUNT *sampass, char *nt_username)
Set the user's full name.
********************************************************************/
-BOOL pdb_set_fullname(SAM_ACCOUNT *sampass, char *fullname)
+BOOL pdb_set_fullname(SAM_ACCOUNT *sampass, const char *fullname)
{
if (!sampass)
return False;
@@ -1479,7 +1457,7 @@ BOOL pdb_set_fullname(SAM_ACCOUNT *sampass, char *fullname)
Set the user's logon script.
********************************************************************/
-BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, char *logon_script)
+BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, const char *logon_script)
{
if (!sampass)
return False;
@@ -1496,7 +1474,7 @@ BOOL pdb_set_logon_script(SAM_ACCOUNT *sampass, char *logon_script)
Set the user's profile path.
********************************************************************/
-BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, char *profile_path)
+BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, const char *profile_path)
{
if (!sampass)
return False;
@@ -1513,7 +1491,7 @@ BOOL pdb_set_profile_path (SAM_ACCOUNT *sampass, char *profile_path)
Set the user's directory drive.
********************************************************************/
-BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, char *dir_drive)
+BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, const char *dir_drive)
{
if (!sampass)
return False;
@@ -1530,7 +1508,7 @@ BOOL pdb_set_dir_drive (SAM_ACCOUNT *sampass, char *dir_drive)
Set the user's home directory.
********************************************************************/
-BOOL pdb_set_homedir (SAM_ACCOUNT *sampass, char *homedir)
+BOOL pdb_set_homedir (SAM_ACCOUNT *sampass, const char *homedir)
{
if (!sampass)
return False;
@@ -1547,7 +1525,7 @@ BOOL pdb_set_homedir (SAM_ACCOUNT *sampass, char *homedir)
Set the user's account description.
********************************************************************/
-BOOL pdb_set_acct_desc (SAM_ACCOUNT *sampass, char *acct_desc)
+BOOL pdb_set_acct_desc (SAM_ACCOUNT *sampass, const char *acct_desc)
{
if (!sampass)
return False;
@@ -1564,7 +1542,7 @@ BOOL pdb_set_acct_desc (SAM_ACCOUNT *sampass, char *acct_desc)
Set the user's workstation allowed list.
********************************************************************/
-BOOL pdb_set_workstations (SAM_ACCOUNT *sampass, char *workstations)
+BOOL pdb_set_workstations (SAM_ACCOUNT *sampass, const char *workstations)
{
if (!sampass)
return False;
@@ -1581,7 +1559,7 @@ BOOL pdb_set_workstations (SAM_ACCOUNT *sampass, char *workstations)
Set the user's dial string.
********************************************************************/
-BOOL pdb_set_munged_dial (SAM_ACCOUNT *sampass, char *munged_dial)
+BOOL pdb_set_munged_dial (SAM_ACCOUNT *sampass, const char *munged_dial)
{
if (!sampass)
return False;
@@ -1598,7 +1576,7 @@ BOOL pdb_set_munged_dial (SAM_ACCOUNT *sampass, char *munged_dial)
Set the user's NT hash.
********************************************************************/
-BOOL pdb_set_nt_passwd (SAM_ACCOUNT *sampass, uint8 *pwd)
+BOOL pdb_set_nt_passwd (SAM_ACCOUNT *sampass, const uint8 *pwd)
{
if (!sampass)
return False;
@@ -1626,7 +1604,7 @@ BOOL pdb_set_nt_passwd (SAM_ACCOUNT *sampass, uint8 *pwd)
Set the user's LM hash.
********************************************************************/
-BOOL pdb_set_lanman_passwd (SAM_ACCOUNT *sampass, uint8 *pwd)
+BOOL pdb_set_lanman_passwd (SAM_ACCOUNT *sampass, const uint8 *pwd)
{
if (!sampass)
return False;
@@ -1677,7 +1655,7 @@ BOOL pdb_set_unknown_6 (SAM_ACCOUNT *sampass, uint32 unkn)
return True;
}
-BOOL pdb_set_hours (SAM_ACCOUNT *sampass, uint8 *hours)
+BOOL pdb_set_hours (SAM_ACCOUNT *sampass, const uint8 *hours)
{
if (!sampass)
return False;