summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
Diffstat (limited to 'source4')
-rw-r--r--source4/auth/kerberos/clikrb5.c96
-rw-r--r--source4/dsdb/samdb/ldb_modules/entryUUID.c8
-rw-r--r--source4/libcli/ldap/ldap_ildap.c114
-rw-r--r--source4/torture/basic/locking.c34
-rw-r--r--source4/torture/nbt/winsbench.c2
-rw-r--r--source4/winbind/wb_async_helpers.c231
6 files changed, 22 insertions, 463 deletions
diff --git a/source4/auth/kerberos/clikrb5.c b/source4/auth/kerberos/clikrb5.c
index bc640c5670..cf87d13cf2 100644
--- a/source4/auth/kerberos/clikrb5.c
+++ b/source4/auth/kerberos/clikrb5.c
@@ -27,33 +27,6 @@
#ifdef HAVE_KRB5
-#if defined(HAVE_KRB5_SET_DEFAULT_IN_TKT_ETYPES) && !defined(HAVE_KRB5_SET_DEFAULT_TGS_KTYPES)
- krb5_error_code krb5_set_default_tgs_ktypes(krb5_context ctx, const krb5_enctype *enc)
-{
- return krb5_set_default_in_tkt_etypes(ctx, enc);
-}
-#endif
-
-#if defined(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS)
-/* HEIMDAL */
- void setup_kaddr( krb5_address *pkaddr, struct sockaddr *paddr)
-{
- pkaddr->addr_type = KRB5_ADDRESS_INET;
- pkaddr->address.length = sizeof(((struct sockaddr_in *)paddr)->sin_addr);
- pkaddr->address.data = (char *)&(((struct sockaddr_in *)paddr)->sin_addr);
-}
-#elif defined(HAVE_ADDRTYPE_IN_KRB5_ADDRESS)
-/* MIT */
- void setup_kaddr( krb5_address *pkaddr, struct sockaddr *paddr)
-{
- pkaddr->addrtype = ADDRTYPE_INET;
- pkaddr->length = sizeof(((struct sockaddr_in *)paddr)->sin_addr);
- pkaddr->contents = (krb5_octet *)&(((struct sockaddr_in *)paddr)->sin_addr);
-}
-#else
-#error UNKNOWN_ADDRTYPE
-#endif
-
#if defined(HAVE_KRB5_PRINCIPAL2SALT) && defined(HAVE_KRB5_USE_ENCTYPE) && defined(HAVE_KRB5_STRING_TO_KEY) && defined(HAVE_KRB5_ENCRYPT_BLOCK)
int create_kerberos_key_from_string(krb5_context context,
krb5_principal host_princ,
@@ -99,50 +72,6 @@
#error UNKNOWN_CREATE_KEY_FUNCTIONS
#endif
-#if defined(HAVE_KRB5_GET_PERMITTED_ENCTYPES)
- krb5_error_code get_kerberos_allowed_etypes(krb5_context context,
- krb5_enctype **enctypes)
-{
- return krb5_get_permitted_enctypes(context, enctypes);
-}
-#elif defined(HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES)
- krb5_error_code get_kerberos_allowed_etypes(krb5_context context,
- krb5_enctype **enctypes)
-{
- return krb5_get_default_in_tkt_etypes(context, enctypes);
-}
-#else
-#error UNKNOWN_GET_ENCTYPES_FUNCTIONS
-#endif
-
- void free_kerberos_etypes(krb5_context context,
- krb5_enctype *enctypes)
-{
-#if defined(HAVE_KRB5_FREE_KTYPES)
- krb5_free_ktypes(context, enctypes);
- return;
-#else
- SAFE_FREE(enctypes);
- return;
-#endif
-}
-
-#if defined(HAVE_KRB5_AUTH_CON_SETKEY) && !defined(HAVE_KRB5_AUTH_CON_SETUSERUSERKEY)
- krb5_error_code krb5_auth_con_setuseruserkey(krb5_context context,
- krb5_auth_context auth_context,
- krb5_keyblock *keyblock)
-{
- return krb5_auth_con_setkey(context, auth_context, keyblock);
-}
-#endif
-
-#if !defined(HAVE_KRB5_FREE_UNPARSED_NAME)
- void krb5_free_unparsed_name(krb5_context context, char *val)
-{
- SAFE_FREE(val);
-}
-#endif
-
void kerberos_free_data_contents(krb5_context context, krb5_data *pdata)
{
#if defined(HAVE_KRB5_FREE_DATA_CONTENTS)
@@ -154,31 +83,6 @@
#endif
}
- void kerberos_set_creds_enctype(krb5_creds *pcreds, int enctype)
-{
-#if defined(HAVE_KRB5_KEYBLOCK_IN_CREDS)
- KRB5_KEY_TYPE((&pcreds->keyblock)) = enctype;
-#elif defined(HAVE_KRB5_SESSION_IN_CREDS)
- KRB5_KEY_TYPE((&pcreds->session)) = enctype;
-#else
-#error UNKNOWN_KEYBLOCK_MEMBER_IN_KRB5_CREDS_STRUCT
-#endif
-}
-
- BOOL kerberos_compatible_enctypes(krb5_context context,
- krb5_enctype enctype1,
- krb5_enctype enctype2)
-{
-#if defined(HAVE_KRB5_C_ENCTYPE_COMPARE)
- krb5_boolean similar = 0;
-
- krb5_c_enctype_compare(context, enctype1, enctype2, &similar);
- return similar ? True : False;
-#elif defined(HAVE_KRB5_ENCTYPES_COMPATIBLE_KEYS)
- return krb5_enctypes_compatible_keys(context, enctype1, enctype2) ? True : False;
-#endif
-}
-
krb5_error_code smb_krb5_kt_free_entry(krb5_context context, krb5_keytab_entry *kt_entry)
{
#if defined(HAVE_KRB5_KT_FREE_ENTRY)
diff --git a/source4/dsdb/samdb/ldb_modules/entryUUID.c b/source4/dsdb/samdb/ldb_modules/entryUUID.c
index 4373863caf..51a2badfeb 100644
--- a/source4/dsdb/samdb/ldb_modules/entryUUID.c
+++ b/source4/dsdb/samdb/ldb_modules/entryUUID.c
@@ -306,7 +306,7 @@ static struct ldb_val timestamp_to_usn(struct ldb_module *module, TALLOC_CTX *ct
}
-const struct ldb_map_attribute entryUUID_attributes[] =
+static const struct ldb_map_attribute entryUUID_attributes[] =
{
/* objectGUID */
{
@@ -498,7 +498,7 @@ const struct ldb_map_objectclass entryUUID_objectclasses[] =
/* These things do not show up in wildcard searches in OpenLDAP, but
* we need them to show up in the AD-like view */
-const char * const entryUUID_wildcard_attributes[] = {
+static const char * const entryUUID_wildcard_attributes[] = {
"objectGUID",
"whenCreated",
"whenChanged",
@@ -507,7 +507,7 @@ const char * const entryUUID_wildcard_attributes[] = {
NULL
};
-const struct ldb_map_attribute nsuniqueid_attributes[] =
+static const struct ldb_map_attribute nsuniqueid_attributes[] =
{
/* objectGUID */
{
@@ -648,7 +648,7 @@ const struct ldb_map_attribute nsuniqueid_attributes[] =
/* These things do not show up in wildcard searches in OpenLDAP, but
* we need them to show up in the AD-like view */
-const char * const nsuniqueid_wildcard_attributes[] = {
+static const char * const nsuniqueid_wildcard_attributes[] = {
"objectGUID",
"whenCreated",
"whenChanged",
diff --git a/source4/libcli/ldap/ldap_ildap.c b/source4/libcli/ldap/ldap_ildap.c
index 5366e325cb..62019b8cc1 100644
--- a/source4/libcli/ldap/ldap_ildap.c
+++ b/source4/libcli/ldap/ldap_ildap.c
@@ -24,120 +24,6 @@
#include "libcli/ldap/ldap.h"
#include "libcli/ldap/ldap_client.h"
-/*
- delete a record
- */
-NTSTATUS ildap_delete(struct ldap_connection *conn, const char *dn)
-{
- struct ldap_message *msg;
- NTSTATUS status;
-
- msg = new_ldap_message(conn);
- NT_STATUS_HAVE_NO_MEMORY(msg);
-
- msg->type = LDAP_TAG_DelRequest;
- msg->r.DelRequest.dn = dn;
-
- status = ldap_transaction(conn, msg);
-
- talloc_free(msg);
-
- return status;
-}
-
-/*
- add a record
- */
-NTSTATUS ildap_add(struct ldap_connection *conn, const char *dn, struct ldap_mod **mods)
-{
- struct ldap_message *msg;
- int n, i;
- NTSTATUS status;
-
- msg = new_ldap_message(conn);
- NT_STATUS_HAVE_NO_MEMORY(msg);
-
- for (n=0;mods[n];n++) /* noop */ ;
-
- msg->type = LDAP_TAG_AddRequest;
- msg->r.AddRequest.dn = dn;
- msg->r.AddRequest.num_attributes = n;
- msg->r.AddRequest.attributes = talloc_array(msg, struct ldb_message_element, n);
- if (msg->r.AddRequest.attributes == NULL) {
- talloc_free(msg);
- return NT_STATUS_NO_MEMORY;
- }
- for (i=0;i<n;i++) {
- msg->r.AddRequest.attributes[i] = mods[i]->attrib;
- }
-
- status = ldap_transaction(conn, msg);
-
- talloc_free(msg);
-
- return status;
-}
-
-
-/*
- modify a record
- */
-NTSTATUS ildap_modify(struct ldap_connection *conn, const char *dn, struct ldap_mod **mods)
-{
- struct ldap_message *msg;
- int n, i;
- NTSTATUS status;
-
- msg = new_ldap_message(conn);
- NT_STATUS_HAVE_NO_MEMORY(msg);
-
- for (n=0;mods[n];n++) /* noop */ ;
-
- msg->type = LDAP_TAG_ModifyRequest;
- msg->r.ModifyRequest.dn = dn;
- msg->r.ModifyRequest.num_mods = n;
- msg->r.ModifyRequest.mods = talloc_array(msg, struct ldap_mod, n);
- if (msg->r.ModifyRequest.mods == NULL) {
- talloc_free(msg);
- return NT_STATUS_NO_MEMORY;
- }
- for (i=0;i<n;i++) {
- msg->r.ModifyRequest.mods[i] = *mods[i];
- }
-
- status = ldap_transaction(conn, msg);
-
- talloc_free(msg);
-
- return status;
-}
-
-
-/*
- rename a record
- */
-NTSTATUS ildap_rename(struct ldap_connection *conn, const char *dn, const char *newrdn,
- const char *parentdn, BOOL deleteolddn)
-{
- struct ldap_message *msg;
- NTSTATUS status;
-
- msg = new_ldap_message(conn);
- NT_STATUS_HAVE_NO_MEMORY(msg);
-
- msg->type = LDAP_TAG_ModifyDNRequest;
- msg->r.ModifyDNRequest.dn = dn;
- msg->r.ModifyDNRequest.newrdn = newrdn;
- msg->r.ModifyDNRequest.deleteolddn = deleteolddn;
- msg->r.ModifyDNRequest.newsuperior = parentdn;
-
- status = ldap_transaction(conn, msg);
-
- talloc_free(msg);
-
- return status;
-}
-
/*
count the returned search entries
diff --git a/source4/torture/basic/locking.c b/source4/torture/basic/locking.c
index 5570af17d6..aa3168fb08 100644
--- a/source4/torture/basic/locking.c
+++ b/source4/torture/basic/locking.c
@@ -38,9 +38,9 @@
must not use posix semantics)
2) support for lock timeouts
*/
-bool torture_locktest1(struct torture_context *tctx,
- struct smbcli_state *cli1,
- struct smbcli_state *cli2)
+static bool torture_locktest1(struct torture_context *tctx,
+ struct smbcli_state *cli1,
+ struct smbcli_state *cli2)
{
const char *fname = BASEDIR "\\lockt1.lck";
int fnum1, fnum2, fnum3;
@@ -159,8 +159,8 @@ bool torture_locktest1(struct torture_context *tctx,
3) the server denies unlock requests by an incorrect client PID
*/
-bool torture_locktest2(struct torture_context *tctx,
- struct smbcli_state *cli)
+static bool torture_locktest2(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
const char *fname = BASEDIR "\\lockt2.lck";
int fnum1, fnum2, fnum3;
@@ -271,9 +271,9 @@ bool torture_locktest2(struct torture_context *tctx,
1) the server supports the full offset range in lock requests
*/
-bool torture_locktest3(struct torture_context *tctx,
- struct smbcli_state *cli1,
- struct smbcli_state *cli2)
+static bool torture_locktest3(struct torture_context *tctx,
+ struct smbcli_state *cli1,
+ struct smbcli_state *cli2)
{
const char *fname = BASEDIR "\\lockt3.lck";
int fnum1, fnum2, i;
@@ -368,9 +368,9 @@ bool torture_locktest3(struct torture_context *tctx,
/*
looks at overlapping locks
*/
-BOOL torture_locktest4(struct torture_context *tctx,
- struct smbcli_state *cli1,
- struct smbcli_state *cli2)
+static bool torture_locktest4(struct torture_context *tctx,
+ struct smbcli_state *cli1,
+ struct smbcli_state *cli2)
{
const char *fname = BASEDIR "\\lockt4.lck";
int fnum1, fnum2, f;
@@ -530,8 +530,8 @@ BOOL torture_locktest4(struct torture_context *tctx,
/*
looks at lock upgrade/downgrade.
*/
-BOOL torture_locktest5(struct torture_context *tctx, struct smbcli_state *cli1,
- struct smbcli_state *cli2)
+static bool torture_locktest5(struct torture_context *tctx, struct smbcli_state *cli1,
+ struct smbcli_state *cli2)
{
const char *fname = BASEDIR "\\lockt5.lck";
int fnum1, fnum2, fnum3;
@@ -635,8 +635,8 @@ ret = NT_STATUS_IS_OK(smbcli_unlock(cli1->tree, fnum1, 0, 4)) &&
/*
tries the unusual lockingX locktype bits
*/
-BOOL torture_locktest6(struct torture_context *tctx,
- struct smbcli_state *cli)
+static bool torture_locktest6(struct torture_context *tctx,
+ struct smbcli_state *cli)
{
const char *fname[1] = { "\\lock6.txt" };
int i;
@@ -668,8 +668,8 @@ BOOL torture_locktest6(struct torture_context *tctx,
return True;
}
-BOOL torture_locktest7(struct torture_context *tctx,
- struct smbcli_state *cli1)
+static bool torture_locktest7(struct torture_context *tctx,
+ struct smbcli_state *cli1)
{
const char *fname = BASEDIR "\\lockt7.lck";
int fnum1;
diff --git a/source4/torture/nbt/winsbench.c b/source4/torture/nbt/winsbench.c
index 56247d8289..f06db648fc 100644
--- a/source4/torture/nbt/winsbench.c
+++ b/source4/torture/nbt/winsbench.c
@@ -43,7 +43,7 @@ struct idx_state {
struct wins_state *state;
};
-struct nbt_name generate_name(TALLOC_CTX *tctx, int idx)
+static struct nbt_name generate_name(TALLOC_CTX *tctx, int idx)
{
struct nbt_name name;
name.name = talloc_asprintf(tctx, "WINSBench%6u", idx);
diff --git a/source4/winbind/wb_async_helpers.c b/source4/winbind/wb_async_helpers.c
index 21b00adf60..662dd111dd 100644
--- a/source4/winbind/wb_async_helpers.c
+++ b/source4/winbind/wb_async_helpers.c
@@ -35,213 +35,6 @@
#include "winbind/wb_helper.h"
-struct get_schannel_creds_state {
- struct cli_credentials *wks_creds;
- struct dcerpc_pipe *p;
- struct netr_ServerReqChallenge r;
-
- struct creds_CredentialState *creds_state;
- struct netr_Credential netr_cred;
- uint32_t negotiate_flags;
- struct netr_ServerAuthenticate2 a;
-};
-
-static void get_schannel_creds_recv_anonbind(struct composite_context *creq);
-static void get_schannel_creds_recv_auth(struct rpc_request *req);
-static void get_schannel_creds_recv_chal(struct rpc_request *req);
-static void get_schannel_creds_recv_pipe(struct composite_context *ctx);
-
-struct composite_context *wb_get_schannel_creds_send(TALLOC_CTX *mem_ctx,
- struct cli_credentials *wks_creds,
- struct smbcli_tree *tree,
- struct event_context *ev)
-{
- struct composite_context *c, *creq;
- struct get_schannel_creds_state *state;
-
- c = composite_create(mem_ctx, ev);
- if (c == NULL) goto failed;
-
- state = talloc(c, struct get_schannel_creds_state);
- if (state == NULL) {
- c->status = NT_STATUS_NO_MEMORY;
- goto failed;
- }
-
- c->private_data = state;
-
- state->wks_creds = wks_creds;
-
- state->p = dcerpc_pipe_init(state, ev);
- if (state->p == NULL) {
- c->status = NT_STATUS_NO_MEMORY;
- goto failed;
- }
-
- creq = dcerpc_pipe_open_smb_send(state->p, tree, "\\netlogon");
- if (creq == NULL) {
- c->status = NT_STATUS_NO_MEMORY;
- goto failed;
- }
-
- creq->async.fn = get_schannel_creds_recv_pipe;
- creq->async.private_data = c;
-
- return c;
-
- failed:
- composite_error(c, c->status);
- return c;
-}
-
-static void get_schannel_creds_recv_pipe(struct composite_context *creq)
-{
- struct composite_context *c =
- talloc_get_type(creq->async.private_data,
- struct composite_context);
- struct get_schannel_creds_state *state =
- talloc_get_type(c->private_data,
- struct get_schannel_creds_state);
-
- c->status = dcerpc_pipe_open_smb_recv(creq);
- if (!composite_is_ok(c)) return;
-
- creq = dcerpc_bind_auth_none_send(state, state->p,
- &dcerpc_table_netlogon);
- composite_continue(c, creq, get_schannel_creds_recv_anonbind, c);
-}
-
-static void get_schannel_creds_recv_anonbind(struct composite_context *creq)
-{
- struct composite_context *c =
- talloc_get_type(creq->async.private_data,
- struct composite_context);
- struct get_schannel_creds_state *state =
- talloc_get_type(c->private_data,
- struct get_schannel_creds_state);
- struct rpc_request *req;
-
- c->status = dcerpc_bind_auth_none_recv(creq);
- if (!composite_is_ok(c)) return;
-
- state->r.in.computer_name =
- cli_credentials_get_workstation(state->wks_creds);
- state->r.in.server_name =
- talloc_asprintf(state, "\\\\%s",
- dcerpc_server_name(state->p));
- if (composite_nomem(state->r.in.server_name, c)) return;
-
- state->r.in.credentials = talloc(state, struct netr_Credential);
- if (composite_nomem(state->r.in.credentials, c)) return;
-
- state->r.out.credentials = talloc(state, struct netr_Credential);
- if (composite_nomem(state->r.out.credentials, c)) return;
-
- generate_random_buffer(state->r.in.credentials->data,
- sizeof(state->r.in.credentials->data));
-
- req = dcerpc_netr_ServerReqChallenge_send(state->p, state, &state->r);
- composite_continue_rpc(c, req, get_schannel_creds_recv_chal, c);
-}
-
-static void get_schannel_creds_recv_chal(struct rpc_request *req)
-{
- struct composite_context *c =
- talloc_get_type(req->async.private_data,
- struct composite_context);
- struct get_schannel_creds_state *state =
- talloc_get_type(c->private_data,
- struct get_schannel_creds_state);
- const struct samr_Password *mach_pwd;
-
- c->status = dcerpc_ndr_request_recv(req);
- if (!composite_is_ok(c)) return;
- c->status = state->r.out.result;
- if (!composite_is_ok(c)) return;
-
- state->creds_state = talloc(state, struct creds_CredentialState);
- if (composite_nomem(state->creds_state, c)) return;
-
- mach_pwd = cli_credentials_get_nt_hash(state->wks_creds, state);
- if (composite_nomem(mach_pwd, c)) return;
-
- state->negotiate_flags = NETLOGON_NEG_AUTH2_FLAGS;
-
- creds_client_init(state->creds_state, state->r.in.credentials,
- state->r.out.credentials, mach_pwd,
- &state->netr_cred, state->negotiate_flags);
-
- state->a.in.server_name =
- talloc_reference(state, state->r.in.server_name);
- state->a.in.account_name =
- cli_credentials_get_username(state->wks_creds);
- state->a.in.secure_channel_type =
- cli_credentials_get_secure_channel_type(state->wks_creds);
- state->a.in.computer_name =
- cli_credentials_get_workstation(state->wks_creds);
- state->a.in.negotiate_flags = &state->negotiate_flags;
- state->a.out.negotiate_flags = &state->negotiate_flags;
- state->a.in.credentials = &state->netr_cred;
- state->a.out.credentials = &state->netr_cred;
-
- req = dcerpc_netr_ServerAuthenticate2_send(state->p, state, &state->a);
- composite_continue_rpc(c, req, get_schannel_creds_recv_auth, c);
-}
-
-static void get_schannel_creds_recv_auth(struct rpc_request *req)
-{
- struct composite_context *c =
- talloc_get_type(req->async.private_data,
- struct composite_context);
- struct get_schannel_creds_state *state =
- talloc_get_type(c->private_data,
- struct get_schannel_creds_state);
-
- c->status = dcerpc_ndr_request_recv(req);
- if (!composite_is_ok(c)) return;
- c->status = state->a.out.result;
- if (!composite_is_ok(c)) return;
-
- if (!creds_client_check(state->creds_state,
- state->a.out.credentials)) {
- DEBUG(5, ("Server got us invalid creds\n"));
- composite_error(c, NT_STATUS_UNSUCCESSFUL);
- return;
- }
-
- cli_credentials_set_netlogon_creds(state->wks_creds,
- state->creds_state);
-
- composite_done(c);
-}
-
-NTSTATUS wb_get_schannel_creds_recv(struct composite_context *c,
- TALLOC_CTX *mem_ctx,
- struct dcerpc_pipe **netlogon_pipe)
-{
- NTSTATUS status = composite_wait(c);
- if (NT_STATUS_IS_OK(status)) {
- struct get_schannel_creds_state *state =
- talloc_get_type(c->private_data,
- struct get_schannel_creds_state);
- *netlogon_pipe = talloc_steal(mem_ctx, state->p);
- }
- talloc_free(c);
- return status;
-}
-
-NTSTATUS wb_get_schannel_creds(TALLOC_CTX *mem_ctx,
- struct cli_credentials *wks_creds,
- struct smbcli_tree *tree,
- struct event_context *event_ctx,
- struct dcerpc_pipe **netlogon_pipe)
-{
- struct composite_context *c =
- wb_get_schannel_creds_send(mem_ctx, wks_creds, tree,
- event_ctx);
- return wb_get_schannel_creds_recv(c, mem_ctx, netlogon_pipe);
-}
-
struct lsa_lookupsids_state {
struct composite_context *ctx;
int num_sids;
@@ -384,19 +177,6 @@ NTSTATUS wb_lsa_lookupsids_recv(struct composite_context *c,
return status;
}
-NTSTATUS wb_lsa_lookupsids(TALLOC_CTX *mem_ctx,
- struct dcerpc_pipe *lsa_pipe,
- struct policy_handle *handle,
- int num_sids, const struct dom_sid **sids,
- struct wb_sid_object ***names)
-{
- struct composite_context *c =
- wb_lsa_lookupsids_send(mem_ctx, lsa_pipe, handle,
- num_sids, sids);
- return wb_lsa_lookupnames_recv(c, mem_ctx, names);
-}
-
-
struct lsa_lookupnames_state {
struct composite_context *ctx;
@@ -526,17 +306,6 @@ NTSTATUS wb_lsa_lookupnames_recv(struct composite_context *c,
return status;
}
-NTSTATUS wb_lsa_lookupnames(TALLOC_CTX *mem_ctx,
- struct dcerpc_pipe *lsa_pipe,
- struct policy_handle *handle,
- int num_names, const char **names,
- struct wb_sid_object ***sids)
-{
- struct composite_context *c =
- wb_lsa_lookupnames_send(mem_ctx, lsa_pipe, handle,
- num_names, names);
- return wb_lsa_lookupnames_recv(c, mem_ctx, sids);
-}
#if 0