mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
c35ae5943d
Guenther
(This used to be commit df90a37c3e
)
210 lines
6.3 KiB
C
210 lines
6.3 KiB
C
/*
|
|
* Unix SMB/CIFS implementation.
|
|
* RPC Pipe client / server routines
|
|
* Copyright (C) Guenther Deschner 2008.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#include "includes.h"
|
|
|
|
/*******************************************************************
|
|
inits a structure.
|
|
********************************************************************/
|
|
|
|
void init_netr_SamBaseInfo(struct netr_SamBaseInfo *r,
|
|
NTTIME last_logon,
|
|
NTTIME last_logoff,
|
|
NTTIME acct_expiry,
|
|
NTTIME last_password_change,
|
|
NTTIME allow_password_change,
|
|
NTTIME force_password_change,
|
|
const char *account_name,
|
|
const char *full_name,
|
|
const char *logon_script,
|
|
const char *profile_path,
|
|
const char *home_directory,
|
|
const char *home_drive,
|
|
uint16_t logon_count,
|
|
uint16_t bad_password_count,
|
|
uint32_t rid,
|
|
uint32_t primary_gid,
|
|
struct samr_RidWithAttributeArray groups,
|
|
uint32_t user_flags,
|
|
struct netr_UserSessionKey key,
|
|
const char *logon_server,
|
|
const char *domain,
|
|
struct dom_sid2 *domain_sid,
|
|
struct netr_LMSessionKey LMSessKey,
|
|
uint32_t acct_flags)
|
|
{
|
|
r->last_logon = last_logon;
|
|
r->last_logoff = last_logoff;
|
|
r->acct_expiry = acct_expiry;
|
|
r->last_password_change = last_password_change;
|
|
r->allow_password_change = allow_password_change;
|
|
r->force_password_change = force_password_change;
|
|
init_lsa_String(&r->account_name, account_name);
|
|
init_lsa_String(&r->full_name, full_name);
|
|
init_lsa_String(&r->logon_script, logon_script);
|
|
init_lsa_String(&r->profile_path, profile_path);
|
|
init_lsa_String(&r->home_directory, home_directory);
|
|
init_lsa_String(&r->home_drive, home_drive);
|
|
r->logon_count = logon_count;
|
|
r->bad_password_count = bad_password_count;
|
|
r->rid = rid;
|
|
r->primary_gid = primary_gid;
|
|
r->groups = groups;
|
|
r->user_flags = user_flags;
|
|
r->key = key;
|
|
init_lsa_StringLarge(&r->logon_server, logon_server);
|
|
init_lsa_StringLarge(&r->domain, domain);
|
|
r->domain_sid = domain_sid;
|
|
r->LMSessKey = LMSessKey;
|
|
r->acct_flags = acct_flags;
|
|
}
|
|
|
|
/*******************************************************************
|
|
inits a structure.
|
|
********************************************************************/
|
|
|
|
void init_netr_SamInfo3(struct netr_SamInfo3 *r,
|
|
NTTIME last_logon,
|
|
NTTIME last_logoff,
|
|
NTTIME acct_expiry,
|
|
NTTIME last_password_change,
|
|
NTTIME allow_password_change,
|
|
NTTIME force_password_change,
|
|
const char *account_name,
|
|
const char *full_name,
|
|
const char *logon_script,
|
|
const char *profile_path,
|
|
const char *home_directory,
|
|
const char *home_drive,
|
|
uint16_t logon_count,
|
|
uint16_t bad_password_count,
|
|
uint32_t rid,
|
|
uint32_t primary_gid,
|
|
struct samr_RidWithAttributeArray groups,
|
|
uint32_t user_flags,
|
|
struct netr_UserSessionKey key,
|
|
const char *logon_server,
|
|
const char *domain,
|
|
struct dom_sid2 *domain_sid,
|
|
struct netr_LMSessionKey LMSessKey,
|
|
uint32_t acct_flags,
|
|
uint32_t sidcount,
|
|
struct netr_SidAttr *sids)
|
|
{
|
|
init_netr_SamBaseInfo(&r->base,
|
|
last_logon,
|
|
last_logoff,
|
|
acct_expiry,
|
|
last_password_change,
|
|
allow_password_change,
|
|
force_password_change,
|
|
account_name,
|
|
full_name,
|
|
logon_script,
|
|
profile_path,
|
|
home_directory,
|
|
home_drive,
|
|
logon_count,
|
|
bad_password_count,
|
|
rid,
|
|
primary_gid,
|
|
groups,
|
|
user_flags,
|
|
key,
|
|
logon_server,
|
|
domain,
|
|
domain_sid,
|
|
LMSessKey,
|
|
acct_flags);
|
|
r->sidcount = sidcount;
|
|
r->sids = sids;
|
|
}
|
|
|
|
/*******************************************************************
|
|
inits a structure.
|
|
********************************************************************/
|
|
|
|
void init_netr_IdentityInfo(struct netr_IdentityInfo *r,
|
|
const char *domain_name,
|
|
uint32_t parameter_control,
|
|
uint32_t logon_id_low,
|
|
uint32_t logon_id_high,
|
|
const char *account_name,
|
|
const char *workstation)
|
|
{
|
|
init_lsa_String(&r->domain_name, domain_name);
|
|
r->parameter_control = parameter_control;
|
|
r->logon_id_low = logon_id_low;
|
|
r->logon_id_high = logon_id_high;
|
|
init_lsa_String(&r->account_name, account_name);
|
|
init_lsa_String(&r->workstation, workstation);
|
|
}
|
|
|
|
/*******************************************************************
|
|
inits a structure.
|
|
********************************************************************/
|
|
|
|
void init_netr_NetworkInfo(struct netr_NetworkInfo *r,
|
|
const char *domain_name,
|
|
uint32_t parameter_control,
|
|
uint32_t logon_id_low,
|
|
uint32_t logon_id_high,
|
|
const char *account_name,
|
|
const char *workstation,
|
|
uint8_t challenge[8],
|
|
struct netr_ChallengeResponse nt,
|
|
struct netr_ChallengeResponse lm)
|
|
{
|
|
init_netr_IdentityInfo(&r->identity_info,
|
|
domain_name,
|
|
parameter_control,
|
|
logon_id_low,
|
|
logon_id_high,
|
|
account_name,
|
|
workstation);
|
|
memcpy(r->challenge, challenge, 8);
|
|
r->nt = nt;
|
|
r->lm = lm;
|
|
}
|
|
|
|
/*******************************************************************
|
|
inits a structure.
|
|
********************************************************************/
|
|
|
|
void init_netr_PasswordInfo(struct netr_PasswordInfo *r,
|
|
const char *domain_name,
|
|
uint32_t parameter_control,
|
|
uint32_t logon_id_low,
|
|
uint32_t logon_id_high,
|
|
const char *account_name,
|
|
const char *workstation,
|
|
struct samr_Password lmpassword,
|
|
struct samr_Password ntpassword)
|
|
{
|
|
init_netr_IdentityInfo(&r->identity_info,
|
|
domain_name,
|
|
parameter_control,
|
|
logon_id_low,
|
|
logon_id_high,
|
|
account_name,
|
|
workstation);
|
|
r->lmpassword = lmpassword;
|
|
r->ntpassword = ntpassword;
|
|
}
|