-/*
+/*
Unix SMB/CIFS implementation.
crachnames implementation for the drsuapi pipe
struct smb_krb5_context *smb_krb5_context,
uint32_t format_flags, enum drsuapi_DsNameFormat format_offered,
enum drsuapi_DsNameFormat format_desired,
- struct ldb_dn *name_dn, const char *name,
- const char *domain_filter, const char *result_filter,
+ struct ldb_dn *name_dn, const char *name,
+ const char *domain_filter, const char *result_filter,
struct drsuapi_DsNameInfo1 *info1, int scope, struct ldb_dn *search_dn);
static WERROR DsCrackNameOneSyntactical(TALLOC_CTX *mem_ctx,
enum drsuapi_DsNameFormat format_offered,
enum drsuapi_DsNameFormat format_desired,
- struct ldb_dn *name_dn, const char *name,
+ struct ldb_dn *name_dn, const char *name,
struct drsuapi_DsNameInfo1 *info1);
-static WERROR dns_domain_from_principal(TALLOC_CTX *mem_ctx, struct smb_krb5_context *smb_krb5_context,
- const char *name,
- struct drsuapi_DsNameInfo1 *info1)
+static WERROR dns_domain_from_principal(TALLOC_CTX *mem_ctx, struct smb_krb5_context *smb_krb5_context,
+ const char *name,
+ struct drsuapi_DsNameInfo1 *info1)
{
krb5_error_code ret;
krb5_principal principal;
/* perhaps it's a principal with a realm, so return the right 'domain only' response */
- ret = krb5_parse_name_flags(smb_krb5_context->krb5_context, name,
+ ret = krb5_parse_name_flags(smb_krb5_context->krb5_context, name,
KRB5_PRINCIPAL_PARSE_REQUIRE_REALM, &principal);
if (ret) {
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
char *service_dn_str;
const char *directory_attrs[] = {
- "sPNMappings",
+ "sPNMappings",
NULL
};
for (i = 0; i < spnmappings->num_values; i++) {
char *mapping, *p, *str;
- mapping = talloc_strdup(tmp_ctx,
+ mapping = talloc_strdup(tmp_ctx,
(const char *)spnmappings->values[i].data);
if (!mapping) {
DEBUG(1, ("LDB_lookup_spn_alias: ldb_search: dn: %s did not have an sPNMapping\n", service_dn_str));
p = strchr(mapping, '=');
if (!p) {
- DEBUG(1, ("ldb_search: dn: %s sPNMapping malformed: %s\n",
+ DEBUG(1, ("ldb_search: dn: %s sPNMapping malformed: %s\n",
service_dn_str, mapping));
talloc_free(tmp_ctx);
return DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
enum drsuapi_DsNameStatus namestatus;
/* parse principal */
- ret = krb5_parse_name_flags(smb_krb5_context->krb5_context,
+ ret = krb5_parse_name_flags(smb_krb5_context->krb5_context,
name, KRB5_PRINCIPAL_PARSE_NO_REALM, &principal);
if (ret) {
DEBUG(2, ("Could not parse principal: %s: %s\n",
- name, smb_get_krb5_error_message(smb_krb5_context->krb5_context,
+ name, smb_get_krb5_error_message(smb_krb5_context->krb5_context,
ret, mem_ctx)));
return WERR_NOT_ENOUGH_MEMORY;
}
return WERR_OK;
}
- ret = krb5_parse_name_flags(smb_krb5_context->krb5_context, name,
+ ret = krb5_parse_name_flags(smb_krb5_context->krb5_context, name,
KRB5_PRINCIPAL_PARSE_REQUIRE_REALM, &principal);
if (ret) {
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
break;
case 0:
krb5_free_principal(smb_krb5_context->krb5_context, principal);
- return dns_domain_from_principal(mem_ctx, smb_krb5_context,
+ return dns_domain_from_principal(mem_ctx, smb_krb5_context,
name, info1);
default:
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_UNIQUE;
* match this filter, so we specify
* KRB5_PRINCIPAL_UNPARSE_DISPLAY
*/
- ret = krb5_unparse_name_flags(smb_krb5_context->krb5_context, principal,
+ ret = krb5_unparse_name_flags(smb_krb5_context->krb5_context, principal,
KRB5_PRINCIPAL_UNPARSE_NO_REALM |
KRB5_PRINCIPAL_UNPARSE_DISPLAY,
&unparsed_name_short);
free(unparsed_name_short);
return WERR_NOT_ENOUGH_MEMORY;
}
- status = DsCrackNameOneFilter(sam_ctx, mem_ctx,
- smb_krb5_context,
- format_flags, format_offered, format_desired,
- NULL, unparsed_name_short, domain_filter, result_filter,
+ status = DsCrackNameOneFilter(sam_ctx, mem_ctx,
+ smb_krb5_context,
+ format_flags, format_offered, format_desired,
+ NULL, unparsed_name_short, domain_filter, result_filter,
info1, LDB_SCOPE_SUBTREE, NULL);
free(unparsed_name_short);
return WERR_NOT_ENOUGH_MEMORY;
}
- domain_filter = talloc_asprintf(mem_ctx,
+ domain_filter = talloc_asprintf(mem_ctx,
"(&(objectClass=crossRef)(netbiosName=%s)(systemFlags:%s:=%u))",
domain_encoded,
LDB_OID_COMPARATOR_AND,
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
return WERR_OK;
}
- ldap_sid = ldap_encode_ndr_dom_sid(mem_ctx,
+ ldap_sid = ldap_encode_ndr_dom_sid(mem_ctx,
sid);
if (!ldap_sid) {
return WERR_NOT_ENOUGH_MEMORY;
char *unparsed_name;
const char *unparsed_name_encoded = NULL;
- ret = smb_krb5_init_context(mem_ctx,
- (struct loadparm_context *)ldb_get_opaque(sam_ctx, "loadparm"),
+ ret = smb_krb5_init_context(mem_ctx,
+ (struct loadparm_context *)ldb_get_opaque(sam_ctx, "loadparm"),
&smb_krb5_context);
if (ret) {
const char *unparsed_name_short_encoded = NULL;
bool principal_is_host = false;
- ret = smb_krb5_init_context(mem_ctx,
- (struct loadparm_context *)ldb_get_opaque(sam_ctx, "loadparm"),
+ ret = smb_krb5_init_context(mem_ctx,
+ (struct loadparm_context *)ldb_get_opaque(sam_ctx, "loadparm"),
&smb_krb5_context);
if (ret) {
} else if (ret == 0) {
krb5_free_principal(smb_krb5_context->krb5_context, principal);
}
- ret = krb5_parse_name_flags(smb_krb5_context->krb5_context, name,
+ ret = krb5_parse_name_flags(smb_krb5_context->krb5_context, name,
KRB5_PRINCIPAL_PARSE_NO_REALM, &principal);
if (ret) {
return dns_domain_from_principal(mem_ctx, smb_krb5_context,
domain_filter = NULL;
- ret = krb5_unparse_name_flags(smb_krb5_context->krb5_context, principal,
+ ret = krb5_unparse_name_flags(smb_krb5_context->krb5_context, principal,
KRB5_PRINCIPAL_UNPARSE_NO_REALM, &unparsed_name_short);
if (ret) {
krb5_free_principal(smb_krb5_context->krb5_context, principal);
return WERR_NOT_ENOUGH_MEMORY;
}
- result_filter = talloc_asprintf(mem_ctx, "(|(&(servicePrincipalName=%s)(objectClass=user))(&(cn=%s)(objectClass=computer)))",
+ result_filter = talloc_asprintf(mem_ctx, "(|(&(servicePrincipalName=%s)(objectClass=user))(&(cn=%s)(objectClass=computer)))",
unparsed_name_short_encoded,
computer_name_encoded);
} else {
name_dn, name, info1);
}
- return DsCrackNameOneFilter(sam_ctx, mem_ctx,
- smb_krb5_context,
- format_flags, format_offered, format_desired,
- name_dn, name,
- domain_filter, result_filter,
+ return DsCrackNameOneFilter(sam_ctx, mem_ctx,
+ smb_krb5_context,
+ format_flags, format_offered, format_desired,
+ name_dn, name,
+ domain_filter, result_filter,
info1, scope, search_dn);
}
static WERROR DsCrackNameOneSyntactical(TALLOC_CTX *mem_ctx,
enum drsuapi_DsNameFormat format_offered,
enum drsuapi_DsNameFormat format_desired,
- struct ldb_dn *name_dn, const char *name,
+ struct ldb_dn *name_dn, const char *name,
struct drsuapi_DsNameInfo1 *info1)
{
char *cracked;
}
switch (format_desired) {
- case DRSUAPI_DS_NAME_FORMAT_CANONICAL:
+ case DRSUAPI_DS_NAME_FORMAT_CANONICAL:
cracked = ldb_dn_canonical_string(mem_ctx, name_dn);
break;
case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX:
return WERR_NOT_ENOUGH_MEMORY;
}
- return WERR_OK;
+ return WERR_OK;
}
/* Given a filter for the domain, and one for the result, perform the
struct smb_krb5_context *smb_krb5_context,
uint32_t format_flags, enum drsuapi_DsNameFormat format_offered,
enum drsuapi_DsNameFormat format_desired,
- struct ldb_dn *name_dn, const char *name,
- const char *domain_filter, const char *result_filter,
+ struct ldb_dn *name_dn, const char *name,
+ const char *domain_filter, const char *result_filter,
struct drsuapi_DsNameInfo1 *info1,
int scope, struct ldb_dn *search_dn)
{
domain_attrs = _domain_attrs_nt4;
result_attrs = _result_attrs_nt4;
break;
- case DRSUAPI_DS_NAME_FORMAT_GUID:
+ case DRSUAPI_DS_NAME_FORMAT_GUID:
domain_attrs = _domain_attrs_guid;
result_attrs = _result_attrs_guid;
break;
- case DRSUAPI_DS_NAME_FORMAT_DISPLAY:
+ case DRSUAPI_DS_NAME_FORMAT_DISPLAY:
domain_attrs = _domain_attrs_display;
result_attrs = _result_attrs_display;
break;
break;
case 0:
switch (format_offered) {
- case DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL:
- return DsCrackNameSPNAlias(sam_ctx, mem_ctx,
- smb_krb5_context,
+ case DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL:
+ return DsCrackNameSPNAlias(sam_ctx, mem_ctx,
+ smb_krb5_context,
format_flags, format_offered, format_desired,
name, info1);
case DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL:
- return DsCrackNameUPN(sam_ctx, mem_ctx, smb_krb5_context,
+ return DsCrackNameUPN(sam_ctx, mem_ctx, smb_krb5_context,
format_flags, format_offered, format_desired,
name, info1);
default:
}
case DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX: {
/* Not in the virtual ldb attribute */
- return DsCrackNameOneSyntactical(mem_ctx,
- DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+ return DsCrackNameOneSyntactical(mem_ctx,
+ DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
DRSUAPI_DS_NAME_FORMAT_CANONICAL_EX,
result->dn, name, info1);
}
NULL,
LDB_SCOPE_BASE,
attrs,
- "(&(objectSid=%s)(objectClass=domain))",
+ "(&(objectSid=%s)(objectClass=domain))",
ldap_encode_ndr_dom_sid(mem_ctx, dom_sid));
if (ldb_ret != LDB_SUCCESS) {
info1->result_name = ldb_msg_find_attr_as_string(result, "displayName", NULL);
if (!info1->result_name) {
info1->result_name = ldb_msg_find_attr_as_string(result, "sAMAccountName", NULL);
- }
+ }
if (!info1->result_name) {
info1->status = DRSUAPI_DS_NAME_STATUS_NOT_FOUND;
} else {
* return the user and domain DNs. This is used in the KDC to then
* return the Keys and evaluate policy */
-NTSTATUS crack_user_principal_name(struct ldb_context *sam_ctx,
- TALLOC_CTX *mem_ctx,
- const char *user_principal_name,
+NTSTATUS crack_user_principal_name(struct ldb_context *sam_ctx,
+ TALLOC_CTX *mem_ctx,
+ const char *user_principal_name,
struct ldb_dn **user_dn,
- struct ldb_dn **domain_dn)
+ struct ldb_dn **domain_dn)
{
WERROR werr;
struct drsuapi_DsNameInfo1 info1;
werr = DsCrackNameOneName(sam_ctx, mem_ctx, 0,
DRSUAPI_DS_NAME_FORMAT_USER_PRINCIPAL,
- DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+ DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
user_principal_name,
&info1);
if (!W_ERROR_IS_OK(werr)) {
if (domain_dn) {
werr = DsCrackNameOneName(sam_ctx, mem_ctx, 0,
DRSUAPI_DS_NAME_FORMAT_CANONICAL,
- DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
- talloc_asprintf(mem_ctx, "%s/",
+ DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+ talloc_asprintf(mem_ctx, "%s/",
info1.dns_domain_name),
&info1);
if (!W_ERROR_IS_OK(werr)) {
* return the user and domain DNs. This is used in the KDC to then
* return the Keys and evaluate policy */
-NTSTATUS crack_service_principal_name(struct ldb_context *sam_ctx,
- TALLOC_CTX *mem_ctx,
- const char *service_principal_name,
+NTSTATUS crack_service_principal_name(struct ldb_context *sam_ctx,
+ TALLOC_CTX *mem_ctx,
+ const char *service_principal_name,
struct ldb_dn **user_dn,
- struct ldb_dn **domain_dn)
+ struct ldb_dn **domain_dn)
{
WERROR werr;
struct drsuapi_DsNameInfo1 info1;
werr = DsCrackNameOneName(sam_ctx, mem_ctx, 0,
DRSUAPI_DS_NAME_FORMAT_SERVICE_PRINCIPAL,
- DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+ DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
service_principal_name,
&info1);
if (!W_ERROR_IS_OK(werr)) {
if (domain_dn) {
werr = DsCrackNameOneName(sam_ctx, mem_ctx, 0,
DRSUAPI_DS_NAME_FORMAT_CANONICAL,
- DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
- talloc_asprintf(mem_ctx, "%s/",
+ DRSUAPI_DS_NAME_FORMAT_FQDN_1779,
+ talloc_asprintf(mem_ctx, "%s/",
info1.dns_domain_name),
&info1);
if (!W_ERROR_IS_OK(werr)) {
return NT_STATUS_OK;
}
-NTSTATUS crack_name_to_nt4_name(TALLOC_CTX *mem_ctx,
+NTSTATUS crack_name_to_nt4_name(TALLOC_CTX *mem_ctx,
struct ldb_context *ldb,
enum drsuapi_DsNameFormat format_offered,
- const char *name,
+ const char *name,
const char **nt4_domain, const char **nt4_account)
{
WERROR werr;
}
werr = DsCrackNameOneName(ldb, mem_ctx, 0,
- format_offered,
+ format_offered,
DRSUAPI_DS_NAME_FORMAT_NT4_ACCOUNT,
name,
&info1);