#include "ntlmssp_wrap.h"
#include "../librpc/gen_ndr/netlogon.h"
-NTSTATUS auth_ntlmssp_steal_server_info(TALLOC_CTX *mem_ctx,
+NTSTATUS auth_ntlmssp_steal_session_info(TALLOC_CTX *mem_ctx,
struct auth_ntlmssp_state *auth_ntlmssp_state,
- struct auth_serversupplied_info **server_info)
+ struct auth_serversupplied_info **session_info)
{
/* Free the current server_info user_session_key and reset it from the
* current ntlmssp_state session_key */
auth_ntlmssp_state->ntlmssp_state->session_key.length);
if (auth_ntlmssp_state->ntlmssp_state->session_key.length &&
!auth_ntlmssp_state->server_info->user_session_key.data) {
- *server_info = NULL;
+ *session_info = NULL;
return NT_STATUS_NO_MEMORY;
}
- /* Steal server_info away from auth_ntlmssp_state */
- *server_info = talloc_move(mem_ctx, &auth_ntlmssp_state->server_info);
+ /* Steal session_info away from auth_ntlmssp_state */
+ *session_info = talloc_move(mem_ctx, &auth_ntlmssp_state->server_info);
return NT_STATUS_OK;
}
}
/***************************************************************************
- Make (and fill) a user_info struct for a system user login.
+ Make (and fill) a auth_session_info struct for a system user login.
This *must* succeed for smbd to start.
***************************************************************************/
-static NTSTATUS make_new_server_info_system(TALLOC_CTX *mem_ctx,
- struct auth_serversupplied_info **server_info)
+static NTSTATUS make_new_session_info_system(TALLOC_CTX *mem_ctx,
+ struct auth_serversupplied_info **session_info)
{
struct passwd *pwd;
NTSTATUS status;
status = make_serverinfo_from_username(mem_ctx,
pwd->pw_name,
false,
- server_info);
+ session_info);
TALLOC_FREE(pwd);
if (!NT_STATUS_IS_OK(status)) {
return status;
}
- (*server_info)->system = true;
+ (*session_info)->system = true;
- status = add_sid_to_array_unique((*server_info)->security_token->sids,
+ status = add_sid_to_array_unique((*session_info)->security_token->sids,
&global_sid_System,
- &(*server_info)->security_token->sids,
- &(*server_info)->security_token->num_sids);
+ &(*session_info)->security_token->sids,
+ &(*session_info)->security_token->num_sids);
if (!NT_STATUS_IS_OK(status)) {
- TALLOC_FREE((*server_info));
+ TALLOC_FREE((*session_info));
return status;
}
* SMB level session key with SystemLibraryDTC
*/
-bool server_info_set_session_key(struct auth_serversupplied_info *info,
+bool session_info_set_session_key(struct auth_serversupplied_info *info,
DATA_BLOB session_key)
{
TALLOC_FREE(info->user_session_key.data);
if (system_info != NULL)
return NT_STATUS_OK;
- return make_new_server_info_system(NULL, &system_info);
+ return make_new_session_info_system(NULL, &system_info);
}
-NTSTATUS make_server_info_system(TALLOC_CTX *mem_ctx,
- struct auth_serversupplied_info **server_info)
+NTSTATUS make_session_info_system(TALLOC_CTX *mem_ctx,
+ struct auth_serversupplied_info **session_info)
{
if (system_info == NULL) return NT_STATUS_UNSUCCESSFUL;
- *server_info = copy_serverinfo(mem_ctx, system_info);
- return (*server_info != NULL) ? NT_STATUS_OK : NT_STATUS_NO_MEMORY;
+ *session_info = copy_serverinfo(mem_ctx, system_info);
+ return (*session_info != NULL) ? NT_STATUS_OK : NT_STATUS_NO_MEMORY;
}
-const struct auth_serversupplied_info *get_server_info_system(void)
+const struct auth_serversupplied_info *get_session_info_system(void)
{
return system_info;
}
struct client_address *client_id;
- struct auth_serversupplied_info *server_info;
+ struct auth_serversupplied_info *session_info;
struct messaging_context *msg_ctx;
struct ndr_syntax_id syntax;
/* The following definitions come from auth/auth_ntlmssp.c */
-NTSTATUS auth_ntlmssp_steal_server_info(TALLOC_CTX *mem_ctx,
+NTSTATUS auth_ntlmssp_steal_session_info(TALLOC_CTX *mem_ctx,
struct auth_ntlmssp_state *auth_ntlmssp_state,
- struct auth_serversupplied_info **server_info);
+ struct auth_serversupplied_info **session_info);
NTSTATUS auth_ntlmssp_start(struct auth_ntlmssp_state **auth_ntlmssp_state);
const struct auth_serversupplied_info *src);
bool init_guest_info(void);
NTSTATUS init_system_info(void);
-bool server_info_set_session_key(struct auth_serversupplied_info *info,
+bool session_info_set_session_key(struct auth_serversupplied_info *info,
DATA_BLOB session_key);
NTSTATUS make_server_info_guest(TALLOC_CTX *mem_ctx,
struct auth_serversupplied_info **server_info);
-NTSTATUS make_server_info_system(TALLOC_CTX *mem_ctx,
- struct auth_serversupplied_info **server_info);
-const struct auth_serversupplied_info *get_server_info_system(void);
+NTSTATUS make_session_info_system(TALLOC_CTX *mem_ctx,
+ struct auth_serversupplied_info **session_info);
+const struct auth_serversupplied_info *get_session_info_system(void);
bool copy_current_user(struct current_user *dst, struct current_user *src);
struct passwd *smb_getpwnam( TALLOC_CTX *mem_ctx, const char *domuser,
char **p_save_username, bool create );
struct pipes_struct *make_internal_rpc_pipe_p(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax,
struct client_address *client_id,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx);
NTSTATUS rpcint_binding_handle(TALLOC_CTX *mem_ctx,
const struct ndr_interface_table *ndr_table,
struct client_address *client_id,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct dcerpc_binding_handle **binding_handle);
NTSTATUS rpc_pipe_open_internal(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client **presult);
NTSTATUS rpc_pipe_open_interface(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct client_address *client_id,
struct messaging_context *msg_ctx,
struct rpc_pipe_client **cli_pipe);
const struct tsocket_address *local_address,
const struct tsocket_address *remote_address,
struct client_address *client_id,
- struct auth_serversupplied_info *server_info,
+ struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct fake_file_handle **phandle);
bool np_read_in_progress(struct fake_file_handle *handle);
connection_struct **pconn,
int snum,
const char *path,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
char **poldcwd);
/* The following definitions come from smbd/negprot.c */
int register_homes_share(const char *username);
int register_existing_vuid(struct smbd_server_connection *sconn,
uint16 vuid,
- struct auth_serversupplied_info *server_info,
+ struct auth_serversupplied_info *session_info,
DATA_BLOB response_blob,
const char *smb_name);
void add_session_user(struct smbd_server_connection *sconn, const char *user);
/* The following definitions come from smbd/sesssetup.c */
NTSTATUS do_map_to_guest(NTSTATUS status,
- struct auth_serversupplied_info **server_info,
+ struct auth_serversupplied_info **session_info,
const char *user, const char *domain);
NTSTATUS parse_spnego_mechanisms(TALLOC_CTX *ctx,
};
struct vuid_cache_entry {
- struct auth_serversupplied_info *server_info;
+ struct auth_serversupplied_info *session_info;
uint16_t vuid;
bool read_only;
};
* This represents the user information on this connection. Depending
* on the vuid using this tid, this might change per SMB request.
*/
- struct auth_serversupplied_info *server_info;
+ struct auth_serversupplied_info *session_info;
/*
* If the "force group" parameter is set, this is the primary gid that
TDB key string */
int homes_snum;
- struct auth_serversupplied_info *server_info;
+ struct auth_serversupplied_info *session_info;
struct auth_ntlmssp_state *auth_ntlmssp_state;
} user_struct;
}
afs_username = talloc_sub_advanced(ctx,
- SNUM(conn), conn->server_info->unix_name,
- conn->connectpath, conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- pdb_get_domain(conn->server_info->sam_account),
+ SNUM(conn), conn->session_info->unix_name,
+ conn->connectpath, conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ pdb_get_domain(conn->session_info->sam_account),
afs_username);
if (!afs_username) {
return false;
}
- user_sid = &conn->server_info->security_token->user_sids[0];
+ user_sid = &conn->session_info->security_token->user_sids[0];
afs_username = talloc_string_sub(talloc_tos(),
afs_username,
"%s",
{
return talloc_sub_advanced(ctx,
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
+ conn->session_info->utok.gid,
get_smb_user_name(),
"",
str);
status = rpcint_binding_handle(tmp_ctx,
&ndr_table_epmapper,
&client_id,
- get_server_info_system(),
+ get_session_info_system(),
server_messaging_context(),
&h);
if (!NT_STATUS_IS_OK(status)) {
fsp->wcp = NULL; /* Write cache pointer. */
DEBUG(2,("%s opened file %s read=%s write=%s (numopen=%d)\n",
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
smb_fname_str_dbg(smb_fname),
BOOLSTR(fsp->can_read), BOOLSTR(fsp->can_write),
conn->num_files_open));
new_file_created = True;
}
- set_share_mode(lck, fsp, conn->server_info->utok.uid, 0,
+ set_share_mode(lck, fsp, conn->session_info->utok.uid, 0,
fsp->oplock_type);
/* Handle strange delete on close create semantics. */
return NT_STATUS_DELETE_PENDING;
}
- set_share_mode(lck, fsp, conn->server_info->utok.uid, 0, NO_OPLOCK);
+ set_share_mode(lck, fsp, conn->session_info->utok.uid, 0, NO_OPLOCK);
/*
* For directories the delete on close bit at open time seems
&psd,
&size,
parent_desc,
- &handle->conn->server_info->security_token->sids[PRIMARY_USER_SID_INDEX],
- &handle->conn->server_info->security_token->sids[PRIMARY_GROUP_SID_INDEX],
+ &handle->conn->session_info->security_token->sids[PRIMARY_USER_SID_INDEX],
+ &handle->conn->session_info->security_token->sids[PRIMARY_GROUP_SID_INDEX],
is_directory);
if (!NT_STATUS_IS_OK(status)) {
return status;
targethost = talloc_sub_advanced(ctx,
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
targethost);
DEBUG(10, ("Expanded targethost to %s\n", targethost));
} else {
smb_fname->st.st_ex_mode = S_IRWXU;
}
- smb_fname->st.st_ex_uid = handle->conn->server_info->utok.uid;
- smb_fname->st.st_ex_gid = handle->conn->server_info->utok.gid;
+ smb_fname->st.st_ex_uid = handle->conn->session_info->utok.uid;
+ smb_fname->st.st_ex_gid = handle->conn->session_info->utok.gid;
}
return ret;
} else {
sbuf->st_ex_mode = S_IRWXU;
}
- sbuf->st_ex_uid = handle->conn->server_info->utok.uid;
- sbuf->st_ex_gid = handle->conn->server_info->utok.gid;
+ sbuf->st_ex_uid = handle->conn->session_info->utok.uid;
+ sbuf->st_ex_gid = handle->conn->session_info->utok.gid;
}
return ret;
}
}
result = talloc_sub_advanced(ctx,
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
prefix);
TALLOC_FREE(prefix);
return result;
for (i=0; i< VUID_CACHE_SIZE; i++) {
struct vuid_cache_entry *ent = ent = &conn->vuid_cache.array[i];
ent->vuid = UID_FIELD_INVALID;
- TALLOC_FREE(ent->server_info);
+ TALLOC_FREE(ent->session_info);
ent->read_only = false;
}
conn->vuid_cache.next_entry = 0;
int rc = -1;
repository = talloc_sub_advanced(NULL, lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
recycle_repository(handle));
ALLOC_CHECK(repository, done);
/* shouldn't we allow absolute path names here? --metze */
* anonymized if needed, by the calling function.
*/
usersid = dom_sid_string( common_data_count_str,
- &handle->conn->server_info->security_token->sids[0]);
+ &handle->conn->session_info->security_token->sids[0]);
sidstr = smb_traffic_analyzer_anonymize(
common_data_count_str,
(unsigned int) strlen(service_name),
service_name,
(unsigned int)
- strlen(handle->conn->server_info->info3->base.domain.string),
- handle->conn->server_info->info3->base.domain.string,
+ strlen(handle->conn->session_info->info3->base.domain.string),
+ handle->conn->session_info->info3->base.domain.string,
(unsigned int) strlen(timestr),
timestr,
(unsigned int) strlen(handle->conn->sconn->client_id.addr),
* function.
*/
username = smb_traffic_analyzer_anonymize( talloc_tos(),
- handle->conn->server_info->sanitized_username,
+ handle->conn->session_info->sanitized_username,
handle);
if (!username) {
"\"%04d-%02d-%02d %02d:%02d:%02d.%03d\"\n",
(unsigned int) s_data->len,
username,
- handle->conn->server_info->info3->base.domain.string,
+ handle->conn->session_info->info3->base.domain.string,
Write ? 'W' : 'R',
handle->conn->connectpath,
s_data->filename,
nt_status = create_conn_struct(talloc_tos(), &conn, printdollar_snum,
lp_pathname(printdollar_snum),
- p->server_info, &oldcwd);
+ p->session_info, &oldcwd);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0,("get_correct_cversion: create_conn_struct "
"returned %s\n", nt_errstr(nt_status)));
nt_status = create_conn_struct(talloc_tos(), &conn, printdollar_snum,
lp_pathname(printdollar_snum),
- p->server_info, &oldcwd);
+ p->session_info, &oldcwd);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0,("move_driver_to_download_area: create_conn_struct "
"returned %s\n", nt_errstr(nt_status)));
****************************************************************************/
bool printer_driver_in_use(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const struct spoolss_DriverInfo8 *r)
{
continue;
}
- result = winreg_get_printer(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_printer(mem_ctx, session_info, msg_ctx,
lp_servicename(snum),
&pinfo2);
if (!W_ERROR_IS_OK(result)) {
"Windows NT x86" version 2 or 3 left */
if (!strequal("Windows NT x86", r->architecture)) {
- werr = winreg_get_driver(mem_ctx, server_info, msg_ctx,
+ werr = winreg_get_driver(mem_ctx, session_info, msg_ctx,
"Windows NT x86",
r->driver_name,
DRIVER_ANY_VERSION,
&driver);
} else if (r->version == 2) {
- werr = winreg_get_driver(mem_ctx, server_info, msg_ctx,
+ werr = winreg_get_driver(mem_ctx, session_info, msg_ctx,
"Windows NT x86",
r->driver_name,
3, &driver);
} else if (r->version == 3) {
- werr = winreg_get_driver(mem_ctx, server_info, msg_ctx,
+ werr = winreg_get_driver(mem_ctx, session_info, msg_ctx,
"Windows NT x86",
r->driver_name,
2, &driver);
****************************************************************************/
bool printer_driver_files_in_use(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_DriverInfo8 *info)
{
/* get the list of drivers */
- result = winreg_get_driver_list(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_driver_list(mem_ctx, session_info, msg_ctx,
info->architecture, version,
&num_drivers, &drivers);
if (!W_ERROR_IS_OK(result)) {
driver = NULL;
- result = winreg_get_driver(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_driver(mem_ctx, session_info, msg_ctx,
info->architecture, drivers[i],
version, &driver);
if (!W_ERROR_IS_OK(result)) {
this.
****************************************************************************/
-bool delete_driver_files(const struct auth_serversupplied_info *server_info,
+bool delete_driver_files(const struct auth_serversupplied_info *session_info,
const struct spoolss_DriverInfo8 *r)
{
int i = 0;
nt_status = create_conn_struct(talloc_tos(), &conn, printdollar_snum,
lp_pathname(printdollar_snum),
- server_info, &oldcwd);
+ session_info, &oldcwd);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(0,("delete_driver_files: create_conn_struct "
"returned %s\n", nt_errstr(nt_status)));
3) "printer admins" (may result in numerous calls to winbind)
****************************************************************************/
-bool print_access_check(const struct auth_serversupplied_info *server_info,
+bool print_access_check(const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx, int snum,
int access_type)
{
/* Always allow root or SE_PRINT_OPERATROR to do anything */
- if (server_info->utok.uid == sec_initial_uid()
- || security_token_has_privilege(server_info->security_token, SEC_PRIV_PRINT_OPERATOR)) {
+ if (session_info->utok.uid == sec_initial_uid()
+ || security_token_has_privilege(session_info->security_token, SEC_PRIV_PRINT_OPERATOR)) {
return True;
}
}
result = winreg_get_printer_secdesc(mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
msg_ctx,
pname,
&secdesc);
}
/* Check access */
- status = se_access_check(secdesc, server_info->security_token, access_type,
+ status = se_access_check(secdesc, session_info->security_token, access_type,
&access_granted);
DEBUG(4, ("access check was %s\n", NT_STATUS_IS_OK(status) ? "SUCCESS" : "FAILURE"));
/* see if we need to try the printer admin list */
if (!NT_STATUS_IS_OK(status) &&
- (token_contains_name_in_list(uidtoname(server_info->utok.uid),
- server_info->info3->base.domain.string,
- NULL, server_info->security_token,
+ (token_contains_name_in_list(uidtoname(session_info->utok.uid),
+ session_info->info3->base.domain.string,
+ NULL, session_info->security_token,
lp_printer_admin(snum)))) {
talloc_destroy(mem_ctx);
return True;
Check the time parameters allow a print operation.
*****************************************************************************/
-bool print_time_access_check(const struct auth_serversupplied_info *server_info,
+bool print_time_access_check(const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servicename)
{
struct tm *t;
uint32 mins;
- result = winreg_get_printer(NULL, server_info, msg_ctx,
+ result = winreg_get_printer(NULL, session_info, msg_ctx,
servicename, &pinfo2);
if (!W_ERROR_IS_OK(result)) {
return False;
}
void nt_printer_remove(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer)
{
WERROR result;
- result = winreg_delete_printer_key(mem_ctx, server_info, msg_ctx,
+ result = winreg_delete_printer_key(mem_ctx, session_info, msg_ctx,
printer, "");
if (!W_ERROR_IS_OK(result)) {
DEBUG(0, ("nt_printer_remove: failed to remove rpinter %s",
const char *printer, struct GUID guid)
{
TALLOC_CTX *tmp_ctx;
- struct auth_serversupplied_info *server_info = NULL;
+ struct auth_serversupplied_info *session_info = NULL;
const char *guid_str;
DATA_BLOB blob;
NTSTATUS status;
return;
}
- status = make_server_info_system(tmp_ctx, &server_info);
+ status = make_session_info_system(tmp_ctx, &session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("store_printer_guid: "
- "Could not create system server_info\n"));
+ "Could not create system session_info\n"));
goto done;
}
goto done;
}
- result = winreg_set_printer_dataex(tmp_ctx, server_info, msg_ctx,
+ result = winreg_set_printer_dataex(tmp_ctx, session_info, msg_ctx,
printer,
SPOOL_DSSPOOLER_KEY, "objectGUID",
REG_SZ, blob.data, blob.length);
* Publish a printer in the directory
*
* @param mem_ctx memory context
- * @param server_info server_info to access winreg pipe
+ * @param session_info session_info to access winreg pipe
* @param pinfo2 printer information
* @param action publish/unpublish action
* @return WERROR indicating status of publishing
***************************************************************************/
WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_PrinterInfo2 *pinfo2,
int action)
sinfo2->attributes = pinfo2->attributes;
- win_rc = winreg_update_printer(mem_ctx, server_info, msg_ctx,
+ win_rc = winreg_update_printer(mem_ctx, session_info, msg_ctx,
pinfo2->sharename, info2_mask,
sinfo2, NULL, NULL);
if (!W_ERROR_IS_OK(win_rc)) {
int snum;
int n_services = lp_numservices();
TALLOC_CTX *tmp_ctx = NULL;
- struct auth_serversupplied_info *server_info = NULL;
+ struct auth_serversupplied_info *session_info = NULL;
struct spoolss_PrinterInfo2 *pinfo2;
NTSTATUS status;
WERROR result;
goto done;
}
- status = make_server_info_system(tmp_ctx, &server_info);
+ status = make_session_info_system(tmp_ctx, &session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("check_published_printers: "
- "Could not create system server_info\n"));
+ "Could not create system session_info\n"));
result = WERR_ACCESS_DENIED;
goto done;
}
continue;
}
- result = winreg_get_printer(tmp_ctx, server_info, msg_ctx,
+ result = winreg_get_printer(tmp_ctx, session_info, msg_ctx,
lp_servicename(snum),
&pinfo2);
if (!W_ERROR_IS_OK(result)) {
}
bool is_printer_published(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername, char *printer, struct GUID *guid,
struct spoolss_PrinterInfo2 **info2)
WERROR result;
NTSTATUS status;
- result = winreg_get_printer(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_printer(mem_ctx, session_info, msg_ctx,
printer, &pinfo2);
if (!W_ERROR_IS_OK(result)) {
return false;
/* fetching printer guids really ought to be a separate function. */
- result = winreg_get_printer_dataex(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_printer_dataex(mem_ctx, session_info, msg_ctx,
printer,
SPOOL_DSSPOOLER_KEY, "objectGUID",
&type, &data, &data_size);
}
#else
WERROR nt_printer_publish(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_PrinterInfo2 *pinfo2,
int action)
}
bool is_printer_published(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername, char *printer, struct GUID *guid,
struct spoolss_PrinterInfo2 **info2)
bool drivers_exists = file_exist(drivers_path);
bool printers_exists = file_exist(printers_path);
bool forms_exists = file_exist(forms_path);
- struct auth_serversupplied_info *server_info;
+ struct auth_serversupplied_info *session_info;
struct rpc_pipe_client *spoolss_pipe = NULL;
TALLOC_CTX *tmp_ctx = talloc_stackframe();
NTSTATUS status;
return true;
}
- status = make_server_info_system(tmp_ctx, &server_info);
+ status = make_session_info_system(tmp_ctx, &session_info);
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(0, ("Couldn't create server_info: %s\n",
+ DEBUG(0, ("Couldn't create session_info: %s\n",
nt_errstr(status)));
talloc_free(tmp_ctx);
return false;
status = rpc_pipe_open_internal(tmp_ctx,
&ndr_table_spoolss.syntax_id,
- server_info,
+ session_info,
NULL,
msg_ctx,
&spoolss_pipe);
status = rpc_pipe_open_interface(fsp->conn,
&ndr_table_spoolss.syntax_id,
- fsp->conn->server_info,
+ fsp->conn->session_info,
&fsp->conn->sconn->client_id,
fsp->conn->sconn->msg_ctx,
&fsp->conn->spoolss_pipe);
status = rpc_pipe_open_interface(fsp->conn,
&ndr_table_spoolss.syntax_id,
- fsp->conn->server_info,
+ fsp->conn->session_info,
&fsp->conn->sconn->client_id,
fsp->conn->sconn->msg_ctx,
&fsp->conn->spoolss_pipe);
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&conn->spoolss_pipe);
}
static NTSTATUS _winreg_int_openkey(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct dcerpc_binding_handle **h,
uint32_t reg_type,
status = rpcint_binding_handle(mem_ctx,
&ndr_table_winreg,
&client_id,
- server_info,
+ session_info,
msg_ctx,
&binding_handle);
if (!NT_STATUS_IS_OK(status)) {
*
* @param[in] mem_ctx The memory context to use.
*
- * @param[in] server_info The supplied server info.
+ * @param[in] session_info The supplied server info.
*
* @param[in] key The key to open. This needs to start with the name
* of the hive like HKLM.
* code if something gone wrong.
*/
NTSTATUS dcerpc_winreg_int_hklm_openkey(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct dcerpc_binding_handle **h,
const char *key,
NTSTATUS gssapi_server_get_user_info(struct gse_context *gse_ctx,
TALLOC_CTX *mem_ctx,
struct client_address *client_id,
- struct auth_serversupplied_info **server_info);
+ struct auth_serversupplied_info **session_info);
#endif /* _DCESRV_GSSAPI_H_ */
NTSTATUS ntlmssp_server_get_user_info(struct auth_ntlmssp_state *ctx,
TALLOC_CTX *mem_ctx,
- struct auth_serversupplied_info **server_info)
+ struct auth_serversupplied_info **session_info)
{
NTSTATUS status;
- status = auth_ntlmssp_steal_server_info(mem_ctx, ctx, server_info);
+ status = auth_ntlmssp_steal_session_info(mem_ctx, ctx, session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(1, (__location__ ": Failed to get authenticated user "
"info: %s\n", nt_errstr(status)));
bool do_sign, bool do_seal);
NTSTATUS ntlmssp_server_get_user_info(struct auth_ntlmssp_state *ctx,
TALLOC_CTX *mem_ctx,
- struct auth_serversupplied_info **server_info);
+ struct auth_serversupplied_info **session_info);
#endif /* _DCESRV_NTLMSSP_H_ */
NTSTATUS status;
TALLOC_CTX *ctx = talloc_tos();
- if (p->server_info->utok.uid != sec_initial_uid()) {
+ if (p->session_info->utok.uid != sec_initial_uid()) {
DEBUG(10,("_dfs_add: uid != 0. Access denied.\n"));
return WERR_ACCESS_DENIED;
}
TALLOC_CTX *ctx = talloc_tos();
char *altpath = NULL;
- if (p->server_info->utok.uid != sec_initial_uid()) {
+ if (p->session_info->utok.uid != sec_initial_uid()) {
DEBUG(10,("_dfs_remove: uid != 0. Access denied.\n"));
return WERR_ACCESS_DENIED;
}
uint32_t i;
/* If this is not a priviledged users, return */
- if (!is_priviledged_pipe(p->server_info)) {
+ if (!is_priviledged_pipe(p->session_info)) {
return EPMAPPER_STATUS_CANT_PERFORM_OP;
}
r->in.num_ents));
/* If this is not a priviledged users, return */
- if (!is_priviledged_pipe(p->server_info)) {
+ if (!is_priviledged_pipe(p->session_info)) {
return EPMAPPER_STATUS_CANT_PERFORM_OP;
}
elog->logname = talloc_strdup( elog, ELOG_APPL );
/* do the access check */
- if ( !elog_check_access( elog, p->server_info->security_token ) ) {
+ if ( !elog_check_access( elog, p->session_info->security_token ) ) {
TALLOC_FREE( elog );
return NT_STATUS_ACCESS_DENIED;
}
/* now do the access check. Close the tdb if we fail here */
- if ( !elog_check_access( elog, p->server_info->security_token ) ) {
+ if ( !elog_check_access( elog, p->session_info->security_token ) ) {
TALLOC_FREE( elog );
return NT_STATUS_ACCESS_DENIED;
}
}
status = dcerpc_winreg_int_hklm_openkey(ctx,
- get_server_info_system(),
+ get_session_info_system(),
msg_ctx,
&h,
path,
key = talloc_strdup(tmp_ctx, TOP_LEVEL_EVENTLOG_KEY);
status = dcerpc_winreg_int_hklm_openkey(tmp_ctx,
- get_server_info_system(),
+ get_session_info_system(),
msg_ctx,
&h,
key,
NTSTATUS status;
/* Work out max allowed. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
/* map the generic bits to the lsa policy ones */
return status;
}
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_INVALID, SEC_PRIV_INVALID, 0, des_access,
&acc_granted, "_lsa_OpenPolicy2" );
if (!NT_STATUS_IS_OK(status)) {
* handle - so don't check against policy handle. */
/* Work out max allowed. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&access_mask);
/* map the generic bits to the lsa account ones */
return status;
}
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_INVALID, SEC_PRIV_INVALID, 0,
access_mask, &acc_granted,
"_lsa_OpenTrustedDomain");
return NT_STATUS_ACCESS_DENIED;
}
- if (p->server_info->utok.uid != sec_initial_uid() &&
- !nt_token_check_domain_rid(p->server_info->security_token, DOMAIN_RID_ADMINS)) {
+ if (p->session_info->utok.uid != sec_initial_uid() &&
+ !nt_token_check_domain_rid(p->session_info->security_token, DOMAIN_RID_ADMINS)) {
return NT_STATUS_ACCESS_DENIED;
}
/* Work out max allowed. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&r->in.access_mask);
/* map the generic bits to the lsa policy ones */
return status;
}
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_INVALID, SEC_PRIV_INVALID, 0,
r->in.access_mask, &acc_granted,
"_lsa_CreateTrustedDomainEx2");
auth_blob.data = r->in.auth_info->auth_blob.data;
arcfour_crypt_blob(auth_blob.data, auth_blob.length,
- &p->server_info->user_session_key);
+ &p->session_info->user_session_key);
ndr_err = ndr_pull_struct_blob(&auth_blob, p->mem_ctx,
&auth_struct,
return NT_STATUS_INVALID_PARAMETER;
}
- if (p->server_info->guest) {
+ if (p->session_info->guest) {
/*
* I'm 99% sure this is not the right place to do this,
* global_sid_Anonymous should probably be put into the token
return NT_STATUS_NO_MEMORY;
}
} else {
- username = p->server_info->sanitized_username;
- domname = p->server_info->info3->base.domain.string;
+ username = p->session_info->sanitized_username;
+ domname = p->session_info->info3->base.domain.string;
}
account_name = TALLOC_P(p->mem_ctx, struct lsa_String);
}
/* Work out max allowed. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&r->in.access_mask);
/* map the generic bits to the lsa policy ones */
return status;
}
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_INVALID, SEC_PRIV_INVALID, 0, r->in.access_mask,
&acc_granted, "_lsa_CreateAccount");
if (!NT_STATUS_IS_OK(status)) {
* handle - so don't check against policy handle. */
/* Work out max allowed. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
/* map the generic bits to the lsa account ones */
return status;
}
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_INVALID, SEC_PRIV_INVALID, 0, des_access,
&acc_granted, "_lsa_OpenAccount" );
if (!NT_STATUS_IS_OK(status)) {
* on the account sid. We don't check here so just use the latter. JRA.
*/
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_INVALID, SEC_PRIV_INVALID, 0,
LSA_ACCOUNT_ADJUST_PRIVILEGES|LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS|LSA_ACCOUNT_VIEW,
&acc_granted, "_lsa_AddAccountRights" );
* and DELETE on the account sid.
*/
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_INVALID, SEC_PRIV_INVALID, 0,
LSA_ACCOUNT_ADJUST_PRIVILEGES|LSA_ACCOUNT_ADJUST_SYSTEM_ACCESS|
LSA_ACCOUNT_VIEW|SEC_STD_DELETE,
return WERR_INVALID_PARAM;
}
- acct_ctrl = p->server_info->info3->base.acct_flags;
+ acct_ctrl = p->session_info->info3->base.acct_flags;
switch (r->in.function_code) {
case NETLOGON_CONTROL_TC_VERIFY:
case NETLOGON_CONTROL_CHANGE_PASSWORD:
case NETLOGON_CONTROL_REDISCOVER:
if ((geteuid() != sec_initial_uid()) &&
- !nt_token_check_domain_rid(p->server_info->security_token, DOMAIN_RID_ADMINS) &&
- !nt_token_check_sid(&global_sid_Builtin_Administrators, p->server_info->security_token) &&
+ !nt_token_check_domain_rid(p->session_info->security_token, DOMAIN_RID_ADMINS) &&
+ !nt_token_check_sid(&global_sid_Builtin_Administrators, p->session_info->security_token) &&
!(acct_ctrl & (ACB_WSTRUST | ACB_SVRTRUST))) {
return WERR_ACCESS_DENIED;
}
status = rpcint_binding_handle(p->mem_ctx,
&ndr_table_lsarpc,
p->client_id,
- p->server_info,
+ p->session_info,
p->msg_ctx,
&h);
if (!NT_STATUS_IS_OK(status)) {
struct dom_sid *domain_sid;
uint32_t acct_ctrl;
union samr_UserInfo *info;
- struct auth_serversupplied_info *server_info;
+ struct auth_serversupplied_info *session_info;
#if 0
/*
goto out;
}
- status = make_server_info_system(mem_ctx, &server_info);
+ status = make_session_info_system(mem_ctx, &session_info);
if (!NT_STATUS_IS_OK(status)) {
goto out;
}
status = rpcint_binding_handle(mem_ctx,
&ndr_table_samr,
&client_id,
- server_info,
+ session_info,
msg_ctx,
&h);
if (!NT_STATUS_IS_OK(status)) {
*************************************************************************/
static NTSTATUS netr_set_machine_account_password(TALLOC_CTX *mem_ctx,
- struct auth_serversupplied_info *server_info,
+ struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *account_name,
struct samr_Password *nt_hash)
status = rpcint_binding_handle(mem_ctx,
&ndr_table_samr,
&client_id,
- server_info,
+ session_info,
msg_ctx,
&h);
if (!NT_STATUS_IS_OK(status)) {
in = data_blob_const(nt_hash->hash, 16);
out = data_blob_talloc_zero(mem_ctx, 16);
- sess_crypt_blob(&out, &in, &server_info->user_session_key, true);
+ sess_crypt_blob(&out, &in, &session_info->user_session_key, true);
memcpy(info18.nt_pwd.hash, out.data, out.length);
info18.nt_pwd_active = true;
DEBUG(100,("\n"));
status = netr_set_machine_account_password(p->mem_ctx,
- p->server_info,
+ p->session_info,
p->msg_ctx,
creds->account_name,
r->in.new_password);
mdfour(nt_hash.hash, plaintext.data, plaintext.length);
status = netr_set_machine_account_password(p->mem_ctx,
- p->server_info,
+ p->session_info,
p->msg_ctx,
creds->account_name,
&nt_hash);
result = svcctl_lookup_dispname(mem_ctx,
p->msg_ctx,
- p->server_info,
+ p->session_info,
ptr);
if (result == NULL) {
return WERR_GENERAL_FAILURE;
return True;
}
- if (p->server_info->guest) {
+ if (p->session_info->guest) {
return False;
}
}
struct pipes_struct *make_internal_rpc_pipe_p(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax,
struct client_address *client_id,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx)
{
struct pipes_struct *p;
return NULL;
}
- p->server_info = copy_serverinfo(p, server_info);
- if (p->server_info == NULL) {
+ p->session_info = copy_serverinfo(p, session_info);
+ if (p->session_info == NULL) {
DEBUG(0, ("open_rpc_pipe_p: copy_serverinfo failed\n"));
close_policy_by_pipe(p);
TALLOC_FREE(p);
const struct ndr_syntax_id *abstract_syntax,
const struct ndr_interface_table *ndr_table,
struct client_address *client_id,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct dcerpc_binding_handle **binding_handle)
{
hs->p = make_internal_rpc_pipe_p(hs,
abstract_syntax,
client_id,
- server_info,
+ session_info,
msg_ctx);
if (hs->p == NULL) {
TALLOC_FREE(h);
* status = rpcint_binding_handle(tmp_ctx,
* &ndr_table_winreg,
* p->client_id,
- * p->server_info,
+ * p->session_info,
* p->msg_ctx
* &winreg_binding);
* @endcode
NTSTATUS rpcint_binding_handle(TALLOC_CTX *mem_ctx,
const struct ndr_interface_table *ndr_table,
struct client_address *client_id,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct dcerpc_binding_handle **binding_handle)
{
return rpcint_binding_handle_ex(mem_ctx, NULL, ndr_table, client_id,
- server_info, msg_ctx, binding_handle);
+ session_info, msg_ctx, binding_handle);
}
/**
* status = rpc_pipe_open_internal(tmp_ctx,
* &ndr_table_winreg.syntax_id,
* rpc_winreg_dispatch,
- * p->server_info,
+ * p->session_info,
* &winreg_pipe);
* @endcode
*/
const char *pipe_name,
const struct tsocket_address *local_address,
const struct tsocket_address *remote_address,
- const struct auth_serversupplied_info *server_info)
+ const struct auth_serversupplied_info *session_info)
{
struct np_proxy_state *result;
char *socket_np_dir;
const char *socket_dir;
struct tevent_context *ev;
struct tevent_req *subreq;
- struct auth_session_info_transport *session_info;
+ struct auth_session_info_transport *session_info_t;
struct auth_user_info_dc *user_info_dc;
union netr_Validation val;
NTSTATUS status;
goto fail;
}
- session_info = talloc_zero(talloc_tos(), struct auth_session_info_transport);
- if (session_info == NULL) {
+ session_info_t = talloc_zero(talloc_tos(), struct auth_session_info_transport);
+ if (session_info_t == NULL) {
DEBUG(0, ("talloc failed\n"));
goto fail;
}
/* Send the named_pipe_auth server the user's full token */
- session_info->security_token = server_info->security_token;
- session_info->session_key = server_info->user_session_key;
+ session_info_t->security_token = session_info->security_token;
+ session_info_t->session_key = session_info->user_session_key;
- val.sam3 = server_info->info3;
+ val.sam3 = session_info->info3;
/* Convert into something we can build a struct
* auth_session_info_transport from. Most of the work here
goto fail;
}
- session_info->info = talloc_move(session_info, &user_info_dc->info);
+ session_info_t->info = talloc_move(session_info_t, &user_info_dc->info);
talloc_free(user_info_dc);
become_root();
NULL, /* client_name */
local_address, /* server_addr */
NULL, /* server_name */
- session_info);
+ session_info_t);
if (subreq == NULL) {
unbecome_root();
DEBUG(0, ("tstream_npa_connect_send to %s for pipe %s and "
"user %s\\%s failed\n",
- socket_np_dir, pipe_name, session_info->info->domain_name,
- session_info->info->account_name));
+ socket_np_dir, pipe_name, session_info_t->info->domain_name,
+ session_info_t->info->account_name));
goto fail;
}
ok = tevent_req_poll(subreq, ev);
if (!ok) {
DEBUG(0, ("tevent_req_poll to %s for pipe %s and user %s\\%s "
"failed for tstream_npa_connect: %s\n",
- socket_np_dir, pipe_name, session_info->info->domain_name,
- session_info->info->account_name,
+ socket_np_dir, pipe_name, session_info_t->info->domain_name,
+ session_info_t->info->account_name,
strerror(errno)));
goto fail;
if (ret != 0) {
DEBUG(0, ("tstream_npa_connect_recv to %s for pipe %s and "
"user %s\\%s failed: %s\n",
- socket_np_dir, pipe_name, session_info->info->domain_name,
- session_info->info->account_name,
+ socket_np_dir, pipe_name, session_info_t->info->domain_name,
+ session_info_t->info->account_name,
strerror(sys_errno)));
goto fail;
}
static NTSTATUS rpc_pipe_open_external(TALLOC_CTX *mem_ctx,
const char *pipe_name,
const struct ndr_syntax_id *abstract_syntax,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct rpc_pipe_client **_result)
{
struct tsocket_address *local, *remote;
}
proxy_state = make_external_rpc_pipe_p(mem_ctx, pipe_name,
- local, remote, server_info);
+ local, remote, session_info);
if (!proxy_state) {
return NT_STATUS_UNSUCCESSFUL;
}
* @param mem_ctx The memory context on which thje pipe will ultimately
* be allocated
* @param name The pipe name to connect to.
- * @param server_info Credentials to use for the connection.
+ * @param session_info Credentials to use for the connection.
* @param pipe [in|out] Checks if a pipe is connected, and connects it
* if not
*
NTSTATUS rpc_pipe_open_interface(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct client_address *client_id,
struct messaging_context *msg_ctx,
struct rpc_pipe_client **cli_pipe)
if (StrCaseCmp(server_type, "embedded") == 0) {
status = rpc_pipe_open_internal(tmp_ctx,
- syntax, server_info,
+ syntax, session_info,
client_id, msg_ctx,
&cli);
if (!NT_STATUS_IS_OK(status)) {
status = rpc_pipe_open_external(tmp_ctx,
pipe_name, syntax,
- server_info,
+ session_info,
&cli);
if (!NT_STATUS_IS_OK(status)) {
goto done;
struct pipes_struct *make_internal_rpc_pipe_p(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax,
struct client_address *client_id,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx);
struct np_proxy_state *make_external_rpc_pipe_p(TALLOC_CTX *mem_ctx,
const char *pipe_name,
const struct tsocket_address *local_address,
const struct tsocket_address *remote_address,
- const struct auth_serversupplied_info *server_info);
+ const struct auth_serversupplied_info *session_info);
NTSTATUS rpcint_binding_handle(TALLOC_CTX *mem_ctx,
const struct ndr_interface_table *ndr_table,
struct client_address *client_id,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct dcerpc_binding_handle **binding_handle);
NTSTATUS rpc_pipe_open_internal(TALLOC_CTX *mem_ctx,
struct rpc_pipe_client **presult);
NTSTATUS rpc_pipe_open_interface(TALLOC_CTX *mem_ctx,
const struct ndr_syntax_id *syntax,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct client_address *client_id,
struct messaging_context *msg_ctx,
struct rpc_pipe_client **cli_pipe);
p->endian = RPC_LITTLE_ENDIAN;
- /* Fake up an auth_user_info_dc for now, to make an info3, to make the server_info structure */
+ /* Fake up an auth_user_info_dc for now, to make an info3, to make the session_info structure */
auth_user_info_dc = talloc_zero(p, struct auth_user_info_dc);
if (!auth_user_info_dc) {
TALLOC_FREE(p);
status = make_server_info_info3(p,
info3->base.account_name.string,
info3->base.domain.string,
- &p->server_info, info3);
+ &p->session_info, info3);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(1, ("Failed to init server info\n"));
TALLOC_FREE(p);
* Some internal functions need a local token to determine access to
* resoutrces.
*/
- status = create_local_token(p->server_info);
+ status = create_local_token(p->session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(1, ("Failed to init local auth token\n"));
TALLOC_FREE(p);
return -1;
}
- /* Now override the server_info->security_token with the exact
+ /* Now override the session_info->security_token with the exact
* security_token we were given from the other side,
* regardless of what we just calculated */
- p->server_info->security_token = talloc_move(p->server_info, &session_info->security_token);
+ p->session_info->security_token = talloc_move(p->session_info, &session_info->security_token);
/* Also set the session key to the correct value */
- p->server_info->user_session_key = session_info->session_key;
- p->server_info->user_session_key.data = talloc_move(p->server_info, &session_info->session_key.data);
+ p->session_info->user_session_key = session_info->session_key;
+ p->session_info->user_session_key.data = talloc_move(p->session_info, &session_info->session_key.data);
p->client_id = talloc_zero(p, struct client_address);
if (!p->client_id) {
}
/*check if access can be granted as requested by client. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
make_samr_object_sd( p->mem_ctx, &psd, &sd_size, &dom_generic_mapping, NULL, 0 );
* Users with SeAddUser get the ability to manipulate groups
* and aliases.
*/
- if (security_token_has_privilege(p->server_info->security_token, SEC_PRIV_ADD_USERS)) {
+ if (security_token_has_privilege(p->session_info->security_token, SEC_PRIV_ADD_USERS)) {
extra_access |= (SAMR_DOMAIN_ACCESS_CREATE_GROUP |
SAMR_DOMAIN_ACCESS_ENUM_ACCOUNTS |
SAMR_DOMAIN_ACCESS_OPEN_ACCOUNT |
* SAMR_DOMAIN_ACCESS_CREATE_USER access.
*/
- status = access_check_object( psd, p->server_info->security_token,
+ status = access_check_object( psd, p->session_info->security_token,
SEC_PRIV_MACHINE_ACCOUNT, SEC_PRIV_ADD_USERS,
extra_access, des_access,
&acc_granted, "_samr_OpenDomain" );
return NT_STATUS_NO_SUCH_USER;
/* check if access can be granted as requested by client. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
make_samr_object_sd(p->mem_ctx, &psd, &sd_size, &usr_generic_mapping, &sid, SAMR_USR_RIGHTS_WRITE_PW);
* DOMAIN_RID_ADMINS.
*/
if (acb_info & (ACB_SVRTRUST|ACB_DOMTRUST)) {
- if (lp_enable_privileges() && nt_token_check_domain_rid(p->server_info->security_token,
+ if (lp_enable_privileges() && nt_token_check_domain_rid(p->session_info->security_token,
DOMAIN_RID_ADMINS)) {
des_access &= ~GENERIC_RIGHTS_USER_WRITE;
extra_access = GENERIC_RIGHTS_USER_WRITE;
TALLOC_FREE(sampass);
- nt_status = access_check_object(psd, p->server_info->security_token,
+ nt_status = access_check_object(psd, p->session_info->security_token,
needed_priv_1, needed_priv_2,
GENERIC_RIGHTS_USER_WRITE, des_access,
&acc_granted, "_samr_OpenUser");
ZERO_STRUCTP(r);
- if (p->server_info->system) {
+ if (p->session_info->system) {
goto query;
}
can_add_account = true;
} else if (acb_info & ACB_WSTRUST) {
needed_priv = SEC_PRIV_MACHINE_ACCOUNT;
- can_add_account = security_token_has_privilege(p->server_info->security_token, SEC_PRIV_MACHINE_ACCOUNT);
+ can_add_account = security_token_has_privilege(p->session_info->security_token, SEC_PRIV_MACHINE_ACCOUNT);
} else if (acb_info & ACB_NORMAL &&
(account[strlen(account)-1] != '$')) {
/* usrmgr.exe (and net rpc trustdom grant) creates a normal user
account for domain trusts and changes the ACB flags later */
needed_priv = SEC_PRIV_ADD_USERS;
- can_add_account = security_token_has_privilege(p->server_info->security_token, SEC_PRIV_ADD_USERS);
+ can_add_account = security_token_has_privilege(p->session_info->security_token, SEC_PRIV_ADD_USERS);
} else if (lp_enable_privileges()) {
/* implicit assumption of a BDC or domain trust account here
* (we already check the flags earlier) */
/* only Domain Admins can add a BDC or domain trust */
can_add_account = nt_token_check_domain_rid(
- p->server_info->security_token,
+ p->session_info->security_token,
DOMAIN_RID_ADMINS );
}
DEBUG(5, ("_samr_CreateUser2: %s can add this account : %s\n",
- uidtoname(p->server_info->utok.uid),
+ uidtoname(p->session_info->utok.uid),
can_add_account ? "True":"False" ));
if (!can_add_account) {
sid_compose(&sid, get_global_sam_sid(), *r->out.rid);
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
make_samr_object_sd(p->mem_ctx, &psd, &sd_size, &usr_generic_mapping,
* just assume we have all the rights we need ?
*/
- nt_status = access_check_object(psd, p->server_info->security_token,
+ nt_status = access_check_object(psd, p->session_info->security_token,
needed_priv, SEC_PRIV_INVALID,
GENERIC_RIGHTS_USER_WRITE, des_access,
&acc_granted, "_samr_CreateUser2");
was observed from a win98 client trying to enumerate users (when configured
user level access control on shares) --jerry */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
se_map_generic( &des_access, &sam_generic_mapping );
return NT_STATUS_ACCESS_DENIED;
}
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
make_samr_object_sd(p->mem_ctx, &psd, &sd_size, &sam_generic_mapping, NULL, 0);
se_map_generic(&des_access, &sam_generic_mapping);
- nt_status = access_check_object(psd, p->server_info->security_token,
+ nt_status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_INVALID, SEC_PRIV_INVALID,
0, des_access, &acc_granted, fn);
/*check if access can be granted as requested by client. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
make_samr_object_sd(p->mem_ctx, &psd, &sd_size, &ali_generic_mapping, NULL, 0);
se_map_generic(&des_access,&ali_generic_mapping);
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_ADD_USERS, SEC_PRIV_INVALID,
GENERIC_RIGHTS_ALIAS_ALL_ACCESS,
des_access, &acc_granted, "_samr_OpenAlias");
/* Used by AS/U JRA. */
status = set_user_info_18(&info->info18,
p->mem_ctx,
- &p->server_info->user_session_key,
+ &p->session_info->user_session_key,
pwd);
break;
case 21:
status = set_user_info_21(&info->info21,
p->mem_ctx,
- &p->server_info->user_session_key,
+ &p->session_info->user_session_key,
pwd);
break;
case 23:
- if (!p->server_info->user_session_key.length) {
+ if (!p->session_info->user_session_key.length) {
status = NT_STATUS_NO_USER_SESSION_KEY;
}
arcfour_crypt_blob(info->info23.password.data, 516,
- &p->server_info->user_session_key);
+ &p->session_info->user_session_key);
dump_data(100, info->info23.password.data, 516);
break;
case 24:
- if (!p->server_info->user_session_key.length) {
+ if (!p->session_info->user_session_key.length) {
status = NT_STATUS_NO_USER_SESSION_KEY;
}
arcfour_crypt_blob(info->info24.password.data,
516,
- &p->server_info->user_session_key);
+ &p->session_info->user_session_key);
dump_data(100, info->info24.password.data, 516);
break;
case 25:
- if (!p->server_info->user_session_key.length) {
+ if (!p->session_info->user_session_key.length) {
status = NT_STATUS_NO_USER_SESSION_KEY;
}
encode_or_decode_arc4_passwd_buffer(
info->info25.password.data,
- &p->server_info->user_session_key);
+ &p->session_info->user_session_key);
dump_data(100, info->info25.password.data, 532);
break;
case 26:
- if (!p->server_info->user_session_key.length) {
+ if (!p->session_info->user_session_key.length) {
status = NT_STATUS_NO_USER_SESSION_KEY;
}
encode_or_decode_arc4_passwd_buffer(
info->info26.password.data,
- &p->server_info->user_session_key);
+ &p->session_info->user_session_key);
dump_data(100, info->info26.password.data, 516);
}
/*check if access can be granted as requested by client. */
- map_max_allowed_access(p->server_info->security_token,
- &p->server_info->utok,
+ map_max_allowed_access(p->session_info->security_token,
+ &p->session_info->utok,
&des_access);
make_samr_object_sd(p->mem_ctx, &psd, &sd_size, &grp_generic_mapping, NULL, 0);
se_map_generic(&des_access,&grp_generic_mapping);
- status = access_check_object(psd, p->server_info->security_token,
+ status = access_check_object(psd, p->session_info->security_token,
SEC_PRIV_ADD_USERS, SEC_PRIV_INVALID, GENERIC_RIGHTS_GROUP_ALL_ACCESS,
des_access, &acc_granted, "_samr_OpenGroup");
done on the handle already */
result = winreg_delete_printer_key(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
Printer->sharename,
"");
return WERR_BADFID;
}
- result = delete_printer_hook(p->mem_ctx, p->server_info->security_token,
+ result = delete_printer_hook(p->mem_ctx, p->session_info->security_token,
Printer->sharename, p->msg_ctx);
if (!W_ERROR_IS_OK(result)) {
return result;
****************************************************************************/
static WERROR set_printer_hnd_name(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct printer_handle *Printer,
const char *handlename)
}
result = winreg_get_printer(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
sname,
&info2);
}
result = set_printer_hnd_name(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
new_printer, name);
if (!W_ERROR_IS_OK(result)) {
DATA_BLOB *data)
{
TALLOC_CTX *tmp_ctx;
- struct auth_serversupplied_info *server_info = NULL;
+ struct auth_serversupplied_info *session_info = NULL;
struct spoolss_PrinterInfo2 *pinfo2;
NTSTATUS status;
WERROR result;
tmp_ctx = talloc_new(NULL);
if (!tmp_ctx) return;
- status = make_server_info_system(tmp_ctx, &server_info);
+ status = make_session_info_system(tmp_ctx, &session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("do_drv_upgrade_printer: "
- "Could not create system server_info\n"));
+ "Could not create system session_info\n"));
goto done;
}
continue;
}
- result = winreg_get_printer(tmp_ctx, server_info, msg,
+ result = winreg_get_printer(tmp_ctx, session_info, msg,
lp_const_servicename(snum),
&pinfo2);
/* all we care about currently is the change_id */
result = winreg_printer_update_changeid(tmp_ctx,
- server_info,
+ session_info,
msg,
pinfo2->printername);
/* if the user is not root, doesn't have SE_PRINT_OPERATOR privilege,
and not a printer admin, then fail */
- if ((p->server_info->utok.uid != sec_initial_uid()) &&
- !security_token_has_privilege(p->server_info->security_token, SEC_PRIV_PRINT_OPERATOR) &&
- !nt_token_check_sid(&global_sid_Builtin_Print_Operators, p->server_info->security_token) &&
+ if ((p->session_info->utok.uid != sec_initial_uid()) &&
+ !security_token_has_privilege(p->session_info->security_token, SEC_PRIV_PRINT_OPERATOR) &&
+ !nt_token_check_sid(&global_sid_Builtin_Print_Operators, p->session_info->security_token) &&
!token_contains_name_in_list(
- uidtoname(p->server_info->utok.uid),
- p->server_info->info3->base.domain.string,
+ uidtoname(p->session_info->utok.uid),
+ p->session_info->info3->base.domain.string,
NULL,
- p->server_info->security_token,
+ p->session_info->security_token,
lp_printer_admin(snum))) {
close_printer_handle(p, r->out.handle);
ZERO_STRUCTP(r->out.handle);
return WERR_ACCESS_DENIED;
}
- if (!user_ok_token(uidtoname(p->server_info->utok.uid), NULL,
- p->server_info->security_token, snum) ||
- !print_access_check(p->server_info,
+ if (!user_ok_token(uidtoname(p->session_info->utok.uid), NULL,
+ p->session_info->security_token, snum) ||
+ !print_access_check(p->session_info,
p->msg_ctx,
snum,
r->in.access_mask)) {
? "PRINTER_ACCESS_ADMINISTER" : "PRINTER_ACCESS_USE" ));
winreg_create_printer(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum));
if (get_printer_snum(p, r->in.handle, &snum, NULL)) {
winreg_delete_printer_key(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum),
"");
/* if the user is not root, doesn't have SE_PRINT_OPERATOR privilege,
and not a printer admin, then fail */
- if ( (p->server_info->utok.uid != sec_initial_uid())
- && !security_token_has_privilege(p->server_info->security_token, SEC_PRIV_PRINT_OPERATOR)
+ if ( (p->session_info->utok.uid != sec_initial_uid())
+ && !security_token_has_privilege(p->session_info->security_token, SEC_PRIV_PRINT_OPERATOR)
&& !token_contains_name_in_list(
- uidtoname(p->server_info->utok.uid),
- p->server_info->info3->base.domain.string,
+ uidtoname(p->session_info->utok.uid),
+ p->session_info->info3->base.domain.string,
NULL,
- p->server_info->security_token,
+ p->session_info->security_token,
lp_printer_admin(-1)) )
{
return WERR_ACCESS_DENIED;
return WERR_INVALID_ENVIRONMENT;
status = winreg_get_driver(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.architecture, r->in.driver,
version, &info);
version = 3;
status = winreg_get_driver(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.architecture,
r->in.driver,
}
if (printer_driver_in_use(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info)) {
status = WERR_PRINTER_DRIVER_IN_USE;
if (version == 2) {
status = winreg_get_driver(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.architecture,
r->in.driver, 3, &info_win2k);
/* remove the Win2k driver first*/
status = winreg_del_driver(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info_win2k, 3);
talloc_free(info_win2k);
}
status = winreg_del_driver(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info, version);
/* if the user is not root, doesn't have SE_PRINT_OPERATOR privilege,
and not a printer admin, then fail */
- if ( (p->server_info->utok.uid != sec_initial_uid())
- && !security_token_has_privilege(p->server_info->security_token, SEC_PRIV_PRINT_OPERATOR)
+ if ( (p->session_info->utok.uid != sec_initial_uid())
+ && !security_token_has_privilege(p->session_info->security_token, SEC_PRIV_PRINT_OPERATOR)
&& !token_contains_name_in_list(
- uidtoname(p->server_info->utok.uid),
- p->server_info->info3->base.domain.string,
+ uidtoname(p->session_info->utok.uid),
+ p->session_info->info3->base.domain.string,
NULL,
- p->server_info->security_token, lp_printer_admin(-1)) )
+ p->session_info->security_token, lp_printer_admin(-1)) )
{
return WERR_ACCESS_DENIED;
}
version = r->in.version;
status = winreg_get_driver(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.architecture,
r->in.driver,
version = 3;
status = winreg_get_driver(info,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.architecture,
r->in.driver,
}
if (printer_driver_in_use(info,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info)) {
status = WERR_PRINTER_DRIVER_IN_USE;
if (delete_files &&
(r->in.delete_flags & DPD_DELETE_ALL_FILES) &&
printer_driver_files_in_use(info,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info)) {
/* no idea of the correct error here */
if ( (version == 2) && ((r->in.delete_flags & DPD_DELETE_SPECIFIC_VERSION) != DPD_DELETE_SPECIFIC_VERSION) ) {
status = winreg_get_driver(info,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.architecture,
r->in.driver, 3, &info_win2k);
if (delete_files &&
(r->in.delete_flags & DPD_DELETE_ALL_FILES) &&
printer_driver_files_in_use(info,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info_win2k)) {
/* no idea of the correct error here */
/* remove the Win2k driver first*/
status = winreg_del_driver(info,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info_win2k,
3);
* because the driver doesn not exist any more
*/
if (delete_files) {
- delete_driver_files(get_server_info_system(),
+ delete_driver_files(get_session_info_system(),
info_win2k);
}
}
}
status = winreg_del_driver(info,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info,
version);
* because the driver doesn not exist any more
*/
if (delete_files) {
- delete_driver_files(get_server_info_system(), info);
+ delete_driver_files(get_session_info_system(), info);
}
done:
continue; /* skip */
}
- /* Maybe we should use the SYSTEM server_info here... */
+ /* Maybe we should use the SYSTEM session_info here... */
result = winreg_get_printer(mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_servicename(snum),
&pinfo2);
get_printer_snum(p, hnd, &snum, NULL);
- /* Maybe we should use the SYSTEM server_info here... */
+ /* Maybe we should use the SYSTEM session_info here... */
result = winreg_get_printer(mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_servicename(snum), &pinfo2);
if (!W_ERROR_IS_OK(result)) {
********************************************************************/
static WERROR construct_printer_info0(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_PrinterInfo2 *info2,
const char *servername,
r->high_part_total_bytes = 0x0;
/* ChangeID in milliseconds*/
- winreg_printer_get_changeid(mem_ctx, server_info, msg_ctx,
+ winreg_printer_get_changeid(mem_ctx, session_info, msg_ctx,
info2->sharename, &r->change_id);
r->last_error = WERR_OK;
struct spoolss_PrinterInfo7 *r,
int snum)
{
- struct auth_serversupplied_info *server_info;
+ struct auth_serversupplied_info *session_info;
struct GUID guid;
NTSTATUS status;
- status = make_server_info_system(mem_ctx, &server_info);
+ status = make_session_info_system(mem_ctx, &session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("construct_printer_info7: "
- "Could not create system server_info\n"));
+ "Could not create system session_info\n"));
return WERR_NOMEM;
}
- if (is_printer_published(mem_ctx, server_info, msg_ctx,
+ if (is_printer_published(mem_ctx, session_info, msg_ctx,
servername,
lp_servicename(snum), &guid, NULL)) {
r->guid = talloc_strdup_upper(mem_ctx, GUID_string2(mem_ctx, &guid));
}
W_ERROR_HAVE_NO_MEMORY(r->guid);
- TALLOC_FREE(server_info);
+ TALLOC_FREE(session_info);
return WERR_OK;
}
********************************************************************/
static WERROR enum_all_printers_info_level(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername,
uint32_t level,
printer, snum));
result = winreg_create_printer(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer);
if (!W_ERROR_IS_OK(result)) {
goto out;
}
- result = winreg_get_printer(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_printer(mem_ctx, session_info, msg_ctx,
printer, &info2);
if (!W_ERROR_IS_OK(result)) {
goto out;
switch (level) {
case 0:
- result = construct_printer_info0(info, server_info,
+ result = construct_printer_info0(info, session_info,
msg_ctx, info2,
servername,
&info[count].info0, snum);
********************************************************************/
static WERROR enumprinters_level0(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
uint32_t flags,
const char *servername,
{
DEBUG(4,("enum_all_printers_info_0\n"));
- return enum_all_printers_info_level(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_level(mem_ctx, session_info, msg_ctx,
servername, 0, flags, info, count);
}
********************************************************************/
static WERROR enum_all_printers_info_1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername,
uint32_t flags,
{
DEBUG(4,("enum_all_printers_info_1\n"));
- return enum_all_printers_info_level(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_level(mem_ctx, session_info, msg_ctx,
servername, 1, flags, info, count);
}
*********************************************************************/
static WERROR enum_all_printers_info_1_local(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername,
union spoolss_PrinterInfo **info,
{
DEBUG(4,("enum_all_printers_info_1_local\n"));
- return enum_all_printers_info_1(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_1(mem_ctx, session_info, msg_ctx,
servername, PRINTER_ENUM_ICON8, info, count);
}
*********************************************************************/
static WERROR enum_all_printers_info_1_name(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername,
union spoolss_PrinterInfo **info,
return WERR_INVALID_NAME;
}
- return enum_all_printers_info_1(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_1(mem_ctx, session_info, msg_ctx,
servername, PRINTER_ENUM_ICON8, info, count);
}
*********************************************************************/
static WERROR enum_all_printers_info_1_network(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername,
union spoolss_PrinterInfo **info,
return WERR_CAN_NOT_COMPLETE;
}
- return enum_all_printers_info_1(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_1(mem_ctx, session_info, msg_ctx,
servername, PRINTER_ENUM_NAME, info, count);
}
********************************************************************/
static WERROR enum_all_printers_info_2(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername,
union spoolss_PrinterInfo **info,
{
DEBUG(4,("enum_all_printers_info_2\n"));
- return enum_all_printers_info_level(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_level(mem_ctx, session_info, msg_ctx,
servername, 2, 0, info, count);
}
********************************************************************/
static WERROR enumprinters_level1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
uint32_t flags,
const char *servername,
/* Not all the flags are equals */
if (flags & PRINTER_ENUM_LOCAL) {
- return enum_all_printers_info_1_local(mem_ctx, server_info,
+ return enum_all_printers_info_1_local(mem_ctx, session_info,
msg_ctx, servername, info, count);
}
if (flags & PRINTER_ENUM_NAME) {
- return enum_all_printers_info_1_name(mem_ctx, server_info,
+ return enum_all_printers_info_1_name(mem_ctx, session_info,
msg_ctx, servername, info,
count);
}
if (flags & PRINTER_ENUM_NETWORK) {
- return enum_all_printers_info_1_network(mem_ctx, server_info,
+ return enum_all_printers_info_1_network(mem_ctx, session_info,
msg_ctx, servername, info,
count);
}
********************************************************************/
static WERROR enumprinters_level2(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
uint32_t flags,
const char *servername,
{
if (flags & PRINTER_ENUM_LOCAL) {
- return enum_all_printers_info_2(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_2(mem_ctx, session_info, msg_ctx,
servername,
info, count);
}
return WERR_INVALID_NAME;
}
- return enum_all_printers_info_2(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_2(mem_ctx, session_info, msg_ctx,
servername,
info, count);
}
********************************************************************/
static WERROR enumprinters_level4(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
uint32_t flags,
const char *servername,
{
DEBUG(4,("enum_all_printers_info_4\n"));
- return enum_all_printers_info_level(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_level(mem_ctx, session_info, msg_ctx,
servername, 4, flags, info, count);
}
********************************************************************/
static WERROR enumprinters_level5(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
uint32_t flags,
const char *servername,
{
DEBUG(4,("enum_all_printers_info_5\n"));
- return enum_all_printers_info_level(mem_ctx, server_info, msg_ctx,
+ return enum_all_printers_info_level(mem_ctx, session_info, msg_ctx,
servername, 5, flags, info, count);
}
WERROR _spoolss_EnumPrinters(struct pipes_struct *p,
struct spoolss_EnumPrinters *r)
{
- const struct auth_serversupplied_info *server_info = get_server_info_system();
+ const struct auth_serversupplied_info *session_info = get_session_info_system();
WERROR result;
/* that's an [in out] buffer */
switch (r->in.level) {
case 0:
- result = enumprinters_level0(p->mem_ctx, server_info,
+ result = enumprinters_level0(p->mem_ctx, session_info,
p->msg_ctx, r->in.flags,
r->in.server,
r->out.info, r->out.count);
break;
case 1:
- result = enumprinters_level1(p->mem_ctx, server_info,
+ result = enumprinters_level1(p->mem_ctx, session_info,
p->msg_ctx, r->in.flags,
r->in.server,
r->out.info, r->out.count);
break;
case 2:
- result = enumprinters_level2(p->mem_ctx, server_info,
+ result = enumprinters_level2(p->mem_ctx, session_info,
p->msg_ctx, r->in.flags,
r->in.server,
r->out.info, r->out.count);
break;
case 4:
- result = enumprinters_level4(p->mem_ctx, server_info,
+ result = enumprinters_level4(p->mem_ctx, session_info,
p->msg_ctx, r->in.flags,
r->in.server,
r->out.info, r->out.count);
break;
case 5:
- result = enumprinters_level5(p->mem_ctx, server_info,
+ result = enumprinters_level5(p->mem_ctx, session_info,
p->msg_ctx, r->in.flags,
r->in.server,
r->out.info, r->out.count);
}
result = winreg_get_printer(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum),
&info2);
switch (r->in.level) {
case 0:
result = construct_printer_info0(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info2,
Printer->servername,
********************************************************************/
static WERROR construct_printer_driver_info_level(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
uint32_t level,
union spoolss_DriverInfo *r,
}
result = winreg_get_printer(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
lp_const_servicename(snum),
&pinfo2);
return WERR_INVALID_PRINTER_NAME;
}
- result = winreg_get_driver(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_driver(mem_ctx, session_info, msg_ctx,
architecture,
pinfo2->drivername, version, &driver);
/* Yes - try again with a WinNT driver. */
version = 2;
- result = winreg_get_driver(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_driver(mem_ctx, session_info, msg_ctx,
architecture,
pinfo2->drivername,
version, &driver);
}
result = construct_printer_driver_info_level(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.level, r->out.info,
snum, printer->servername,
return WERR_BADFID;
}
- werr = print_job_start(p->server_info,
+ werr = print_job_start(p->session_info,
p->msg_ctx,
p->client_id->name,
snum,
static WERROR control_printer(struct policy_handle *handle, uint32_t command,
struct pipes_struct *p)
{
- const struct auth_serversupplied_info *server_info = p->server_info;
+ const struct auth_serversupplied_info *session_info = p->session_info;
int snum;
WERROR errcode = WERR_BADFUNC;
struct printer_handle *Printer = find_printer_index_by_hnd(p, handle);
switch (command) {
case SPOOLSS_PRINTER_CONTROL_PAUSE:
- errcode = print_queue_pause(server_info, p->msg_ctx, snum);
+ errcode = print_queue_pause(session_info, p->msg_ctx, snum);
break;
case SPOOLSS_PRINTER_CONTROL_RESUME:
case SPOOLSS_PRINTER_CONTROL_UNPAUSE:
- errcode = print_queue_resume(server_info, p->msg_ctx, snum);
+ errcode = print_queue_resume(session_info, p->msg_ctx, snum);
break;
case SPOOLSS_PRINTER_CONTROL_PURGE:
- errcode = print_queue_purge(server_info, p->msg_ctx, snum);
+ errcode = print_queue_purge(session_info, p->msg_ctx, snum);
break;
default:
return WERR_UNKNOWN_LEVEL;
return WERR_SPL_NO_STARTDOC;
}
- errcode = print_job_delete(p->server_info,
+ errcode = print_job_delete(p->session_info,
p->msg_ctx,
snum,
Printer->jobid);
/* NT seems to like setting the security descriptor even though
nothing may have actually changed. */
result = winreg_get_printer_secdesc(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer,
&old_secdesc);
}
result = winreg_set_printer_secdesc(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer,
new_secdesc);
}
static WERROR update_dsspooler(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
int snum,
struct spoolss_SetPrinterInfo2 *printer,
if (force_update || !strequal(printer->drivername, old_printer->drivername)) {
push_reg_sz(mem_ctx, &buffer, printer->drivername);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
if (force_update || !strequal(printer->comment, old_printer->comment)) {
push_reg_sz(mem_ctx, &buffer, printer->comment);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
if (force_update || !strequal(printer->sharename, old_printer->sharename)) {
push_reg_sz(mem_ctx, &buffer, printer->sharename);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
push_reg_sz(mem_ctx, &buffer, p);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
if (force_update || !strequal(printer->portname, old_printer->portname)) {
push_reg_sz(mem_ctx, &buffer, printer->portname);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
if (force_update || !strequal(printer->location, old_printer->location)) {
push_reg_sz(mem_ctx, &buffer, printer->location);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
if (force_update || !strequal(printer->sepfile, old_printer->sepfile)) {
push_reg_sz(mem_ctx, &buffer, printer->sepfile);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
buffer = data_blob_talloc(mem_ctx, NULL, 4);
SIVAL(buffer.data, 0, printer->starttime);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
buffer = data_blob_talloc(mem_ctx, NULL, 4);
SIVAL(buffer.data, 0, printer->untiltime);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
buffer = data_blob_talloc(mem_ctx, NULL, 4);
SIVAL(buffer.data, 0, printer->priority);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
SIVAL(buffer.data, 0, (printer->attributes &
PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS));
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
}
push_reg_sz(mem_ctx, &buffer, spooling);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
push_reg_sz(mem_ctx, &buffer, global_myname());
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
push_reg_sz(mem_ctx, &buffer, longname);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
global_myname(), printer->sharename);
push_reg_sz(mem_ctx, &buffer, uncname);
winreg_set_printer_dataex(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
printer->sharename,
SPOOL_DSSPOOLER_KEY,
}
result = winreg_get_printer(tmp_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum),
&old_printer);
!strequal(printer->location, old_printer->location)) )
{
/* add_printer_hook() will call reload_services() */
- if (!add_printer_hook(tmp_ctx, p->server_info->security_token,
+ if (!add_printer_hook(tmp_ctx, p->session_info->security_token,
printer, p->client_id->addr,
p->msg_ctx)) {
result = WERR_ACCESS_DENIED;
}
update_dsspooler(tmp_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
snum,
printer,
printer_mask &= ~SPOOLSS_PRINTER_INFO_DEVMODE;
}
result = winreg_update_printer(tmp_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer->sharename,
printer_mask,
return WERR_BADFID;
result = winreg_get_printer(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_servicename(snum),
&pinfo2);
}
nt_printer_publish(pinfo2,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
pinfo2,
info7->action);
}
return winreg_update_printer(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum),
info2_mask,
}
result = winreg_get_printer(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum),
&pinfo2);
WERROR _spoolss_SetJob(struct pipes_struct *p,
struct spoolss_SetJob *r)
{
- const struct auth_serversupplied_info *server_info = p->server_info;
+ const struct auth_serversupplied_info *session_info = p->session_info;
int snum;
WERROR errcode = WERR_BADFUNC;
switch (r->in.command) {
case SPOOLSS_JOB_CONTROL_CANCEL:
case SPOOLSS_JOB_CONTROL_DELETE:
- errcode = print_job_delete(server_info, p->msg_ctx,
+ errcode = print_job_delete(session_info, p->msg_ctx,
snum, r->in.job_id);
if (W_ERROR_EQUAL(errcode, WERR_PRINTER_HAS_JOBS_QUEUED)) {
errcode = WERR_OK;
}
break;
case SPOOLSS_JOB_CONTROL_PAUSE:
- if (print_job_pause(server_info, p->msg_ctx,
+ if (print_job_pause(session_info, p->msg_ctx,
snum, r->in.job_id, &errcode)) {
errcode = WERR_OK;
}
break;
case SPOOLSS_JOB_CONTROL_RESTART:
case SPOOLSS_JOB_CONTROL_RESUME:
- if (print_job_resume(server_info, p->msg_ctx,
+ if (print_job_resume(session_info, p->msg_ctx,
snum, r->in.job_id, &errcode)) {
errcode = WERR_OK;
}
****************************************************************************/
static WERROR enumprinterdrivers_level_by_architecture(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername,
const char *architecture,
*info_p = NULL;
for (version=0; version<DRIVER_MAX_VERSION; version++) {
- result = winreg_get_driver_list(mem_ctx, server_info, msg_ctx,
+ result = winreg_get_driver_list(mem_ctx, session_info, msg_ctx,
architecture, version,
&num_drivers, &drivers);
if (!W_ERROR_IS_OK(result)) {
for (i = 0; i < num_drivers; i++) {
DEBUG(5, ("\tdriver: [%s]\n", drivers[i]));
- result = winreg_get_driver(mem_ctx, server_info,
+ result = winreg_get_driver(mem_ctx, session_info,
msg_ctx,
architecture, drivers[i],
version, &driver);
****************************************************************************/
static WERROR enumprinterdrivers_level(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *servername,
const char *architecture,
uint32_t count = 0;
result = enumprinterdrivers_level_by_architecture(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
servername,
archi_table[a].long_archi,
}
return enumprinterdrivers_level_by_architecture(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
servername,
architecture,
}
result = enumprinterdrivers_level(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
cservername,
r->in.environment,
switch (r->in.level) {
case 1:
result = winreg_printer_enumforms1(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->out.count,
r->out.info);
switch (r->in.level) {
case 1:
result = winreg_printer_getform1(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.form_name,
&r->out.info->info1);
trying to add a printer like this --jerry */
if (*lp_addprinter_cmd() ) {
- if ( !add_printer_hook(p->mem_ctx, p->server_info->security_token,
+ if ( !add_printer_hook(p->mem_ctx, p->session_info->security_token,
info2, p->client_id->addr,
p->msg_ctx) ) {
return WERR_ACCESS_DENIED;
}
/* you must be a printer admin to add a new printer */
- if (!print_access_check(p->server_info,
+ if (!print_access_check(p->session_info,
p->msg_ctx,
snum,
PRINTER_ACCESS_ADMINISTER)) {
}
update_dsspooler(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
0,
info2,
NULL);
err = winreg_update_printer(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
info2->sharename,
info2_mask,
}
err = winreg_add_driver(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
r->in.info_ctr,
&driver_name,
/* if the user is not root, doesn't have SE_PRINT_OPERATOR privilege,
and not a printer admin, then fail */
- if ((p->server_info->utok.uid != sec_initial_uid()) &&
- !security_token_has_privilege(p->server_info->security_token, SEC_PRIV_PRINT_OPERATOR) &&
- !token_contains_name_in_list(uidtoname(p->server_info->utok.uid),
- p->server_info->info3->base.domain.string,
+ if ((p->session_info->utok.uid != sec_initial_uid()) &&
+ !security_token_has_privilege(p->session_info->security_token, SEC_PRIV_PRINT_OPERATOR) &&
+ !token_contains_name_in_list(uidtoname(p->session_info->utok.uid),
+ p->session_info->info3->base.domain.string,
NULL,
- p->server_info->security_token,
+ p->session_info->security_token,
lp_printer_admin(snum))) {
DEBUG(2,("_spoolss_Addform: denied by insufficient permissions.\n"));
return WERR_ACCESS_DENIED;
}
status = winreg_printer_addform1(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
form);
if (!W_ERROR_IS_OK(status)) {
}
status = winreg_printer_update_changeid(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum));
if (!W_ERROR_IS_OK(status)) {
return WERR_BADFID;
}
- if ((p->server_info->utok.uid != sec_initial_uid()) &&
- !security_token_has_privilege(p->server_info->security_token, SEC_PRIV_PRINT_OPERATOR) &&
- !token_contains_name_in_list(uidtoname(p->server_info->utok.uid),
- p->server_info->info3->base.domain.string,
+ if ((p->session_info->utok.uid != sec_initial_uid()) &&
+ !security_token_has_privilege(p->session_info->security_token, SEC_PRIV_PRINT_OPERATOR) &&
+ !token_contains_name_in_list(uidtoname(p->session_info->utok.uid),
+ p->session_info->info3->base.domain.string,
NULL,
- p->server_info->security_token,
+ p->session_info->security_token,
lp_printer_admin(snum))) {
DEBUG(2,("_spoolss_DeleteForm: denied by insufficient permissions.\n"));
return WERR_ACCESS_DENIED;
}
status = winreg_printer_deleteform1(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
form_name);
if (!W_ERROR_IS_OK(status)) {
}
status = winreg_printer_update_changeid(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum));
if (!W_ERROR_IS_OK(status)) {
/* if the user is not root, doesn't have SE_PRINT_OPERATOR privilege,
and not a printer admin, then fail */
- if ((p->server_info->utok.uid != sec_initial_uid()) &&
- !security_token_has_privilege(p->server_info->security_token, SEC_PRIV_PRINT_OPERATOR) &&
- !token_contains_name_in_list(uidtoname(p->server_info->utok.uid),
- p->server_info->info3->base.domain.string,
+ if ((p->session_info->utok.uid != sec_initial_uid()) &&
+ !security_token_has_privilege(p->session_info->security_token, SEC_PRIV_PRINT_OPERATOR) &&
+ !token_contains_name_in_list(uidtoname(p->session_info->utok.uid),
+ p->session_info->info3->base.domain.string,
NULL,
- p->server_info->security_token,
+ p->session_info->security_token,
lp_printer_admin(snum))) {
DEBUG(2,("_spoolss_Setform: denied by insufficient permissions.\n"));
return WERR_ACCESS_DENIED;
}
status = winreg_printer_setform1(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
form_name,
form);
}
status = winreg_printer_update_changeid(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum));
if (!W_ERROR_IS_OK(status)) {
}
result = winreg_get_printer(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum),
&pinfo2);
uint32_t changeid = 0;
result = winreg_printer_get_changeid(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer,
&changeid);
}
result = winreg_get_printer_dataex(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer,
r->in.key_name,
}
result = winreg_get_printer(Printer,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_servicename(snum),
&pinfo2);
/* save the registry data */
result = winreg_set_printer_dataex(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
pinfo2->sharename,
r->in.key_name,
* this is right. --jerry
*/
winreg_set_printer_dataex(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
pinfo2->sharename,
str,
}
result = winreg_printer_update_changeid(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum));
printer = lp_const_servicename(snum);
status = winreg_delete_printer_dataex(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer,
r->in.key_name,
r->in.value_name);
if (W_ERROR_IS_OK(status)) {
status = winreg_printer_update_changeid(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer);
}
}
result = winreg_enum_printer_key(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum),
r->in.key_name,
/* delete the key and all subkeys */
status = winreg_delete_printer_key(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer,
r->in.key_name);
if (W_ERROR_IS_OK(status)) {
status = winreg_printer_update_changeid(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
printer);
}
/* now look for a match on the key name */
result = winreg_enum_printer_dataex(p->mem_ctx,
- get_server_info_system(),
+ get_session_info_system(),
p->msg_ctx,
lp_const_servicename(snum),
r->in.key_name,
switch ( Printer->printer_type ) {
case SPLHND_PORTMON_TCP:
werror = process_xcvtcp_command(p->mem_ctx,
- p->server_info->security_token,
+ p->session_info->security_token,
r->in.function_name,
&r->in.in_data, &out_data,
r->out.needed);
break;
case SPLHND_PORTMON_LOCAL:
werror = process_xcvlocal_command(p->mem_ctx,
- p->server_info->security_token,
+ p->session_info->security_token,
r->in.function_name,
&r->in.in_data, &out_data,
r->out.needed);
*
* @param[in] mem_ctx The memory context to use.
*
- * @param[in] server_info The supplied server info.
+ * @param[in] session_info The supplied server info.
*
* @param[out] binding_handle A pointer for the winreg dcerpc binding handle.
*
* code if something gone wrong.
*/
static WERROR winreg_printer_openkey(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct dcerpc_binding_handle **winreg_binding_handle,
const char *path,
status = rpcint_binding_handle(mem_ctx,
&ndr_table_winreg,
&client_id,
- server_info,
+ session_info,
msg_ctx,
&binding_handle);
if (!NT_STATUS_IS_OK(status)) {
}
static WERROR winreg_printer_opendriver(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *drivername,
const char *architecture,
}
result = winreg_printer_openkey(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
winreg_binding_handle,
key_name,
********************************************************************/
WERROR winreg_create_printer(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *sharename)
{
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
/* Create the main key */
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
*/
result = winreg_update_printer(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
sharename,
info2_mask,
}
WERROR winreg_update_printer(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *sharename,
uint32_t info2_mask,
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
}
}
result = winreg_set_printer_secdesc(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
sharename,
secdesc);
}
WERROR winreg_get_printer(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
struct spoolss_PrinterInfo2 **pinfo2)
}
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
}
result = winreg_get_printer_secdesc(info2,
- server_info,
+ session_info,
msg_ctx,
printer,
&info2->secdesc);
}
WERROR winreg_get_printer_secdesc(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *sharename,
struct spoolss_security_descriptor **psecdesc)
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
create_default:
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
}
WERROR winreg_set_printer_secdesc(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *sharename,
const struct spoolss_security_descriptor *secdesc)
size_t size;
result = winreg_get_printer_secdesc(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
sharename,
&old_secdesc);
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
/* Set printer data over the winreg pipe. */
WERROR winreg_set_printer_dataex(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
DEBUG(8, ("winreg_set_printer_dataex: Open printer key %s, value %s, access_mask: 0x%05x for [%s]\n",
key, value, access_mask, printer));
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
/* Get printer data over a winreg pipe. */
WERROR winreg_get_printer_dataex(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
/* Enumerate on the values of a given key and provide the data. */
WERROR winreg_enum_printer_dataex(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
}
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
/* Delete printer data over a winreg pipe. */
WERROR winreg_delete_printer_dataex(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
/* Enumerate on the subkeys of a given key and provide the data. */
WERROR winreg_enum_printer_key(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
/* Delete a key with subkeys of a given printer. */
WERROR winreg_delete_printer_key(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key)
}
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
}
WERROR winreg_printer_update_changeid(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer)
{
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
}
WERROR winreg_printer_get_changeid(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
uint32_t *pchangeid)
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
path,
*/
WERROR winreg_printer_addform1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_AddFormInfo1 *form)
{
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
TOP_LEVEL_CONTROL_FORMS_KEY,
goto done;
}
- result = winreg_printer_enumforms1(tmp_ctx, server_info, msg_ctx,
+ result = winreg_printer_enumforms1(tmp_ctx, session_info, msg_ctx,
&num_info, &info);
if (!W_ERROR_IS_OK(result)) {
DEBUG(0, ("winreg_printer_addform: Could not enum keys %s: %s\n",
}
WERROR winreg_printer_enumforms1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
uint32_t *pnum_info,
union spoolss_FormInfo **pinfo)
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
TOP_LEVEL_CONTROL_FORMS_KEY,
}
WERROR winreg_printer_deleteform1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *form_name)
{
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
TOP_LEVEL_CONTROL_FORMS_KEY,
}
WERROR winreg_printer_setform1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *form_name,
struct spoolss_AddFormInfo1 *form)
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
TOP_LEVEL_CONTROL_FORMS_KEY,
/* If form_name != form->form_name then we renamed the form */
if (strequal(form_name, form->form_name)) {
- result = winreg_printer_deleteform1(tmp_ctx, server_info,
+ result = winreg_printer_deleteform1(tmp_ctx, session_info,
msg_ctx, form_name);
if (!W_ERROR_IS_OK(result)) {
DEBUG(0, ("winreg_printer_setform1: Could not open key %s: %s\n",
}
WERROR winreg_printer_getform1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *form_name,
struct spoolss_FormInfo1 *r)
ZERO_STRUCT(key_hnd);
result = winreg_printer_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&winreg_handle,
TOP_LEVEL_CONTROL_FORMS_KEY,
}
WERROR winreg_add_driver(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_AddDriverInfoCtr *r,
const char **driver_name,
}
result = winreg_printer_opendriver(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
info8.driver_name,
info8.architecture,
}
WERROR winreg_get_driver(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *architecture,
const char *driver_name,
if (driver_version == DRIVER_ANY_VERSION) {
/* look for Win2k first and then for NT4 */
result = winreg_printer_opendriver(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
driver_name,
architecture,
&key_hnd);
if (!W_ERROR_IS_OK(result)) {
result = winreg_printer_opendriver(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
driver_name,
architecture,
} else {
/* ok normal case */
result = winreg_printer_opendriver(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
driver_name,
architecture,
}
WERROR winreg_del_driver(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_DriverInfo8 *info8,
uint32_t version)
/* test that the key exists */
result = winreg_printer_opendriver(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
info8->driver_name,
info8->architecture,
}
WERROR winreg_get_driver_list(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *architecture,
uint32_t version,
/* use NULL for the driver name so we open the key that is
* parent of all drivers for this architecture and version */
result = winreg_printer_opendriver(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
NULL,
architecture,
SPOOLSS_PRINTER_INFO_UNTILTIME
WERROR winreg_create_printer(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *sharename);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] sharename The share name.
*
* something went wrong.
*/
WERROR winreg_update_printer(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *sharename,
uint32_t info2_mask,
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The name of the printer to get.
*
* something went wrong.
*/
WERROR winreg_get_printer(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
struct spoolss_PrinterInfo2 **pinfo2);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] sharename The share name.
*
* something went wrong.
*/
WERROR winreg_get_printer_secdesc(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *sharename,
struct spoolss_security_descriptor **psecdesc);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] sharename The share name.
*
* something went wrong.
*/
WERROR winreg_set_printer_secdesc(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *sharename,
const struct spoolss_security_descriptor *secdesc);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The printer name.
*
* something went wrong.
*/
WERROR winreg_set_printer_dataex(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The printer name.
*
* something went wrong.
*/
WERROR winreg_get_printer_dataex(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The printer name.
*
* code if something gone wrong.
*/
WERROR winreg_enum_printer_dataex(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The printer name.
*
* something went wrong.
*/
WERROR winreg_delete_printer_dataex(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The printer name.
*
* code if something gone wrong.
*/
WERROR winreg_enum_printer_key(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key,
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The printer name.
*
* something went wrong.
*/
WERROR winreg_delete_printer_key(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
const char *key);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The printer name.
*
* something went wrong.
*/
WERROR winreg_printer_update_changeid(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] printer The printer name.
*
* something went wrong.
*/
WERROR winreg_printer_get_changeid(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *printer,
uint32_t *pchangeid);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] form The form to add.
*
* A corresponding DOS error is something went wrong.
*/
WERROR winreg_printer_addform1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_AddFormInfo1 *form);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[out] pnum_info A pointer to store the FormInfo count.
*
* something went wrong.
*/
WERROR winreg_printer_enumforms1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
uint32_t *pnum_info,
union spoolss_FormInfo **pinfo);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] form_name The name of the form to delete.
*
* A corresponding DOS error is something went wrong.
*/
WERROR winreg_printer_deleteform1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *form_name);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] form_name The name of the form to set or rename.
*
* A corresponding DOS error is something went wrong.
*/
WERROR winreg_printer_setform1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *form_name,
struct spoolss_AddFormInfo1 *form);
*
* @param[in] mem_ctx The talloc memory context to use.
*
- * @param[in] server_info The server supplied session info.
+ * @param[in] session_info The server supplied session info.
*
* @param[in] form_name The name of the form to query.
*
* something went wrong.
*/
WERROR winreg_printer_getform1(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *form_name,
struct spoolss_FormInfo1 *form);
*
* @param[in] mem_ctx A talloc memory context.
*
- * @param[in] server_info Auth info to open the pipe.
+ * @param[in] session_info Auth info to open the pipe.
*
* @param[in] r The structure containing the new driver data.
*
* something went wrong.
*/
WERROR winreg_add_driver(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_AddDriverInfoCtr *r,
const char **driver_name,
*
* @param[in] mem_ctx A talloc memory context.
*
- * @param[in] server_info Auth info to open the pipe.
+ * @param[in] session_info Auth info to open the pipe.
*
* @param[in] architecture The architecture type.
*
*/
WERROR winreg_get_driver(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *architecture,
const char *driver_name,
*
* @param[in] mem_ctx A talloc memory context.
*
- * @param[in] server_info Auth info to open the pipe.
+ * @param[in] session_info Auth info to open the pipe.
*
* @param[out] info8 The structure that holds the full driver information.
*
*/
WERROR winreg_del_driver(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct spoolss_DriverInfo8 *info8,
uint32_t version);
*
* @param[in] mem_ctx A talloc memory context.
*
- * @param[in] server_info Auth info to open the pipe.
+ * @param[in] session_info Auth info to open the pipe.
*
* @param[in] architecture The architecture type.
*
*/
WERROR winreg_get_driver_list(TALLOC_CTX *mem_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
const char *architecture,
uint32_t version,
return false;
}
- ret = server_info_set_session_key(p->server_info, session_key);
+ ret = session_info_set_session_key(p->session_info, session_key);
data_blob_free(&session_key);
if (!ret) {
- DEBUG(0, ("server_info_set_session_key failed\n"));
+ DEBUG(0, ("session_info_set_session_key failed\n"));
return false;
}
enum dcerpc_AuthLevel auth_level,
struct client_address *client_id,
struct ndr_syntax_id *syntax,
- struct auth_serversupplied_info **server_info)
+ struct auth_serversupplied_info **session_info)
{
DATA_BLOB session_key;
NTSTATUS status;
return false;
}
- TALLOC_FREE(*server_info);
+ TALLOC_FREE(*session_info);
status = ntlmssp_server_get_user_info(ntlmssp_ctx,
- mem_ctx, server_info);
+ mem_ctx, session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, (__location__ ": failed to obtain the server info "
"for authenticated user: %s\n", nt_errstr(status)));
return false;
}
- if ((*server_info)->security_token == NULL) {
+ if ((*session_info)->security_token == NULL) {
DEBUG(1, ("Auth module failed to provide nt_user_token\n"));
return false;
}
return false;
}
- ret = server_info_set_session_key((*server_info), session_key);
+ ret = session_info_set_session_key((*session_info), session_key);
data_blob_free(&session_key);
if (!ret) {
DEBUG(0, ("Failed to set session key!\n"));
static NTSTATUS pipe_gssapi_verify_final(TALLOC_CTX *mem_ctx,
struct gse_context *gse_ctx,
struct client_address *client_id,
- struct auth_serversupplied_info **server_info)
+ struct auth_serversupplied_info **session_info)
{
DATA_BLOB session_key;
NTSTATUS status;
}
status = gssapi_server_get_user_info(gse_ctx, mem_ctx,
- client_id, server_info);
+ client_id, session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, (__location__ ": failed to obtain the server info "
"for authenticated user: %s\n", nt_errstr(status)));
return status;
}
- if ((*server_info)->security_token == NULL) {
- status = create_local_token(*server_info);
+ if ((*session_info)->security_token == NULL) {
+ status = create_local_token(*session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(1, ("Failed to create local user token (%s)\n",
nt_errstr(status)));
return NT_STATUS_ACCESS_DENIED;
}
- bret = server_info_set_session_key((*server_info), session_key);
+ bret = session_info_set_session_key((*session_info), session_key);
data_blob_free(&session_key);
if (!bret) {
return NT_STATUS_ACCESS_DENIED;
if (!pipe_ntlmssp_verify_final(p, ntlmssp_ctx,
p->auth.auth_level,
p->client_id, &p->syntax,
- &p->server_info)) {
+ &p->session_info)) {
return NT_STATUS_ACCESS_DENIED;
}
break;
struct gse_context);
status = pipe_gssapi_verify_final(p, gse_ctx,
p->client_id,
- &p->server_info);
+ &p->session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(1, ("gssapi bind failed with: %s",
nt_errstr(status)));
struct gse_context);
status = pipe_gssapi_verify_final(p, gse_ctx,
p->client_id,
- &p->server_info);
+ &p->session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(1, ("gssapi bind failed with: %s",
nt_errstr(status)));
p->auth.auth_level,
p->client_id,
&p->syntax,
- &p->server_info)) {
+ &p->session_info)) {
return NT_STATUS_ACCESS_DENIED;
}
break;
const struct tsocket_address *local_address,
const struct tsocket_address *remote_address,
struct client_address *client_id,
- struct auth_serversupplied_info *server_info,
+ struct auth_serversupplied_info *session_info,
struct messaging_context *msg_ctx,
struct fake_file_handle **phandle)
{
p = make_external_rpc_pipe_p(handle, name,
local_address,
remote_address,
- server_info);
+ session_info);
handle->type = FAKE_FILE_TYPE_NAMED_PIPE_PROXY;
handle->private_data = p;
}
p = make_internal_rpc_pipe_p(handle, &syntax, client_id,
- server_info, msg_ctx);
+ session_info, msg_ctx);
handle->type = FAKE_FILE_TYPE_NAMED_PIPE;
handle->private_data = p;
remark = talloc_sub_advanced(
p->mem_ctx, lp_servicename(snum),
get_current_username(), lp_pathname(snum),
- p->server_info->utok.uid, get_current_username(),
+ p->session_info->utok.uid, get_current_username(),
"", remark);
}
remark = talloc_sub_advanced(
p->mem_ctx, lp_servicename(snum),
get_current_username(), lp_pathname(snum),
- p->server_info->utok.uid, get_current_username(),
+ p->session_info->utok.uid, get_current_username(),
"", remark);
}
path = talloc_asprintf(p->mem_ctx,
remark = talloc_sub_advanced(
p->mem_ctx, lp_servicename(snum),
get_current_username(), lp_pathname(snum),
- p->server_info->utok.uid, get_current_username(),
+ p->session_info->utok.uid, get_current_username(),
"", remark);
}
remark = talloc_sub_advanced(
p->mem_ctx, lp_servicename(snum),
get_current_username(), lp_pathname(snum),
- p->server_info->utok.uid, get_current_username(),
+ p->session_info->utok.uid, get_current_username(),
"", remark);
}
path = talloc_asprintf(ctx, "C:%s", lp_pathname(snum));
remark = talloc_sub_advanced(
p->mem_ctx, lp_servicename(snum),
get_current_username(), lp_pathname(snum),
- p->server_info->utok.uid, get_current_username(),
+ p->session_info->utok.uid, get_current_username(),
"", remark);
}
if (!lp_access_based_share_enum(snum))
return true;
- return share_access_check(p->server_info->security_token, lp_servicename(snum),
+ return share_access_check(p->session_info->security_token, lp_servicename(snum),
FILE_READ_DATA);
}
}
if (!nt_token_check_sid(&global_sid_Builtin_Administrators,
- p->server_info->security_token)) {
+ p->session_info->security_token)) {
DEBUG(1, ("Enumerating files only allowed for "
"administrators\n"));
return WERR_ACCESS_DENIED;
DEBUG(5,("_srvsvc_NetConnEnum: %d\n", __LINE__));
if (!nt_token_check_sid(&global_sid_Builtin_Administrators,
- p->server_info->security_token)) {
+ p->session_info->security_token)) {
DEBUG(1, ("Enumerating connections only allowed for "
"administrators\n"));
return WERR_ACCESS_DENIED;
DEBUG(5,("_srvsvc_NetSessEnum: %d\n", __LINE__));
if (!nt_token_check_sid(&global_sid_Builtin_Administrators,
- p->server_info->security_token)) {
+ p->session_info->security_token)) {
DEBUG(1, ("Enumerating sessions only allowed for "
"administrators\n"));
return WERR_ACCESS_DENIED;
/* fail out now if you are not root or not a domain admin */
- if ((p->server_info->utok.uid != sec_initial_uid()) &&
- ( ! nt_token_check_domain_rid(p->server_info->security_token,
+ if ((p->session_info->utok.uid != sec_initial_uid()) &&
+ ( ! nt_token_check_domain_rid(p->session_info->security_token,
DOMAIN_RID_ADMINS))) {
goto done;
NTSTATUS ntstat;
- if (p->server_info->utok.uid != sec_initial_uid()) {
+ if (p->session_info->utok.uid != sec_initial_uid()) {
not_root = True;
become_root();
}
if (lp_print_ok(snum))
return WERR_ACCESS_DENIED;
- is_disk_op = security_token_has_privilege(p->server_info->security_token, SEC_PRIV_DISK_OPERATOR);
+ is_disk_op = security_token_has_privilege(p->session_info->security_token, SEC_PRIV_DISK_OPERATOR);
/* fail out now if you are not root and not a disk op */
- if ( p->server_info->utok.uid != sec_initial_uid() && !is_disk_op ) {
+ if ( p->session_info->utok.uid != sec_initial_uid() && !is_disk_op ) {
DEBUG(2,("_srvsvc_NetShareSetInfo: uid %u doesn't have the "
"SeDiskOperatorPrivilege privilege needed to modify "
"share %s\n",
- (unsigned int)p->server_info->utok.uid,
+ (unsigned int)p->session_info->utok.uid,
share_name ));
return WERR_ACCESS_DENIED;
}
*r->out.parm_error = 0;
}
- is_disk_op = security_token_has_privilege(p->server_info->security_token, SEC_PRIV_DISK_OPERATOR);
+ is_disk_op = security_token_has_privilege(p->session_info->security_token, SEC_PRIV_DISK_OPERATOR);
- if (p->server_info->utok.uid != sec_initial_uid() && !is_disk_op )
+ if (p->session_info->utok.uid != sec_initial_uid() && !is_disk_op )
return WERR_ACCESS_DENIED;
if (!lp_add_share_cmd() || !*lp_add_share_cmd()) {
if (lp_print_ok(snum))
return WERR_ACCESS_DENIED;
- is_disk_op = security_token_has_privilege(p->server_info->security_token, SEC_PRIV_DISK_OPERATOR);
+ is_disk_op = security_token_has_privilege(p->session_info->security_token, SEC_PRIV_DISK_OPERATOR);
- if (p->server_info->utok.uid != sec_initial_uid() && !is_disk_op )
+ if (p->session_info->utok.uid != sec_initial_uid() && !is_disk_op )
return WERR_ACCESS_DENIED;
if (!lp_delete_share_cmd() || !*lp_delete_share_cmd()) {
}
nt_status = create_conn_struct(talloc_tos(), &conn, snum,
- lp_pathname(snum), p->server_info,
+ lp_pathname(snum), p->session_info,
&oldcwd);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(10, ("create_conn_struct failed: %s\n",
}
nt_status = create_conn_struct(talloc_tos(), &conn, snum,
- lp_pathname(snum), p->server_info,
+ lp_pathname(snum), p->session_info,
&oldcwd);
if (!NT_STATUS_IS_OK(nt_status)) {
DEBUG(10, ("create_conn_struct failed: %s\n",
DEBUG(5,("_srvsvc_NetFileClose: %d\n", __LINE__));
- is_disk_op = security_token_has_privilege(p->server_info->security_token, SEC_PRIV_DISK_OPERATOR);
+ is_disk_op = security_token_has_privilege(p->session_info->security_token, SEC_PRIV_DISK_OPERATOR);
- if (p->server_info->utok.uid != sec_initial_uid() && !is_disk_op) {
+ if (p->session_info->utok.uid != sec_initial_uid() && !is_disk_op) {
return WERR_ACCESS_DENIED;
}
return WERR_NOMEM;
se_map_generic( &r->in.access_mask, &scm_generic_map );
- status = svcctl_access_check( sec_desc, p->server_info->security_token,
+ status = svcctl_access_check( sec_desc, p->session_info->security_token,
r->in.access_mask, &access_granted );
if ( !NT_STATUS_IS_OK(status) )
return ntstatus_to_werror( status );
return WERR_BADFID;
/*
- * Perform access checks. Use the system server_info in order to ensure
+ * Perform access checks. Use the system session_info in order to ensure
* that we retrieve the security descriptor
*/
sec_desc = svcctl_get_secdesc(p->mem_ctx,
p->msg_ctx,
- get_server_info_system(),
+ get_session_info_system(),
service);
if (sec_desc == NULL) {
DEBUG(0, ("_svcctl_OpenServiceW: Failed to get a valid security "
}
se_map_generic( &r->in.access_mask, &svc_generic_map );
- status = svcctl_access_check( sec_desc, p->server_info->security_token,
+ status = svcctl_access_check( sec_desc, p->session_info->security_token,
r->in.access_mask, &access_granted );
if ( !NT_STATUS_IS_OK(status) )
return ntstatus_to_werror( status );
display_name = svcctl_lookup_dispname(p->mem_ctx,
p->msg_ctx,
- p->server_info,
+ p->session_info,
service);
if (!display_name) {
display_name = "";
static int enumerate_status(TALLOC_CTX *ctx,
struct messaging_context *msg_ctx,
- struct auth_serversupplied_info *server_info,
+ struct auth_serversupplied_info *session_info,
struct ENUM_SERVICE_STATUSW **status)
{
int num_services = 0;
display_name = svcctl_lookup_dispname(ctx,
msg_ctx,
- server_info,
+ session_info,
svcctl_ops[i].name);
st[i].display_name = talloc_strdup(st, display_name ? display_name : "");
num_services = enumerate_status(p->mem_ctx,
p->msg_ctx,
- p->server_info,
+ p->session_info,
&services);
if (num_services == -1 ) {
return WERR_NOMEM;
static WERROR fill_svc_config(TALLOC_CTX *ctx,
struct messaging_context *msg_ctx,
- struct auth_serversupplied_info *server_info,
+ struct auth_serversupplied_info *session_info,
const char *name,
struct QUERY_SERVICE_CONFIG *config)
{
config->displayname = svcctl_lookup_dispname(mem_ctx,
msg_ctx,
- server_info,
+ session_info,
name);
result = svcctl_get_string_value(mem_ctx,
msg_ctx,
- server_info,
+ session_info,
name,
"ObjectName");
if (result != NULL) {
result = svcctl_get_string_value(mem_ctx,
msg_ctx,
- server_info,
+ session_info,
name,
"ImagePath");
if (result != NULL) {
wresult = fill_svc_config(p->mem_ctx,
p->msg_ctx,
- p->server_info,
+ p->session_info,
info->name,
r->out.query);
if ( !W_ERROR_IS_OK(wresult) )
description = svcctl_lookup_description(p->mem_ctx,
p->msg_ctx,
- p->server_info,
+ p->session_info,
info->name);
desc_buf.description = description;
/* Lookup the security descriptor and marshall it up for a reply */
sec_desc = svcctl_get_secdesc(p->mem_ctx,
p->msg_ctx,
- get_server_info_system(),
+ get_session_info_system(),
info->name);
if (sec_desc == NULL) {
return WERR_NOMEM;
/* store the new SD */
- if (!svcctl_set_secdesc(p->msg_ctx, p->server_info, info->name, sec_desc))
+ if (!svcctl_set_secdesc(p->msg_ctx, p->session_info, info->name, sec_desc))
return WERR_ACCESS_DENIED;
return WERR_OK;
}
status = dcerpc_winreg_int_hklm_openkey(tmp_ctx,
- get_server_info_system(),
+ get_session_info_system(),
msg_ctx,
&h,
key,
if (parent == NULL) {
result = reg_openhive(p->mem_ctx, subkeyname, access_desired,
- p->server_info->security_token, &key);
+ p->session_info->security_token, &key);
}
else {
result = reg_openkey(p->mem_ctx, parent, subkeyname,
return WERR_NOMEM;
}
- can_shutdown = security_token_has_privilege(p->server_info->security_token, SEC_PRIV_REMOTE_SHUTDOWN);
+ can_shutdown = security_token_has_privilege(p->session_info->security_token, SEC_PRIV_REMOTE_SHUTDOWN);
/* IF someone has privs, run the shutdown script as root. OTHERWISE run it as not root
Take the error return from the script and provide it as the Windows return code. */
if (!*abort_shutdown_script)
return WERR_ACCESS_DENIED;
- can_shutdown = security_token_has_privilege(p->server_info->security_token, SEC_PRIV_REMOTE_SHUTDOWN);
+ can_shutdown = security_token_has_privilege(p->session_info->security_token, SEC_PRIV_REMOTE_SHUTDOWN);
/********** BEGIN SeRemoteShutdownPrivilege BLOCK **********/
/* user must posses SeRestorePrivilege for this this proceed */
- if ( !security_token_has_privilege(p->server_info->security_token, SEC_PRIV_RESTORE)) {
+ if ( !security_token_has_privilege(p->session_info->security_token, SEC_PRIV_RESTORE)) {
return WERR_ACCESS_DENIED;
}
case 101:
/* Level 101 can be allowed from any logged in user */
if (!nt_token_check_sid(&global_sid_Authenticated_Users,
- p->server_info->security_token)) {
+ p->session_info->security_token)) {
DEBUG(1,("User not allowed for NetWkstaGetInfo level "
"101\n"));
DEBUGADD(3,(" - does not have sid for Authenticated "
sid_string_dbg(
&global_sid_Authenticated_Users)));
security_token_debug(DBGC_CLASS, 3,
- p->server_info->security_token);
+ p->session_info->security_token);
return WERR_ACCESS_DENIED;
}
r->out.info->info101 = create_wks_info_101(p->mem_ctx);
case 102:
/* Level 102 Should only be allowed from a domain administrator */
if (!nt_token_check_sid(&global_sid_Builtin_Administrators,
- p->server_info->security_token)) {
+ p->session_info->security_token)) {
DEBUG(1,("User not allowed for NetWkstaGetInfo level "
"102\n"));
DEBUGADD(3,(" - does not have sid for Administrators "
"group %s, sids are:\n",
sid_string_dbg(&global_sid_Builtin_Administrators)));
security_token_debug(DBGC_CLASS, 3,
- p->server_info->security_token);
+ p->session_info->security_token);
return WERR_ACCESS_DENIED;
}
r->out.info->info102 = create_wks_info_102(p->mem_ctx);
{
/* This with any level should only be allowed from a domain administrator */
if (!nt_token_check_sid(&global_sid_Builtin_Administrators,
- p->server_info->security_token)) {
+ p->session_info->security_token)) {
DEBUG(1,("User not allowed for NetWkstaEnumUsers\n"));
DEBUGADD(3,(" - does not have sid for Administrators group "
"%s\n", sid_string_dbg(
&global_sid_Builtin_Administrators)));
- security_token_debug(DBGC_CLASS, 3, p->server_info->security_token);
+ security_token_debug(DBGC_CLASS, 3, p->session_info->security_token);
return WERR_ACCESS_DENIED;
}
char *admin_domain = NULL;
char *admin_account = NULL;
WERROR werr;
- struct security_token *token = p->server_info->security_token;
+ struct security_token *token = p->session_info->security_token;
if (!r->in.domain_name) {
return WERR_INVALID_PARAM;
werr = decode_wkssvc_join_password_buffer(
p->mem_ctx, r->in.encrypted_password,
- &p->server_info->user_session_key, &cleartext_pwd);
+ &p->session_info->user_session_key, &cleartext_pwd);
if (!W_ERROR_IS_OK(werr)) {
return werr;
}
char *admin_domain = NULL;
char *admin_account = NULL;
WERROR werr;
- struct security_token *token = p->server_info->security_token;
+ struct security_token *token = p->session_info->security_token;
if (!r->in.account || !r->in.encrypted_password) {
return WERR_INVALID_PARAM;
werr = decode_wkssvc_join_password_buffer(
p->mem_ctx, r->in.encrypted_password,
- &p->server_info->user_session_key, &cleartext_pwd);
+ &p->session_info->user_session_key, &cleartext_pwd);
if (!W_ERROR_IS_OK(werr)) {
return werr;
}
struct security_descriptor *svcctl_get_secdesc(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *name)
{
struct dcerpc_binding_handle *h = NULL;
}
status = dcerpc_winreg_int_hklm_openkey(mem_ctx,
- server_info,
+ session_info,
msg_ctx,
&h,
key,
}
bool svcctl_set_secdesc(struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *name,
struct security_descriptor *sd)
{
}
status = dcerpc_winreg_int_hklm_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&h,
key,
const char *svcctl_get_string_value(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *key_name,
const char *value_name)
{
}
status = dcerpc_winreg_int_hklm_openkey(tmp_ctx,
- server_info,
+ session_info,
msg_ctx,
&h,
path,
const char *svcctl_lookup_dispname(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *name)
{
const char *display_name = NULL;
display_name = svcctl_get_string_value(mem_ctx,
msg_ctx,
- server_info,
+ session_info,
name,
"DisplayName");
const char *svcctl_lookup_description(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *name)
{
const char *description = NULL;
description = svcctl_get_string_value(mem_ctx,
msg_ctx,
- server_info,
+ session_info,
name,
"Description");
struct security_descriptor *svcctl_get_secdesc(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *name);
bool svcctl_set_secdesc(struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *name,
struct security_descriptor *sd);
const char *svcctl_get_string_value(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *key_name,
const char *value_name);
const char *svcctl_lookup_dispname(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *name);
const char *svcctl_lookup_description(TALLOC_CTX *mem_ctx,
struct messaging_context *msg_ctx,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
const char *name);
#endif /* SVC_WINREG_GLUE_H */
status = ntstatus_keeperror(status, tmp);
DEBUG(2,("%s closed file %s (numopen=%d) %s\n",
- conn->server_info->unix_name, fsp_str_dbg(fsp),
+ conn->session_info->unix_name, fsp_str_dbg(fsp),
conn->num_files_open - 1,
nt_errstr(status) ));
crec.magic = 0x280267;
crec.pid = sconn_server_id(conn->sconn);
crec.cnum = conn->cnum;
- crec.uid = conn->server_info->utok.uid;
- crec.gid = conn->server_info->utok.gid;
+ crec.uid = conn->session_info->utok.uid;
+ crec.gid = conn->session_info->utok.gid;
strlcpy(crec.servicename, lp_servicename(SNUM(conn)),
sizeof(crec.servicename));
crec.start = time(NULL);
"service[%s] file[%s] user[%s]\n",
lp_servicename(SNUM(conn)),
smb_fname_str_dbg(smb_fname),
- conn->server_info->unix_name));
+ conn->session_info->unix_name));
return NT_STATUS_ACCESS_DENIED;
}
NTSTATUS status;
uint64_t vuid;
struct auth_ntlmssp_state *auth_ntlmssp_state;
- struct auth_serversupplied_info *server_info;
+ struct auth_serversupplied_info *session_info;
DATA_BLOB session_key;
bool do_signing;
}
buf = talloc_sub_advanced(ctx,
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
buf);
if (!buf) {
*p_space_remaining = 0;
}
buf = talloc_sub_advanced(ctx,
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
buf);
if (!buf) {
return 0;
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
Get info level for a server list query.
****************************************************************************/
-static bool check_server_info(int uLevel, char* id)
+static bool check_session_info(int uLevel, char* id)
{
switch( uLevel ) {
case 0:
number of entries.
******************************************************************/
-static int get_server_info(uint32 servertype,
+static int get_session_info(uint32 servertype,
struct srv_info_struct **servers,
const char *domain)
{
alloced += 10;
*servers = SMB_REALLOC_ARRAY(*servers,struct srv_info_struct, alloced);
if (!*servers) {
- DEBUG(0,("get_server_info: failed to enlarge servers info struct!\n"));
+ DEBUG(0,("get_session_info: failed to enlarge servers info struct!\n"));
TALLOC_FREE(lines);
return 0;
}
if (!prefix_ok(str1,"WrLehD")) {
return False;
}
- if (!check_server_info(uLevel,str2)) {
+ if (!check_session_info(uLevel,str2)) {
return False;
}
DEBUG(4, ("domain [%s]\n", domain));
if (lp_browse_list()) {
- total = get_server_info(servertype,&servers,domain);
+ total = get_session_info(servertype,&servers,domain);
}
data_len = fixed_len = string_len = 0;
if (strcmp(str1, "WrLehDzz") != 0) {
return false;
}
- if (!check_server_info(uLevel,str2)) {
+ if (!check_session_info(uLevel,str2)) {
return False;
}
domain, first_name));
if (lp_browse_list()) {
- total = get_server_info(servertype,&servers,domain);
+ total = get_session_info(servertype,&servers,domain);
}
data_len = fixed_len = string_len = 0;
}
status = rpc_pipe_open_internal(mem_ctx, &ndr_table_srvsvc.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
status = rpc_pipe_open_internal(
talloc_tos(), &ndr_table_samr.syntax_id,
- conn->server_info, &conn->sconn->client_id,
+ conn->session_info, &conn->sconn->client_id,
conn->sconn->msg_ctx, &samr_pipe);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("api_RNetUserEnum: Could not connect to samr: %s\n",
status = rpc_pipe_open_internal(
talloc_tos(), &ndr_table_samr.syntax_id,
- conn->server_info, &conn->sconn->client_id,
+ conn->session_info, &conn->sconn->client_id,
conn->sconn->msg_ctx, &samr_pipe);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("api_RNetUserEnum: Could not connect to samr: %s\n",
status = rpc_pipe_open_internal(
talloc_tos(), &ndr_table_samr.syntax_id,
- conn->server_info, &conn->sconn->client_id,
+ conn->session_info, &conn->sconn->client_id,
conn->sconn->msg_ctx, &samr_pipe);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("api_RNetUserEnum: Could not connect to samr: %s\n",
ZERO_STRUCT(user_handle);
status = rpc_pipe_open_internal(mem_ctx, &ndr_table_samr.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
memcpy(hash.hash, data+516, 16);
status = rpc_pipe_open_internal(mem_ctx, &ndr_table_samr.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
p2 = p + struct_len;
status = rpc_pipe_open_internal(mem_ctx, &ndr_table_srvsvc.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
p += 4;
SIVAL(p,0,PTR_DIFF(p2,*rdata));
- strlcpy(p2,conn->server_info->sanitized_username,PTR_DIFF(endp,p2));
+ strlcpy(p2,conn->session_info->sanitized_username,PTR_DIFF(endp,p2));
p2 = skip_string(*rdata,*rdata_len,p2);
if (!p2) {
return False;
ZERO_STRUCT(user_handle);
status = rpc_pipe_open_internal(mem_ctx, &ndr_table_samr.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
if(vuser != NULL) {
DEBUG(3,(" Username of UID %d is %s\n",
- (int)vuser->server_info->utok.uid,
- vuser->server_info->unix_name));
+ (int)vuser->session_info->utok.uid,
+ vuser->session_info->unix_name));
}
uLevel = get_safe_SVAL(param,tpscnt,p,0,-1);
PACKS(&desc,"z",lp_workgroup());/* domain */
PACKS(&desc,"z", vuser ?
- vuser->server_info->info3->base.logon_script.string
+ vuser->session_info->info3->base.logon_script.string
: ""); /* script path */
PACKI(&desc,"D",0x00000000); /* reserved */
}
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
if (api_commands[i].auth_user && lp_restrict_anonymous()) {
user_struct *user = get_valid_user_struct(req->sconn, vuid);
- if (!user || user->server_info->guest) {
+ if (!user || user->session_info->guest) {
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
return;
}
connection_struct **pconn,
int snum,
const char *path,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
char **poldcwd)
{
connection_struct *conn;
conn->sconn = smbd_server_conn;
conn->sconn->num_tcons_open++;
- if (server_info != NULL) {
- conn->server_info = copy_serverinfo(conn, server_info);
- if (conn->server_info == NULL) {
+ if (session_info != NULL) {
+ conn->session_info = copy_serverinfo(conn, session_info);
+ if (conn->session_info == NULL) {
DEBUG(0, ("copy_serverinfo failed\n"));
TALLOC_FREE(conn);
return NT_STATUS_NO_MEMORY;
if (!( strequal(pdp->servicename, lp_servicename(SNUM(conn)))
|| (strequal(pdp->servicename, HOMES_NAME)
&& strequal(lp_servicename(SNUM(conn)),
- conn->server_info->sanitized_username) )) ) {
+ conn->session_info->sanitized_username) )) ) {
/* The given sharename doesn't match this connection. */
TALLOC_FREE(pdp);
ZERO_STRUCT(qt);
/* access check */
- if (conn->server_info->utok.uid != 0) {
+ if (conn->session_info->utok.uid != 0) {
DEBUG(1,("get_user_quota: access_denied service [%s] user "
"[%s]\n", lp_servicename(SNUM(conn)),
- conn->server_info->unix_name));
+ conn->session_info->unix_name));
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
return;
}
ZERO_STRUCT(qt);
/* access check */
- if (conn->server_info->utok.uid != 0) {
+ if (conn->session_info->utok.uid != 0) {
DEBUG(1,("set_user_quota: access_denied service [%s] user "
"[%s]\n", lp_servicename(SNUM(conn)),
- conn->server_info->unix_name));
+ conn->session_info->unix_name));
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
return;
}
fsp->wcp = NULL; /* Write cache pointer. */
DEBUG(2,("%s opened file %s read=%s write=%s (numopen=%d)\n",
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
smb_fname_str_dbg(smb_fname),
BOOLSTR(fsp->can_read), BOOLSTR(fsp->can_write),
conn->num_files_open));
if (vuid == usp->vuid) {
switch (server_allocated) {
case SERVER_ALLOCATED_REQUIRED_YES:
- if (usp->server_info == NULL) {
+ if (usp->session_info == NULL) {
continue;
}
break;
case SERVER_ALLOCATED_REQUIRED_NO:
- if (usp->server_info != NULL) {
+ if (usp->session_info != NULL) {
continue;
}
case SERVER_ALLOCATED_REQUIRED_ANY:
/**
* register that a valid login has been performed, establish 'session'.
- * @param server_info The token returned from the authentication process.
+ * @param session_info The token returned from the authentication process.
* (now 'owned' by register_existing_vuid)
*
* @param session_key The User session key for the login session (now also
int register_existing_vuid(struct smbd_server_connection *sconn,
uint16 vuid,
- struct auth_serversupplied_info *server_info,
+ struct auth_serversupplied_info *session_info,
DATA_BLOB response_blob,
const char *smb_name)
{
}
/* Use this to keep tabs on all our info from the authentication */
- vuser->server_info = talloc_move(vuser, &server_info);
+ vuser->session_info = talloc_move(vuser, &session_info);
/* This is a potentially untrusted username */
alpha_strcpy(tmp, smb_name, ". _-$", sizeof(tmp));
- vuser->server_info->sanitized_username = talloc_strdup(
- vuser->server_info, tmp);
+ vuser->session_info->sanitized_username = talloc_strdup(
+ vuser->session_info, tmp);
DEBUG(10,("register_existing_vuid: (%u,%u) %s %s %s guest=%d\n",
- (unsigned int)vuser->server_info->utok.uid,
- (unsigned int)vuser->server_info->utok.gid,
- vuser->server_info->unix_name,
- vuser->server_info->sanitized_username,
- vuser->server_info->info3->base.domain.string,
- vuser->server_info->guest ));
+ (unsigned int)vuser->session_info->utok.uid,
+ (unsigned int)vuser->session_info->utok.gid,
+ vuser->session_info->unix_name,
+ vuser->session_info->sanitized_username,
+ vuser->session_info->info3->base.domain.string,
+ vuser->session_info->guest ));
DEBUG(3, ("register_existing_vuid: User name: %s\t"
- "Real name: %s\n", vuser->server_info->unix_name,
- vuser->server_info->info3->base.full_name.string));
+ "Real name: %s\n", vuser->session_info->unix_name,
+ vuser->session_info->info3->base.full_name.string));
- if (!vuser->server_info->security_token) {
- DEBUG(1, ("register_existing_vuid: server_info does not "
+ if (!vuser->session_info->security_token) {
+ DEBUG(1, ("register_existing_vuid: session_info does not "
"contain a user_token - cannot continue\n"));
goto fail;
}
DEBUG(3,("register_existing_vuid: UNIX uid %d is UNIX user %s, "
- "and will be vuid %u\n", (int)vuser->server_info->utok.uid,
- vuser->server_info->unix_name, vuser->vuid));
+ "and will be vuid %u\n", (int)vuser->session_info->utok.uid,
+ vuser->session_info->unix_name, vuser->vuid));
if (!session_claim(sconn, vuser)) {
DEBUG(1, ("register_existing_vuid: Failed to claim session "
vuser->homes_snum = -1;
- if (!vuser->server_info->guest) {
+ if (!vuser->session_info->guest) {
vuser->homes_snum = register_homes_share(
- vuser->server_info->unix_name);
+ vuser->session_info->unix_name);
}
if (srv_is_signing_negotiated(sconn) &&
- !vuser->server_info->guest) {
+ !vuser->session_info->guest) {
/* Try and turn on server signing on the first non-guest
* sessionsetup. */
srv_set_signing(sconn,
- vuser->server_info->user_session_key,
+ vuser->session_info->user_session_key,
response_blob);
}
/* fill in the current_user_info struct */
set_current_user_info(
- vuser->server_info->sanitized_username,
- vuser->server_info->unix_name,
- vuser->server_info->info3->base.domain.string);
+ vuser->session_info->sanitized_username,
+ vuser->session_info->unix_name,
+ vuser->session_info->info3->base.domain.string);
return vuser->vuid;
conn->sconn->local_address,
conn->sconn->remote_address,
&conn->sconn->client_id,
- conn->server_info,
+ conn->session_info,
conn->sconn->msg_ctx,
&fsp->fake_file_handle);
if (!NT_STATUS_IS_OK(status)) {
vuser = get_valid_user_struct(sconn, session_tag);
if (vuser) {
set_current_user_info(
- vuser->server_info->sanitized_username,
- vuser->server_info->unix_name,
- vuser->server_info->info3->base.domain.string);
+ vuser->session_info->sanitized_username,
+ vuser->session_info->unix_name,
+ vuser->session_info->info3->base.domain.string);
}
}
}
}
/* The set is across all open files on this dev/inode pair. */
- if (!set_delete_on_close(fsp, True, &conn->server_info->utok)) {
+ if (!set_delete_on_close(fsp, True, &conn->session_info->utok)) {
close_file(req, fsp, NORMAL_CLOSE);
return NT_STATUS_ACCESS_DENIED;
}
status = rpc_pipe_open_interface(conn,
&ndr_table_spoolss.syntax_id,
- conn->server_info,
+ conn->session_info,
&conn->sconn->client_id,
conn->sconn->msg_ctx,
&cli);
goto out;
}
- if (!set_delete_on_close(fsp, true, &conn->server_info->utok)) {
+ if (!set_delete_on_close(fsp, true, &conn->session_info->utok)) {
close_file(req, fsp, ERROR_CLOSE);
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
goto out;
void reload_printers(struct tevent_context *ev,
struct messaging_context *msg_ctx)
{
- struct auth_serversupplied_info *server_info = NULL;
+ struct auth_serversupplied_info *session_info = NULL;
struct spoolss_PrinterInfo2 *pinfo2 = NULL;
int snum;
int n_services = lp_numservices();
SMB_ASSERT(pcap_cache_loaded());
DEBUG(10, ("reloading printer services from pcap cache\n"));
- status = make_server_info_system(talloc_tos(), &server_info);
+ status = make_session_info_system(talloc_tos(), &session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(3, ("reload_printers: "
- "Could not create system server_info\n"));
+ "Could not create system session_info\n"));
/* can't remove stale printers before we
* are fully initilized */
skip = true;
if (!pcap_printername_ok(pname)) {
DEBUG(3, ("removing stale printer %s\n", pname));
- if (is_printer_published(server_info, server_info,
+ if (is_printer_published(session_info, session_info,
msg_ctx,
NULL, lp_servicename(snum),
NULL, &pinfo2)) {
- nt_printer_publish(server_info,
- server_info,
+ nt_printer_publish(session_info,
+ session_info,
msg_ctx,
pinfo2,
DSPRINT_UNPUBLISH);
TALLOC_FREE(pinfo2);
}
- nt_printer_remove(server_info, server_info, msg_ctx,
+ nt_printer_remove(session_info, session_info, msg_ctx,
pname);
lp_killservice(snum);
}
load_printers(ev, msg_ctx);
- TALLOC_FREE(server_info);
+ TALLOC_FREE(session_info);
}
/****************************************************************************
Create an auth_serversupplied_info structure for a connection_struct
****************************************************************************/
-static NTSTATUS create_connection_server_info(struct smbd_server_connection *sconn,
+static NTSTATUS create_connection_session_info(struct smbd_server_connection *sconn,
TALLOC_CTX *mem_ctx, int snum,
struct auth_serversupplied_info *vuid_serverinfo,
DATA_BLOB password,
conn->params->service = snum;
- status = create_connection_server_info(sconn,
- conn, snum, vuser ? vuser->server_info : NULL, password,
- &conn->server_info);
+ status = create_connection_session_info(sconn,
+ conn, snum, vuser ? vuser->session_info : NULL, password,
+ &conn->session_info);
if (!NT_STATUS_IS_OK(status)) {
- DEBUG(1, ("create_connection_server_info failed: %s\n",
+ DEBUG(1, ("create_connection_session_info failed: %s\n",
nt_errstr(status)));
*pstatus = status;
goto err_root_exit;
conn->force_user = true;
}
- add_session_user(sconn, conn->server_info->unix_name);
+ add_session_user(sconn, conn->session_info->unix_name);
conn->num_files_open = 0;
conn->lastused = conn->lastused_count = time(NULL);
if (*lp_force_user(snum)) {
/*
- * Replace conn->server_info with a completely faked up one
+ * Replace conn->session_info with a completely faked up one
* from the username we are forced into :-)
*/
}
status = make_serverinfo_from_username(
- conn, fuser, conn->server_info->guest,
+ conn, fuser, conn->session_info->guest,
&forced_serverinfo);
if (!NT_STATUS_IS_OK(status)) {
*pstatus = status;
goto err_root_exit;
}
- TALLOC_FREE(conn->server_info);
- conn->server_info = forced_serverinfo;
+ TALLOC_FREE(conn->session_info);
+ conn->session_info = forced_serverinfo;
conn->force_user = True;
DEBUG(3,("Forced user %s\n", fuser));
if (*lp_force_group(snum)) {
status = find_forced_group(
- conn->force_user, snum, conn->server_info->unix_name,
- &conn->server_info->security_token->sids[1],
- &conn->server_info->utok.gid);
+ conn->force_user, snum, conn->session_info->unix_name,
+ &conn->session_info->security_token->sids[1],
+ &conn->session_info->utok.gid);
if (!NT_STATUS_IS_OK(status)) {
*pstatus = status;
/*
* We need to cache this gid, to use within
- * change_to_user() separately from the conn->server_info
- * struct. We only use conn->server_info directly if
+ * change_to_user() separately from the conn->session_info
+ * struct. We only use conn->session_info directly if
* "force_user" was set.
*/
- conn->force_group_gid = conn->server_info->utok.gid;
+ conn->force_group_gid = conn->session_info->utok.gid;
}
conn->vuid = (vuser != NULL) ? vuser->vuid : UID_FIELD_INVALID;
{
char *s = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
lp_pathname(snum));
if (!s) {
*pstatus = NT_STATUS_NO_MEMORY;
{
bool can_write = False;
- can_write = share_access_check(conn->server_info->security_token,
+ can_write = share_access_check(conn->session_info->security_token,
lp_servicename(snum),
FILE_WRITE_DATA);
if (!can_write) {
- if (!share_access_check(conn->server_info->security_token,
+ if (!share_access_check(conn->session_info->security_token,
lp_servicename(snum),
FILE_READ_DATA)) {
/* No access, read or write. */
filesystem operation that we do. */
if (SMB_VFS_CONNECT(conn, lp_servicename(snum),
- conn->server_info->unix_name) < 0) {
+ conn->session_info->unix_name) < 0) {
DEBUG(0,("make_connection: VFS make connection failed!\n"));
*pstatus = NT_STATUS_UNSUCCESSFUL;
goto err_root_exit;
if (*lp_rootpreexec(snum)) {
char *cmd = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
lp_rootpreexec(snum));
DEBUG(5,("cmd=%s\n",cmd));
ret = smbrun(cmd,NULL);
if (*lp_preexec(snum)) {
char *cmd = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
lp_preexec(snum));
ret = smbrun(cmd,NULL);
TALLOC_FREE(cmd);
dbgtext( "%s", srv_is_signing_active(sconn) ? "signed " : "");
dbgtext( "connect to service %s ", lp_servicename(snum) );
dbgtext( "initially as user %s ",
- conn->server_info->unix_name );
+ conn->session_info->unix_name );
dbgtext( "(uid=%d, gid=%d) ", (int)effuid, (int)effgid );
dbgtext( "(pid %d)\n", (int)sys_getpid() );
}
change_to_user(conn, vuid)) {
char *cmd = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
lp_postexec(SNUM(conn)));
smbrun(cmd,NULL);
TALLOC_FREE(cmd);
if (*lp_rootpostexec(SNUM(conn))) {
char *cmd = talloc_sub_advanced(talloc_tos(),
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
conn->connectpath,
- conn->server_info->utok.gid,
- conn->server_info->sanitized_username,
- conn->server_info->info3->base.domain.string,
+ conn->session_info->utok.gid,
+ conn->session_info->sanitized_username,
+ conn->session_info->info3->base.domain.string,
lp_rootpostexec(SNUM(conn)));
smbrun(cmd,NULL);
TALLOC_FREE(cmd);
/* don't register sessions for the guest user - its just too
expensive to go through pam session code for browsing etc */
- if (vuser->server_info->guest) {
+ if (vuser->session_info->guest) {
return True;
}
client_name() handles this case internally.
*/
- fstrcpy(sessionid.username, vuser->server_info->unix_name);
+ fstrcpy(sessionid.username, vuser->session_info->unix_name);
fstrcpy(sessionid.hostname, sconn->client_id.name);
sessionid.id_num = i; /* Only valid for utmp sessions */
sessionid.pid = pid;
- sessionid.uid = vuser->server_info->utok.uid;
- sessionid.gid = vuser->server_info->utok.gid;
+ sessionid.uid = vuser->session_info->utok.uid;
+ sessionid.gid = vuser->session_info->utok.gid;
fstrcpy(sessionid.remote_machine, get_remote_machine_name());
fstrcpy(sessionid.ip_addr_str, sconn->client_id.addr);
sessionid.connect_start = time(NULL);
{
bool do_invalidate = true;
DATA_BLOB response;
- struct auth_serversupplied_info *server_info = NULL;
+ struct auth_serversupplied_info *session_info = NULL;
struct smbd_server_connection *sconn = req->sconn;
if (NT_STATUS_IS_OK(nt_status)) {
- nt_status = auth_ntlmssp_steal_server_info(talloc_tos(),
- (*auth_ntlmssp_state), &server_info);
+ nt_status = auth_ntlmssp_steal_session_info(talloc_tos(),
+ (*auth_ntlmssp_state), &session_info);
} else {
- /* Note that this server_info won't have a session
+ /* Note that this session_info won't have a session
* key. But for map to guest, that's exactly the right
* thing - we can't reasonably guess the key the
* client wants, as the password was wrong */
nt_status = do_map_to_guest(nt_status,
- &server_info,
+ &session_info,
auth_ntlmssp_get_username(*auth_ntlmssp_state),
auth_ntlmssp_get_domain(*auth_ntlmssp_state));
}
/* register_existing_vuid keeps the server info */
if (register_existing_vuid(sconn, vuid,
- server_info, nullblob,
+ session_info, nullblob,
auth_ntlmssp_get_username(*auth_ntlmssp_state)) !=
vuid) {
/* The problem is, *auth_ntlmssp_state points
SSVAL(req->outbuf, smb_vwv3, 0);
- if (server_info->guest) {
+ if (session_info->guest) {
SSVAL(req->outbuf,smb_vwv2,1);
}
}
return 0;
}
-static NTSTATUS setup_ntlmssp_server_info(struct smbd_smb2_session *session,
+static NTSTATUS setup_ntlmssp_session_info(struct smbd_smb2_session *session,
NTSTATUS status)
{
if (NT_STATUS_IS_OK(status)) {
- status = auth_ntlmssp_steal_server_info(session,
+ status = auth_ntlmssp_steal_session_info(session,
session->auth_ntlmssp_state,
- &session->server_info);
+ &session->session_info);
} else {
- /* Note that this server_info won't have a session
+ /* Note that this session_info won't have a session
* key. But for map to guest, that's exactly the right
* thing - we can't reasonably guess the key the
* client wants, as the password was wrong */
status = do_map_to_guest(status,
- &session->server_info,
+ &session->session_info,
auth_ntlmssp_get_username(session->auth_ntlmssp_state),
auth_ntlmssp_get_domain(session->auth_ntlmssp_state));
}
status = make_server_info_krb5(session,
user, domain, real_username, pw,
logon_info, map_domainuser_to_guest,
- &session->server_info);
+ &session->session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(1, ("smb2: make_server_info_krb5 failed\n"));
goto fail;
}
- session->server_info->nss_token |= username_was_mapped;
+ session->session_info->nss_token |= username_was_mapped;
- /* we need to build the token for the user. make_server_info_guest()
+ /* we need to build the token for the user. make_session_info_guest()
already does this */
- if (!session->server_info->security_token ) {
- status = create_local_token(session->server_info);
+ if (!session->session_info->security_token ) {
+ status = create_local_token(session->session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10,("smb2: failed to create local token: %s\n",
nt_errstr(status)));
session->do_signing = true;
}
- if (session->server_info->guest) {
+ if (session->session_info->guest) {
/* we map anonymous to guest internally */
*out_session_flags |= SMB2_SESSION_FLAG_IS_GUEST;
*out_session_flags |= SMB2_SESSION_FLAG_IS_NULL;
session->do_signing = false;
}
- data_blob_free(&session->server_info->user_session_key);
- session->server_info->user_session_key =
+ data_blob_free(&session->session_info->user_session_key);
+ session->session_info->user_session_key =
data_blob_talloc(
- session->server_info,
+ session->session_info,
session_key.data,
session_key.length);
if (session_key.length > 0) {
- if (session->server_info->user_session_key.data == NULL) {
+ if (session->session_info->user_session_key.data == NULL) {
status = NT_STATUS_NO_MEMORY;
goto fail;
}
}
- session->session_key = session->server_info->user_session_key;
+ session->session_key = session->session_info->user_session_key;
session->compat_vuser = talloc_zero(session, user_struct);
if (session->compat_vuser == NULL) {
}
session->compat_vuser->auth_ntlmssp_state = NULL;
session->compat_vuser->homes_snum = -1;
- session->compat_vuser->server_info = session->server_info;
+ session->compat_vuser->session_info = session->session_info;
session->compat_vuser->session_keystr = NULL;
session->compat_vuser->vuid = session->vuid;
DLIST_ADD(session->sconn->smb1.sessions.validated_users, session->compat_vuser);
/* This is a potentially untrusted username */
alpha_strcpy(tmp, user, ". _-$", sizeof(tmp));
- session->server_info->sanitized_username =
- talloc_strdup(session->server_info, tmp);
+ session->session_info->sanitized_username =
+ talloc_strdup(session->session_info, tmp);
- if (!session->server_info->guest) {
+ if (!session->session_info->guest) {
session->compat_vuser->homes_snum =
- register_homes_share(session->server_info->unix_name);
+ register_homes_share(session->session_info->unix_name);
}
if (!session_claim(session->sconn, session->compat_vuser)) {
session->do_signing = true;
}
- if (session->server_info->guest) {
+ if (session->session_info->guest) {
/* we map anonymous to guest internally */
*out_session_flags |= SMB2_SESSION_FLAG_IS_GUEST;
*out_session_flags |= SMB2_SESSION_FLAG_IS_NULL;
session->do_signing = false;
}
- session->session_key = session->server_info->user_session_key;
+ session->session_key = session->session_info->user_session_key;
session->compat_vuser = talloc_zero(session, user_struct);
if (session->compat_vuser == NULL) {
}
session->compat_vuser->auth_ntlmssp_state = session->auth_ntlmssp_state;
session->compat_vuser->homes_snum = -1;
- session->compat_vuser->server_info = session->server_info;
+ session->compat_vuser->session_info = session->session_info;
session->compat_vuser->session_keystr = NULL;
session->compat_vuser->vuid = session->vuid;
DLIST_ADD(session->sconn->smb1.sessions.validated_users, session->compat_vuser);
auth_ntlmssp_get_username(session->auth_ntlmssp_state),
". _-$",
sizeof(tmp));
- session->server_info->sanitized_username = talloc_strdup(
- session->server_info, tmp);
+ session->session_info->sanitized_username = talloc_strdup(
+ session->session_info, tmp);
- if (!session->compat_vuser->server_info->guest) {
+ if (!session->compat_vuser->session_info->guest) {
session->compat_vuser->homes_snum =
- register_homes_share(session->server_info->unix_name);
+ register_homes_share(session->session_info->unix_name);
}
if (!session_claim(session->sconn, session->compat_vuser)) {
status = auth_ntlmssp_update(session->auth_ntlmssp_state,
auth,
&auth_out);
- /* We need to call setup_ntlmssp_server_info() if status==NT_STATUS_OK,
+ /* We need to call setup_ntlmssp_session_info() if status==NT_STATUS_OK,
or if status is anything except NT_STATUS_MORE_PROCESSING_REQUIRED,
as this can trigger map to guest. */
if (!NT_STATUS_EQUAL(status, NT_STATUS_MORE_PROCESSING_REQUIRED)) {
- status = setup_ntlmssp_server_info(session, status);
+ status = setup_ntlmssp_session_info(session, status);
}
if (!NT_STATUS_IS_OK(status) &&
return status;
}
- status = setup_ntlmssp_server_info(session, status);
+ status = setup_ntlmssp_session_info(session, status);
if (!NT_STATUS_IS_OK(status)) {
TALLOC_FREE(session->auth_ntlmssp_state);
return NT_STATUS_ACCESS_DENIED;
}
- set_current_user_info(session->server_info->sanitized_username,
- session->server_info->unix_name,
- session->server_info->info3->base.domain.string);
+ set_current_user_info(session->session_info->sanitized_username,
+ session->session_info->unix_name,
+ session->session_info->info3->base.domain.string);
req->session = session;
"user %s because it was not found "
"or created at session setup "
"time\n",
- compat_vuser->server_info->unix_name));
+ compat_vuser->session_info->unix_name));
return NT_STATUS_BAD_NETWORK_NAME;
}
snum = compat_vuser->homes_snum;
fsp.fnum = -1;
/* access check */
- if (conn->server_info->utok.uid != sec_initial_uid()) {
+ if (conn->session_info->utok.uid != sec_initial_uid()) {
DEBUG(0,("set_user_quota: access_denied "
"service [%s] user [%s]\n",
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name));
+ conn->session_info->unix_name));
return NT_STATUS_ACCESS_DENIED;
}
* in our list of SIDs.
*/
if (nt_token_check_sid(&global_sid_Builtin_Guests,
- conn->server_info->security_token)) {
+ conn->session_info->security_token)) {
flags |= SMB_WHOAMI_GUEST;
}
* is in our list of SIDs.
*/
if (nt_token_check_sid(&global_sid_Authenticated_Users,
- conn->server_info->security_token)) {
+ conn->session_info->security_token)) {
flags &= ~SMB_WHOAMI_GUEST;
}
+ 4 /* num_sids */
+ 4 /* SID bytes */
+ 4 /* pad/reserved */
- + (conn->server_info->utok.ngroups * 8)
+ + (conn->session_info->utok.ngroups * 8)
/* groups list */
- + (conn->server_info->security_token->num_sids *
+ + (conn->session_info->security_token->num_sids *
SID_MAX_SIZE)
/* SID list */;
SIVAL(pdata, 0, flags);
SIVAL(pdata, 4, SMB_WHOAMI_MASK);
SBIG_UINT(pdata, 8,
- (uint64_t)conn->server_info->utok.uid);
+ (uint64_t)conn->session_info->utok.uid);
SBIG_UINT(pdata, 16,
- (uint64_t)conn->server_info->utok.gid);
+ (uint64_t)conn->session_info->utok.gid);
if (data_len >= max_data_bytes) {
break;
}
- SIVAL(pdata, 24, conn->server_info->utok.ngroups);
- SIVAL(pdata, 28, conn->server_info->security_token->num_sids);
+ SIVAL(pdata, 24, conn->session_info->utok.ngroups);
+ SIVAL(pdata, 28, conn->session_info->security_token->num_sids);
/* We walk the SID list twice, but this call is fairly
* infrequent, and I don't expect that it's performance
* sensitive -- jpeach
*/
for (i = 0, sid_bytes = 0;
- i < conn->server_info->security_token->num_sids; ++i) {
+ i < conn->session_info->security_token->num_sids; ++i) {
sid_bytes += ndr_size_dom_sid(
- &conn->server_info->security_token->sids[i],
+ &conn->session_info->security_token->sids[i],
0);
}
data_len = 40;
/* GID list */
- for (i = 0; i < conn->server_info->utok.ngroups; ++i) {
+ for (i = 0; i < conn->session_info->utok.ngroups; ++i) {
SBIG_UINT(pdata, data_len,
- (uint64_t)conn->server_info->utok.groups[i]);
+ (uint64_t)conn->session_info->utok.groups[i]);
data_len += 8;
}
/* SID list */
for (i = 0;
- i < conn->server_info->security_token->num_sids; ++i) {
+ i < conn->session_info->security_token->num_sids; ++i) {
int sid_len = ndr_size_dom_sid(
- &conn->server_info->security_token->sids[i],
+ &conn->session_info->security_token->sids[i],
0);
sid_linearize(pdata + data_len, sid_len,
- &conn->server_info->security_token->sids[i]);
+ &conn->session_info->security_token->sids[i]);
data_len += sid_len;
}
ZERO_STRUCT(quotas);
/* access check */
- if ((conn->server_info->utok.uid != sec_initial_uid())
+ if ((conn->session_info->utok.uid != sec_initial_uid())
||!CAN_WRITE(conn)) {
DEBUG(0,("set_user_quota: access_denied service [%s] user [%s]\n",
lp_servicename(SNUM(conn)),
- conn->server_info->unix_name));
+ conn->session_info->unix_name));
reply_nterror(req, NT_STATUS_ACCESS_DENIED);
return;
}
/* The set is across all open files on this dev/inode pair. */
if (!set_delete_on_close(fsp, delete_on_close,
- &conn->server_info->utok)) {
+ &conn->session_info->utok)) {
return NT_STATUS_ACCESS_DENIED;
}
return NT_STATUS_OK;
}
/****************************************************************************
- talloc free the conn->server_info if not used in the vuid cache.
+ talloc free the conn->session_info if not used in the vuid cache.
****************************************************************************/
-static void free_conn_server_info_if_unused(connection_struct *conn)
+static void free_conn_session_info_if_unused(connection_struct *conn)
{
unsigned int i;
struct vuid_cache_entry *ent;
ent = &conn->vuid_cache.array[i];
if (ent->vuid != UID_FIELD_INVALID &&
- conn->server_info == ent->server_info) {
+ conn->session_info == ent->session_info) {
return;
}
}
/* Not used, safe to free. */
- TALLOC_FREE(conn->server_info);
+ TALLOC_FREE(conn->session_info);
}
/*******************************************************************
Check if a username is OK.
- This sets up conn->server_info with a copy related to this vuser that
+ This sets up conn->session_info with a copy related to this vuser that
later code can then mess with.
********************************************************************/
static bool check_user_ok(connection_struct *conn,
uint16_t vuid,
- const struct auth_serversupplied_info *server_info,
+ const struct auth_serversupplied_info *session_info,
int snum)
{
bool valid_vuid = (vuid != UID_FIELD_INVALID);
for (i=0; i<VUID_CACHE_SIZE; i++) {
ent = &conn->vuid_cache.array[i];
if (ent->vuid == vuid) {
- free_conn_server_info_if_unused(conn);
- conn->server_info = ent->server_info;
+ free_conn_session_info_if_unused(conn);
+ conn->session_info = ent->session_info;
conn->read_only = ent->read_only;
return(True);
}
}
}
- if (!user_ok_token(server_info->unix_name,
- server_info->info3->base.domain.string,
- server_info->security_token, snum))
+ if (!user_ok_token(session_info->unix_name,
+ session_info->info3->base.domain.string,
+ session_info->security_token, snum))
return(False);
readonly_share = is_share_read_only_for_token(
- server_info->unix_name,
- server_info->info3->base.domain.string,
- server_info->security_token,
+ session_info->unix_name,
+ session_info->info3->base.domain.string,
+ session_info->security_token,
conn);
if (!readonly_share &&
- !share_access_check(server_info->security_token, lp_servicename(snum),
+ !share_access_check(session_info->security_token, lp_servicename(snum),
FILE_WRITE_DATA)) {
/* smb.conf allows r/w, but the security descriptor denies
* write. Fall back to looking at readonly. */
"security descriptor\n"));
}
- if (!share_access_check(server_info->security_token, lp_servicename(snum),
+ if (!share_access_check(session_info->security_token, lp_servicename(snum),
readonly_share ?
FILE_READ_DATA : FILE_WRITE_DATA)) {
return False;
}
admin_user = token_contains_name_in_list(
- server_info->unix_name,
- server_info->info3->base.domain.string,
- NULL, server_info->security_token, lp_admin_users(snum));
+ session_info->unix_name,
+ session_info->info3->base.domain.string,
+ NULL, session_info->security_token, lp_admin_users(snum));
if (valid_vuid) {
struct vuid_cache_entry *ent =
conn->vuid_cache.next_entry =
(conn->vuid_cache.next_entry + 1) % VUID_CACHE_SIZE;
- TALLOC_FREE(ent->server_info);
+ TALLOC_FREE(ent->session_info);
/*
- * If force_user was set, all server_info's are based on the same
+ * If force_user was set, all session_info's are based on the same
* username-based faked one.
*/
- ent->server_info = copy_serverinfo(
- conn, conn->force_user ? conn->server_info : server_info);
+ ent->session_info = copy_serverinfo(
+ conn, conn->force_user ? conn->session_info : session_info);
- if (ent->server_info == NULL) {
+ if (ent->session_info == NULL) {
ent->vuid = UID_FIELD_INVALID;
return false;
}
ent->vuid = vuid;
ent->read_only = readonly_share;
- free_conn_server_info_if_unused(conn);
- conn->server_info = ent->server_info;
+ free_conn_session_info_if_unused(conn);
+ conn->session_info = ent->session_info;
}
conn->read_only = readonly_share;
if (admin_user) {
DEBUG(2,("check_user_ok: user %s is an admin user. "
"Setting uid as %d\n",
- conn->server_info->unix_name,
+ conn->session_info->unix_name,
sec_initial_uid() ));
- conn->server_info->utok.uid = sec_initial_uid();
+ conn->session_info->utok.uid = sec_initial_uid();
}
return(True);
if (ent->vuid == vuid) {
ent->vuid = UID_FIELD_INVALID;
/*
- * We need to keep conn->server_info around
- * if it's equal to ent->server_info as a SMBulogoff
+ * We need to keep conn->session_info around
+ * if it's equal to ent->session_info as a SMBulogoff
* is often followed by a SMBtdis (with an invalid
* vuid). The debug code (or regular code in
* vfs_full_audit) wants to refer to the
- * conn->server_info pointer to print debug
+ * conn->session_info pointer to print debug
* statements. Theoretically this is a bug,
- * as once the vuid is gone the server_info
+ * as once the vuid is gone the session_info
* on the conn struct isn't valid any more,
* but there's enough code that assumes
- * conn->server_info is never null that
+ * conn->session_info is never null that
* it's easier to hold onto the old pointer
* until we get a new sessionsetupX.
* As everything is hung off the
* conn pointer as a talloc context we're not
* leaking memory here. See bug #6315. JRA.
*/
- if (conn->server_info == ent->server_info) {
- ent->server_info = NULL;
+ if (conn->session_info == ent->session_info) {
+ ent->session_info = NULL;
} else {
- TALLOC_FREE(ent->server_info);
+ TALLOC_FREE(ent->session_info);
}
ent->read_only = False;
}
bool change_to_user(connection_struct *conn, uint16 vuid)
{
- const struct auth_serversupplied_info *server_info = NULL;
+ const struct auth_serversupplied_info *session_info = NULL;
user_struct *vuser;
int snum;
gid_t gid;
*/
if((lp_security() == SEC_SHARE) && (current_user.conn == conn) &&
- (current_user.ut.uid == conn->server_info->utok.uid)) {
+ (current_user.ut.uid == conn->session_info->utok.uid)) {
DEBUG(4,("change_to_user: Skipping user change - already "
"user\n"));
return(True);
} else if ((current_user.conn == conn) &&
(vuser != NULL) && (current_user.vuid == vuid) &&
- (current_user.ut.uid == vuser->server_info->utok.uid)) {
+ (current_user.ut.uid == vuser->session_info->utok.uid)) {
DEBUG(4,("change_to_user: Skipping user change - already "
"user\n"));
return(True);
snum = SNUM(conn);
- server_info = vuser ? vuser->server_info : conn->server_info;
+ session_info = vuser ? vuser->session_info : conn->session_info;
- if (!server_info) {
+ if (!session_info) {
/* Invalid vuid sent - even with security = share. */
DEBUG(2,("change_to_user: Invalid vuid %d used on "
"share %s.\n",vuid, lp_servicename(snum) ));
return false;
}
- if (!check_user_ok(conn, vuid, server_info, snum)) {
+ if (!check_user_ok(conn, vuid, session_info, snum)) {
DEBUG(2,("change_to_user: SMB user %s (unix user %s, vuid %d) "
"not permitted access to share %s.\n",
- server_info->sanitized_username,
- server_info->unix_name, vuid,
+ session_info->sanitized_username,
+ session_info->unix_name, vuid,
lp_servicename(snum)));
return false;
}
}
/*
- * conn->server_info is now correctly set up with a copy we can mess
+ * conn->session_info is now correctly set up with a copy we can mess
* with for force_group etc.
*/
- uid = conn->server_info->utok.uid;
- gid = conn->server_info->utok.gid;
- num_groups = conn->server_info->utok.ngroups;
- group_list = conn->server_info->utok.groups;
+ uid = conn->session_info->utok.uid;
+ gid = conn->session_info->utok.gid;
+ num_groups = conn->session_info->utok.ngroups;
+ group_list = conn->session_info->utok.groups;
/*
* See if we should force group for this service.
for (i = 0; i < num_groups; i++) {
if (group_list[i]
== conn->force_group_gid) {
- conn->server_info->utok.gid =
+ conn->session_info->utok.gid =
conn->force_group_gid;
gid = conn->force_group_gid;
- gid_to_sid(&conn->server_info->security_token
+ gid_to_sid(&conn->session_info->security_token
->sids[1], gid);
break;
}
}
} else {
- conn->server_info->utok.gid = conn->force_group_gid;
+ conn->session_info->utok.gid = conn->force_group_gid;
gid = conn->force_group_gid;
- gid_to_sid(&conn->server_info->security_token->sids[1],
+ gid_to_sid(&conn->session_info->security_token->sids[1],
gid);
}
}
current_user.ut.groups = group_list;
set_sec_ctx(uid, gid, current_user.ut.ngroups, current_user.ut.groups,
- conn->server_info->security_token);
+ conn->session_info->security_token);
current_user.conn = conn;
current_user.vuid = vuid;
if (!push_sec_ctx())
return False;
- set_sec_ctx(p->server_info->utok.uid, p->server_info->utok.gid,
- p->server_info->utok.ngroups, p->server_info->utok.groups,
- p->server_info->security_token);
+ set_sec_ctx(p->session_info->utok.uid, p->session_info->utok.gid,
+ p->session_info->utok.ngroups, p->session_info->utok.groups,
+ p->session_info->security_token);
return True;
}
/****************************************************************************
Return the current user we are running effectively as on this connection.
- I'd like to make this return conn->server_info->utok.uid, but become_root()
+ I'd like to make this return conn->session_info->utok.uid, but become_root()
doesn't alter this value.
****************************************************************************/
/****************************************************************************
Return the current group we are running effectively as on this connection.
- I'd like to make this return conn->server_info->utok.gid, but become_root()
+ I'd like to make this return conn->session_info->utok.gid, but become_root()
doesn't alter this value.
****************************************************************************/
/****************************************************************************
Return the UNIX token we are running effectively as on this connection.
- I'd like to make this return &conn->server_info->utok, but become_root()
+ I'd like to make this return &conn->session_info->utok, but become_root()
doesn't alter this value.
****************************************************************************/
struct rpc_pipe_client **samr_pipe)
{
struct rpc_pipe_client *cli = NULL;
- struct auth_serversupplied_info *server_info = NULL;
+ struct auth_serversupplied_info *session_info = NULL;
NTSTATUS status;
if (cli != NULL) {
goto done;
}
- if (server_info == NULL) {
- status = make_server_info_system(mem_ctx, &server_info);
+ if (session_info == NULL) {
+ status = make_session_info_system(mem_ctx, &session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("open_samr_pipe: Could not create auth_serversupplied_info: %s\n",
nt_errstr(status)));
/* create a samr connection */
status = rpc_pipe_open_interface(mem_ctx,
&ndr_table_samr.syntax_id,
- server_info,
+ session_info,
NULL,
winbind_messaging_context(),
&cli);
struct rpc_pipe_client **lsa_pipe)
{
struct rpc_pipe_client *cli = NULL;
- struct auth_serversupplied_info *server_info = NULL;
+ struct auth_serversupplied_info *session_info = NULL;
NTSTATUS status;
if (cli != NULL) {
goto done;
}
- if (server_info == NULL) {
- status = make_server_info_system(mem_ctx, &server_info);
+ if (session_info == NULL) {
+ status = make_session_info_system(mem_ctx, &session_info);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0, ("open_lsa_pipe: Could not create auth_serversupplied_info: %s\n",
nt_errstr(status)));
/* create a lsa connection */
status = rpc_pipe_open_interface(mem_ctx,
&ndr_table_lsarpc.syntax_id,
- server_info,
+ session_info,
NULL,
winbind_messaging_context(),
&cli);