diff options
Diffstat (limited to 'source3/rpc_client')
-rw-r--r-- | source3/rpc_client/cli_lsarpc.c | 16 | ||||
-rw-r--r-- | source3/rpc_client/cli_netlogon.c | 24 | ||||
-rw-r--r-- | source3/rpc_client/cli_netlogon.h | 26 | ||||
-rw-r--r-- | source3/rpc_client/cli_pipe.c | 30 | ||||
-rw-r--r-- | source3/rpc_client/cli_pipe_schannel.c | 3 | ||||
-rw-r--r-- | source3/rpc_client/cli_spoolss.c | 5 | ||||
-rw-r--r-- | source3/rpc_client/cli_spoolss.h | 29 | ||||
-rw-r--r-- | source3/rpc_client/cli_winreg.c | 24 | ||||
-rw-r--r-- | source3/rpc_client/cli_winreg_int.c | 1 | ||||
-rw-r--r-- | source3/rpc_client/cli_winreg_int.h | 1 | ||||
-rw-r--r-- | source3/rpc_client/init_lsa.h | 24 | ||||
-rw-r--r-- | source3/rpc_client/init_netlogon.h | 24 | ||||
-rw-r--r-- | source3/rpc_client/init_samr.h | 23 | ||||
-rw-r--r-- | source3/rpc_client/init_spoolss.h | 22 | ||||
-rw-r--r-- | source3/rpc_client/rpc_transport_np.c | 1 | ||||
-rw-r--r-- | source3/rpc_client/rpc_transport_sock.c | 2 | ||||
-rw-r--r-- | source3/rpc_client/rpc_transport_tstream.c | 7 | ||||
-rw-r--r-- | source3/rpc_client/util_netlogon.h | 24 |
18 files changed, 229 insertions, 57 deletions
diff --git a/source3/rpc_client/cli_lsarpc.c b/source3/rpc_client/cli_lsarpc.c index e599571181..66192bdf54 100644 --- a/source3/rpc_client/cli_lsarpc.c +++ b/source3/rpc_client/cli_lsarpc.c @@ -187,7 +187,7 @@ static NTSTATUS dcerpc_lsa_lookup_sids_noalloc(struct dcerpc_binding_handle *h, ZERO_STRUCT(lsa_names); sid_array.num_sids = num_sids; - sid_array.sids = TALLOC_ARRAY(mem_ctx, struct lsa_SidPtr, num_sids); + sid_array.sids = talloc_array(mem_ctx, struct lsa_SidPtr, num_sids); if (sid_array.sids == NULL) { return NT_STATUS_NO_MEMORY; } @@ -354,19 +354,19 @@ static NTSTATUS dcerpc_lsa_lookup_sids_generic(struct dcerpc_binding_handle *h, bool have_unmapped = false; if (num_sids) { - if (!(domains = TALLOC_ARRAY(mem_ctx, char *, num_sids))) { + if (!(domains = talloc_array(mem_ctx, char *, num_sids))) { DEBUG(0, ("rpccli_lsa_lookup_sids(): out of memory\n")); status = NT_STATUS_NO_MEMORY; goto fail; } - if (!(names = TALLOC_ARRAY(mem_ctx, char *, num_sids))) { + if (!(names = talloc_array(mem_ctx, char *, num_sids))) { DEBUG(0, ("rpccli_lsa_lookup_sids(): out of memory\n")); status = NT_STATUS_NO_MEMORY; goto fail; } - if (!(types = TALLOC_ARRAY(mem_ctx, enum lsa_SidType, num_sids))) { + if (!(types = talloc_array(mem_ctx, enum lsa_SidType, num_sids))) { DEBUG(0, ("rpccli_lsa_lookup_sids(): out of memory\n")); status = NT_STATUS_NO_MEMORY; goto fail; @@ -589,7 +589,7 @@ static NTSTATUS dcerpc_lsa_lookup_names_generic(struct dcerpc_binding_handle *h, ZERO_STRUCT(sid_array); ZERO_STRUCT(sid_array3); - lsa_names = TALLOC_ARRAY(mem_ctx, struct lsa_String, num_names); + lsa_names = talloc_array(mem_ctx, struct lsa_String, num_names); if (lsa_names == NULL) { return NT_STATUS_NO_MEMORY; } @@ -639,20 +639,20 @@ static NTSTATUS dcerpc_lsa_lookup_names_generic(struct dcerpc_binding_handle *h, } if (num_names) { - if (!((*sids = TALLOC_ARRAY(mem_ctx, struct dom_sid, num_names)))) { + if (!((*sids = talloc_array(mem_ctx, struct dom_sid, num_names)))) { DEBUG(0, ("cli_lsa_lookup_sids(): out of memory\n")); *presult = NT_STATUS_NO_MEMORY; goto done; } - if (!((*types = TALLOC_ARRAY(mem_ctx, enum lsa_SidType, num_names)))) { + if (!((*types = talloc_array(mem_ctx, enum lsa_SidType, num_names)))) { DEBUG(0, ("cli_lsa_lookup_sids(): out of memory\n")); *presult = NT_STATUS_NO_MEMORY; goto done; } if (dom_names != NULL) { - *dom_names = TALLOC_ARRAY(mem_ctx, const char *, num_names); + *dom_names = talloc_array(mem_ctx, const char *, num_names); if (*dom_names == NULL) { DEBUG(0, ("cli_lsa_lookup_sids(): out of memory\n")); *presult = NT_STATUS_NO_MEMORY; diff --git a/source3/rpc_client/cli_netlogon.c b/source3/rpc_client/cli_netlogon.c index bd3232d2cd..3c685fd9a7 100644 --- a/source3/rpc_client/cli_netlogon.c +++ b/source3/rpc_client/cli_netlogon.c @@ -177,7 +177,7 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli, ZERO_STRUCT(ret_creds); - logon = TALLOC_ZERO_P(mem_ctx, union netr_LogonLevel); + logon = talloc_zero(mem_ctx, union netr_LogonLevel); if (!logon) { return NT_STATUS_NO_MEMORY; } @@ -185,7 +185,7 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli, if (workstation) { fstr_sprintf( clnt_name_slash, "\\\\%s", workstation ); } else { - fstr_sprintf( clnt_name_slash, "\\\\%s", global_myname() ); + fstr_sprintf( clnt_name_slash, "\\\\%s", lp_netbios_name() ); } /* Initialise input parameters */ @@ -200,7 +200,7 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli, struct samr_Password lmpassword; struct samr_Password ntpassword; - password_info = TALLOC_ZERO_P(mem_ctx, struct netr_PasswordInfo); + password_info = talloc_zero(mem_ctx, struct netr_PasswordInfo); if (!password_info) { return NT_STATUS_NO_MEMORY; } @@ -240,7 +240,7 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli, ZERO_STRUCT(lm); ZERO_STRUCT(nt); - network_info = TALLOC_ZERO_P(mem_ctx, struct netr_NetworkInfo); + network_info = talloc_zero(mem_ctx, struct netr_NetworkInfo); if (!network_info) { return NT_STATUS_NO_MEMORY; } @@ -279,7 +279,7 @@ NTSTATUS rpccli_netlogon_sam_logon(struct rpc_pipe_client *cli, status = dcerpc_netr_LogonSamLogon(b, mem_ctx, cli->srv_name_slash, - global_myname(), + lp_netbios_name(), &clnt_creds, &ret_creds, logon_type, @@ -388,12 +388,12 @@ NTSTATUS rpccli_netlogon_sam_network_logon(struct rpc_pipe_client *cli, ZERO_STRUCT(lm); ZERO_STRUCT(nt); - logon = TALLOC_ZERO_P(mem_ctx, union netr_LogonLevel); + logon = talloc_zero(mem_ctx, union netr_LogonLevel); if (!logon) { return NT_STATUS_NO_MEMORY; } - network_info = TALLOC_ZERO_P(mem_ctx, struct netr_NetworkInfo); + network_info = talloc_zero(mem_ctx, struct netr_NetworkInfo); if (!network_info) { return NT_STATUS_NO_MEMORY; } @@ -441,7 +441,7 @@ NTSTATUS rpccli_netlogon_sam_network_logon(struct rpc_pipe_client *cli, status = dcerpc_netr_LogonSamLogon(b, mem_ctx, server_name_slash, - global_myname(), + lp_netbios_name(), &clnt_creds, &ret_creds, NetlogonNetworkInformation, @@ -505,12 +505,12 @@ NTSTATUS rpccli_netlogon_sam_network_logon_ex(struct rpc_pipe_client *cli, ZERO_STRUCT(lm); ZERO_STRUCT(nt); - logon = TALLOC_ZERO_P(mem_ctx, union netr_LogonLevel); + logon = talloc_zero(mem_ctx, union netr_LogonLevel); if (!logon) { return NT_STATUS_NO_MEMORY; } - network_info = TALLOC_ZERO_P(mem_ctx, struct netr_NetworkInfo); + network_info = talloc_zero(mem_ctx, struct netr_NetworkInfo); if (!network_info) { return NT_STATUS_NO_MEMORY; } @@ -556,7 +556,7 @@ NTSTATUS rpccli_netlogon_sam_network_logon_ex(struct rpc_pipe_client *cli, status = dcerpc_netr_LogonSamLogonEx(b, mem_ctx, server_name_slash, - global_myname(), + lp_netbios_name(), NetlogonNetworkInformation, logon, validation_level, @@ -608,7 +608,7 @@ NTSTATUS rpccli_netlogon_set_trust_password(struct rpc_pipe_client *cli, result = rpccli_netlogon_setup_creds(cli, cli->desthost, /* server name */ lp_workgroup(), /* domain */ - global_myname(), /* client name */ + lp_netbios_name(), /* client name */ account_name, /* machine account name */ orig_trust_passwd_hash, sec_channel_type, diff --git a/source3/rpc_client/cli_netlogon.h b/source3/rpc_client/cli_netlogon.h index 808a4283ce..ad59d5b203 100644 --- a/source3/rpc_client/cli_netlogon.h +++ b/source3/rpc_client/cli_netlogon.h @@ -1,3 +1,28 @@ +/* + Unix SMB/CIFS implementation. + NT Domain Authentication SMB / MSRPC client + Copyright (C) Andrew Tridgell 1992-2000 + Copyright (C) Jeremy Allison 1998. + Largely re-written by Jeremy Allison (C) 2005. + Copyright (C) Guenther Deschner 2008. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _RPC_CLIENT_CLI_NETLOGON_H_ +#define _RPC_CLIENT_CLI_NETLOGON_H_ + /* The following definitions come from rpc_client/cli_netlogon.c */ NTSTATUS rpccli_netlogon_setup_creds(struct rpc_pipe_client *cli, @@ -49,3 +74,4 @@ NTSTATUS rpccli_netlogon_set_trust_password(struct rpc_pipe_client *cli, const unsigned char new_trust_passwd_hash[16], enum netr_SchannelType sec_channel_type); +#endif /* _RPC_CLIENT_CLI_NETLOGON_H_ */ diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index d7f990af2c..0b9470620d 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -19,12 +19,12 @@ */ #include "includes.h" +#include "../lib/util/tevent_ntstatus.h" #include "librpc/gen_ndr/ndr_epmapper_c.h" #include "../librpc/gen_ndr/ndr_schannel.h" #include "../librpc/gen_ndr/ndr_dssetup.h" #include "../libcli/auth/schannel.h" #include "../libcli/auth/spnego.h" -#include "smb_krb5.h" #include "../libcli/auth/ntlmssp.h" #include "ntlmssp_wrap.h" #include "librpc/gen_ndr/ndr_dcerpc.h" @@ -33,7 +33,7 @@ #include "librpc/crypto/spnego.h" #include "rpc_dce.h" #include "cli_pipe.h" -#include "ntdomain.h" +#include "client.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_RPC_CLI @@ -469,11 +469,7 @@ static NTSTATUS cli_pipe_validate_current_pdu(TALLOC_CTX *mem_ctx, pkt->u.fault.status), rpccli_pipe_txt(talloc_tos(), cli))); - if (NT_STATUS_IS_OK(NT_STATUS(pkt->u.fault.status))) { - return NT_STATUS_UNSUCCESSFUL; - } else { - return NT_STATUS(pkt->u.fault.status); - } + return dcerpc_fault_to_nt_status(pkt->u.fault.status); default: DEBUG(0, (__location__ "Unknown packet type %u received " @@ -610,7 +606,7 @@ static void cli_api_pipe_write_done(struct tevent_req *subreq) return; } - state->rdata = TALLOC_ARRAY(state, uint8_t, RPC_HEADER_LEN); + state->rdata = talloc_array(state, uint8_t, RPC_HEADER_LEN); if (tevent_req_nomem(state->rdata, req)) { return; } @@ -1091,7 +1087,7 @@ static NTSTATUS create_schannel_auth_rpc_bind_req(struct rpc_pipe_client *cli, r.Flags = NL_FLAG_OEM_NETBIOS_DOMAIN_NAME | NL_FLAG_OEM_NETBIOS_COMPUTER_NAME; r.oem_netbios_domain.a = cli->auth->domain; - r.oem_netbios_computer.a = global_myname(); + r.oem_netbios_computer.a = lp_netbios_name(); status = dcerpc_push_schannel_bind(cli, &r, auth_token); if (!NT_STATUS_IS_OK(status)) { @@ -2334,7 +2330,7 @@ static NTSTATUS rpccli_ntlmssp_bind_data(TALLOC_CTX *mem_ctx, } status = auth_ntlmssp_client_start(NULL, - global_myname(), + lp_netbios_name(), lp_workgroup(), lp_client_ntlmv2_auth(), &ntlmssp_ctx); @@ -2435,7 +2431,7 @@ static NTSTATUS rpc_pipe_open_tcp_port(TALLOC_CTX *mem_ctx, const char *host, NTSTATUS status; int fd; - result = TALLOC_ZERO_P(mem_ctx, struct rpc_pipe_client); + result = talloc_zero(mem_ctx, struct rpc_pipe_client); if (result == NULL) { return NT_STATUS_NO_MEMORY; } @@ -2544,7 +2540,7 @@ static NTSTATUS rpc_pipe_get_tcp_port(const char *host, /* create tower for asking the epmapper */ - map_binding = TALLOC_ZERO_P(tmp_ctx, struct dcerpc_binding); + map_binding = talloc_zero(tmp_ctx, struct dcerpc_binding); if (map_binding == NULL) { status = NT_STATUS_NO_MEMORY; goto done; @@ -2555,7 +2551,7 @@ static NTSTATUS rpc_pipe_get_tcp_port(const char *host, map_binding->host = host; /* needed? */ map_binding->endpoint = "0"; /* correct? needed? */ - map_tower = TALLOC_ZERO_P(tmp_ctx, struct epm_twr_t); + map_tower = talloc_zero(tmp_ctx, struct epm_twr_t); if (map_tower == NULL) { status = NT_STATUS_NO_MEMORY; goto done; @@ -2569,14 +2565,14 @@ static NTSTATUS rpc_pipe_get_tcp_port(const char *host, /* allocate further parameters for the epm_Map call */ - res_towers = TALLOC_ARRAY(tmp_ctx, struct epm_twr_t, max_towers); + res_towers = talloc_array(tmp_ctx, struct epm_twr_t, max_towers); if (res_towers == NULL) { status = NT_STATUS_NO_MEMORY; goto done; } towers.twr = res_towers; - entry_handle = TALLOC_ZERO_P(tmp_ctx, struct policy_handle); + entry_handle = talloc_zero(tmp_ctx, struct policy_handle); if (entry_handle == NULL) { status = NT_STATUS_NO_MEMORY; goto done; @@ -2586,7 +2582,7 @@ static NTSTATUS rpc_pipe_get_tcp_port(const char *host, status = dcerpc_epm_Map(epm_handle, tmp_ctx, - CONST_DISCARD(struct GUID *, + discard_const_p(struct GUID, &(abstract_syntax->uuid)), map_tower, entry_handle, @@ -2760,7 +2756,7 @@ static NTSTATUS rpc_pipe_open_np(struct cli_state *cli, return NT_STATUS_INVALID_HANDLE; } - result = TALLOC_ZERO_P(NULL, struct rpc_pipe_client); + result = talloc_zero(NULL, struct rpc_pipe_client); if (result == NULL) { return NT_STATUS_NO_MEMORY; } diff --git a/source3/rpc_client/cli_pipe_schannel.c b/source3/rpc_client/cli_pipe_schannel.c index 0535e930be..f48c4c7318 100644 --- a/source3/rpc_client/cli_pipe_schannel.c +++ b/source3/rpc_client/cli_pipe_schannel.c @@ -26,6 +26,7 @@ #include "librpc/gen_ndr/ndr_dcerpc.h" #include "librpc/rpc/dcerpc.h" #include "passdb.h" +#include "client.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_RPC_CLI @@ -57,7 +58,7 @@ static NTSTATUS get_schannel_session_key_common(struct rpc_pipe_client *netlogon status = rpccli_netlogon_setup_creds(netlogon_pipe, cli->desthost, /* server name */ domain, /* domain */ - global_myname(), /* client name */ + lp_netbios_name(), /* client name */ machine_account, /* machine account name */ machine_pwd, sec_chan_type, diff --git a/source3/rpc_client/cli_spoolss.c b/source3/rpc_client/cli_spoolss.c index 831da85205..5c8448b29b 100644 --- a/source3/rpc_client/cli_spoolss.c +++ b/source3/rpc_client/cli_spoolss.c @@ -26,7 +26,6 @@ #include "rpc_client/rpc_client.h" #include "../librpc/gen_ndr/ndr_spoolss_c.h" #include "rpc_client/cli_spoolss.h" -#include "ntdomain.h" /********************************************************************** convencience wrapper around rpccli_spoolss_OpenPrinterEx @@ -48,7 +47,7 @@ WERROR rpccli_spoolss_openprinter_ex(struct rpc_pipe_client *cli, ZERO_STRUCT(devmode_ctr); level1.size = 28; - level1.client = talloc_asprintf(mem_ctx, "\\\\%s", global_myname()); + level1.client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name()); W_ERROR_HAVE_NO_MEMORY(level1.client); level1.user = cli->auth->user_name; level1.build = 1381; @@ -231,7 +230,7 @@ WERROR rpccli_spoolss_addprinterex(struct rpc_pipe_client *cli, level1.major = 2; level1.minor = 0; level1.processor = 0; - level1.client = talloc_asprintf(mem_ctx, "\\\\%s", global_myname()); + level1.client = talloc_asprintf(mem_ctx, "\\\\%s", lp_netbios_name()); W_ERROR_HAVE_NO_MEMORY(level1.client); level1.user = cli->auth->user_name; diff --git a/source3/rpc_client/cli_spoolss.h b/source3/rpc_client/cli_spoolss.h index 285a34fab4..9883874cd6 100644 --- a/source3/rpc_client/cli_spoolss.h +++ b/source3/rpc_client/cli_spoolss.h @@ -1,3 +1,30 @@ +/* + Unix SMB/CIFS implementation. + RPC pipe client + + Copyright (C) Gerald Carter 2001-2005, + Copyright (C) Tim Potter 2000-2002, + Copyright (C) Andrew Tridgell 1994-2000, + Copyright (C) Jean-Francois Micouleau 1999-2000. + Copyright (C) Jeremy Allison 2005. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _RPC_CLIENT_CLI_SPOOLSS_H_ +#define _RPC_CLIENT_CLI_SPOOLSS_H_ + /* The following definitions come from rpc_client/cli_spoolss.c */ WERROR rpccli_spoolss_openprinter_ex(struct rpc_pipe_client *cli, @@ -122,3 +149,5 @@ WERROR rpccli_spoolss_enumprinterdataex(struct rpc_pipe_client *cli, uint32_t offered, uint32_t *count, struct spoolss_PrinterEnumValues **info); + +#endif /* _RPC_CLIENT_CLI_SPOOLSS_H_ */ diff --git a/source3/rpc_client/cli_winreg.c b/source3/rpc_client/cli_winreg.c index 2517dbc50a..e5ebc25ed8 100644 --- a/source3/rpc_client/cli_winreg.c +++ b/source3/rpc_client/cli_winreg.c @@ -33,7 +33,7 @@ NTSTATUS dcerpc_winreg_query_dword(TALLOC_CTX *mem_ctx, WERROR *pwerr) { struct winreg_String wvalue; - enum winreg_Type type; + enum winreg_Type type = REG_NONE; uint32_t value_len = 0; uint32_t data_size = 0; WERROR result = WERR_OK; @@ -69,7 +69,7 @@ NTSTATUS dcerpc_winreg_query_dword(TALLOC_CTX *mem_ctx, return status; } - blob = data_blob_talloc(mem_ctx, NULL, data_size); + blob = data_blob_talloc_zero(mem_ctx, data_size); if (blob.data == NULL) { *pwerr = WERR_NOMEM; return status; @@ -108,13 +108,14 @@ NTSTATUS dcerpc_winreg_query_binary(TALLOC_CTX *mem_ctx, WERROR *pwerr) { struct winreg_String wvalue; - enum winreg_Type type; + enum winreg_Type type = REG_NONE; WERROR result = WERR_OK; uint32_t value_len = 0; uint32_t data_size = 0; NTSTATUS status; DATA_BLOB blob; + ZERO_STRUCT(wvalue); wvalue.name = value; status = dcerpc_winreg_QueryValue(h, @@ -139,7 +140,7 @@ NTSTATUS dcerpc_winreg_query_binary(TALLOC_CTX *mem_ctx, return status; } - blob = data_blob_talloc(mem_ctx, NULL, data_size); + blob = data_blob_talloc_zero(mem_ctx, data_size); if (blob.data == NULL) { *pwerr = WERR_NOMEM; return status; @@ -179,7 +180,7 @@ NTSTATUS dcerpc_winreg_query_multi_sz(TALLOC_CTX *mem_ctx, WERROR *pwerr) { struct winreg_String wvalue; - enum winreg_Type type; + enum winreg_Type type = REG_NONE; WERROR result = WERR_OK; uint32_t value_len = 0; uint32_t data_size = 0; @@ -210,7 +211,7 @@ NTSTATUS dcerpc_winreg_query_multi_sz(TALLOC_CTX *mem_ctx, return status; } - blob = data_blob_talloc(mem_ctx, NULL, data_size); + blob = data_blob_talloc_zero(mem_ctx, data_size); if (blob.data == NULL) { *pwerr = WERR_NOMEM; return status; @@ -254,7 +255,7 @@ NTSTATUS dcerpc_winreg_query_sz(TALLOC_CTX *mem_ctx, WERROR *pwerr) { struct winreg_String wvalue; - enum winreg_Type type; + enum winreg_Type type = REG_NONE; WERROR result = WERR_OK; uint32_t value_len = 0; uint32_t data_size = 0; @@ -285,7 +286,7 @@ NTSTATUS dcerpc_winreg_query_sz(TALLOC_CTX *mem_ctx, return status; } - blob = data_blob_talloc(mem_ctx, NULL, data_size); + blob = data_blob_talloc_zero(mem_ctx, data_size); if (blob.data == NULL) { *pwerr = WERR_NOMEM; return status; @@ -380,13 +381,14 @@ NTSTATUS dcerpc_winreg_set_dword(TALLOC_CTX *mem_ctx, uint32_t data, WERROR *pwerr) { - struct winreg_String wvalue = { 0, }; + struct winreg_String wvalue; DATA_BLOB blob; WERROR result = WERR_OK; NTSTATUS status; + ZERO_STRUCT(wvalue); wvalue.name = value; - blob = data_blob_talloc(mem_ctx, NULL, 4); + blob = data_blob_talloc_zero(mem_ctx, 4); SIVAL(blob.data, 0, data); status = dcerpc_winreg_SetValue(h, @@ -615,7 +617,7 @@ NTSTATUS dcerpc_winreg_add_multi_sz(TALLOC_CTX *mem_ctx, /* count the elements */ for (p = a, i = 0; p && *p; p++, i++); - p = TALLOC_REALLOC_ARRAY(mem_ctx, a, const char *, i + 2); + p = talloc_realloc(mem_ctx, a, const char *, i + 2); if (p == NULL) { *pwerr = WERR_NOMEM; return NT_STATUS_OK; diff --git a/source3/rpc_client/cli_winreg_int.c b/source3/rpc_client/cli_winreg_int.c index 8e11ae832d..1828b419a9 100644 --- a/source3/rpc_client/cli_winreg_int.c +++ b/source3/rpc_client/cli_winreg_int.c @@ -21,7 +21,6 @@ #include "includes.h" #include "include/registry.h" -#include "utils/net_registry_util.h" #include "librpc/gen_ndr/ndr_winreg_c.h" #include "rpc_client/cli_winreg_int.h" #include "rpc_server/rpc_ncacn_np.h" diff --git a/source3/rpc_client/cli_winreg_int.h b/source3/rpc_client/cli_winreg_int.h index f175c17f5c..6e9d07f95c 100644 --- a/source3/rpc_client/cli_winreg_int.h +++ b/source3/rpc_client/cli_winreg_int.h @@ -23,6 +23,7 @@ #define CLI_WINREG_INT_H struct auth_serversupplied_info; +struct dcerpc_binding_handle; /** * @brief Connect to the interal winreg server and open the given key. diff --git a/source3/rpc_client/init_lsa.h b/source3/rpc_client/init_lsa.h index 670caed212..e4e5c11963 100644 --- a/source3/rpc_client/init_lsa.h +++ b/source3/rpc_client/init_lsa.h @@ -1,3 +1,25 @@ +/* + * Unix SMB/CIFS implementation. + * RPC Pipe client / server routines + * Copyright (C) Guenther Deschner 2008. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _RPC_CLIENT_INIT_LSA_H_ +#define _RPC_CLIENT_INIT_LSA_H_ + struct lsa_String; struct lsa_StringLarge; struct lsa_AsciiString; @@ -9,3 +31,5 @@ void init_lsa_String(struct lsa_String *name, const char *s); void init_lsa_StringLarge(struct lsa_StringLarge *name, const char *s); void init_lsa_AsciiString(struct lsa_AsciiString *name, const char *s); void init_lsa_AsciiStringLarge(struct lsa_AsciiStringLarge *name, const char *s); + +#endif /* _RPC_CLIENT_INIT_LSA_H_ */ diff --git a/source3/rpc_client/init_netlogon.h b/source3/rpc_client/init_netlogon.h index d87a9ea493..826d0c56bb 100644 --- a/source3/rpc_client/init_netlogon.h +++ b/source3/rpc_client/init_netlogon.h @@ -1,5 +1,29 @@ +/* + * Unix SMB/CIFS implementation. + * RPC Pipe client / server routines + * Copyright (C) Guenther Deschner 2008. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _RPC_CLIENT_INIT_NETLOGON_H_ +#define _RPC_CLIENT_INIT_NETLOGON_H_ + /* The following definitions come from rpc_client/init_netlogon.c */ void init_netr_CryptPassword(const char *pwd, unsigned char session_key[16], struct netr_CryptPassword *pwd_buf); + +#endif /* _RPC_CLIENT_INIT_NETLOGON_H_ */ diff --git a/source3/rpc_client/init_samr.h b/source3/rpc_client/init_samr.h index 1ddaef6615..223fa91e3d 100644 --- a/source3/rpc_client/init_samr.h +++ b/source3/rpc_client/init_samr.h @@ -1,3 +1,25 @@ +/* + * Unix SMB/CIFS implementation. + * RPC Pipe client / server routines + * Copyright (C) Guenther Deschner 2008. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _RPC_CLIENT_INIT_SAMR_H_ +#define _RPC_CLIENT_INIT_SAMR_H_ + /* The following definitions come from rpc_client/init_samr.c */ void init_samr_CryptPasswordEx(const char *pwd, @@ -7,3 +29,4 @@ void init_samr_CryptPassword(const char *pwd, DATA_BLOB *session_key, struct samr_CryptPassword *pwd_buf); +#endif /* _RPC_CLIENT_INIT_SAMR_H_ */ diff --git a/source3/rpc_client/init_spoolss.h b/source3/rpc_client/init_spoolss.h index 60ee041ae5..a9374453e1 100644 --- a/source3/rpc_client/init_spoolss.h +++ b/source3/rpc_client/init_spoolss.h @@ -1,3 +1,24 @@ +/* + * Unix SMB/CIFS implementation. + * RPC Pipe client / server routines + * Copyright (C) Guenther Deschner 2009. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _RPC_CLIENT_INIT_SPOOLSS_H_ +#define _RPC_CLIENT_INIT_SPOOLSS_H_ /* The following definitions come from rpc_client/init_spoolss.c */ @@ -14,3 +35,4 @@ WERROR push_spoolss_PrinterData(TALLOC_CTX *mem_ctx, DATA_BLOB *blob, void spoolss_printerinfo2_to_setprinterinfo2(const struct spoolss_PrinterInfo2 *i, struct spoolss_SetPrinterInfo2 *s); +#endif /* _RPC_CLIENT_INIT_SPOOLSS_H_ */ diff --git a/source3/rpc_client/rpc_transport_np.c b/source3/rpc_client/rpc_transport_np.c index 2be0162144..c66d4b8022 100644 --- a/source3/rpc_client/rpc_transport_np.c +++ b/source3/rpc_client/rpc_transport_np.c @@ -18,6 +18,7 @@ */ #include "includes.h" +#include "../lib/util/tevent_ntstatus.h" #include "rpc_client/rpc_transport.h" #include "libsmb/cli_np_tstream.h" diff --git a/source3/rpc_client/rpc_transport_sock.c b/source3/rpc_client/rpc_transport_sock.c index 71f979c2af..a833e4469a 100644 --- a/source3/rpc_client/rpc_transport_sock.c +++ b/source3/rpc_client/rpc_transport_sock.c @@ -18,8 +18,8 @@ */ #include "includes.h" +#include "../lib/tsocket/tsocket.h" #include "rpc_client/rpc_transport.h" -#include "../lib/async_req/async_sock.h" #undef DBGC_CLASS #define DBGC_CLASS DBGC_RPC_CLI diff --git a/source3/rpc_client/rpc_transport_tstream.c b/source3/rpc_client/rpc_transport_tstream.c index 248b09f049..488c093d3b 100644 --- a/source3/rpc_client/rpc_transport_tstream.c +++ b/source3/rpc_client/rpc_transport_tstream.c @@ -18,6 +18,7 @@ */ #include "includes.h" +#include "../lib/util/tevent_ntstatus.h" #include "rpc_client/rpc_transport.h" #include "lib/tsocket/tsocket.h" #include "libsmb/cli_np_tstream.h" @@ -201,7 +202,7 @@ static struct tevent_req *rpc_tstream_read_send(TALLOC_CTX *mem_ctx, return tevent_req_post(req, ev); } - endtime = timeval_current_ofs(0, transp->timeout * 1000); + endtime = timeval_current_ofs_msec(transp->timeout); if (!tevent_req_set_endtime(subreq, ev, endtime)) { goto fail; } @@ -285,7 +286,7 @@ static struct tevent_req *rpc_tstream_write_send(TALLOC_CTX *mem_ctx, goto fail; } - endtime = timeval_current_ofs(0, transp->timeout * 1000); + endtime = timeval_current_ofs_msec(transp->timeout); if (!tevent_req_set_endtime(subreq, ev, endtime)) { goto fail; } @@ -373,7 +374,7 @@ static struct tevent_req *rpc_tstream_trans_send(TALLOC_CTX *mem_ctx, state->req.iov_base = discard_const_p(void *, data); state->max_rdata_len = max_rdata_len; - endtime = timeval_current_ofs(0, transp->timeout * 1000); + endtime = timeval_current_ofs_msec(transp->timeout); subreq = tstream_writev_queue_send(state, ev, transp->stream, diff --git a/source3/rpc_client/util_netlogon.h b/source3/rpc_client/util_netlogon.h index 42e4326f7d..cea9787acb 100644 --- a/source3/rpc_client/util_netlogon.h +++ b/source3/rpc_client/util_netlogon.h @@ -1,5 +1,29 @@ +/* + Unix SMB/CIFS implementation. + Authentication utility functions + Copyright (C) Volker Lendecke 2010 + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. +*/ + +#ifndef _RPC_CLIENT_UTIL_NETLOGON_H_ +#define _RPC_CLIENT_UTIL_NETLOGON_H_ + /* The following definitions come from rpc_client/util_netlogon.c */ NTSTATUS copy_netr_SamBaseInfo(TALLOC_CTX *mem_ctx, const struct netr_SamBaseInfo *in, struct netr_SamBaseInfo *out); + +#endif /* _RPC_CLIENT_UTIL_NETLOGON_H_ */ |