From: Samuel Cabrero Date: Fri, 25 Apr 2025 16:34:42 +0000 (+0200) Subject: winbind.idl: Add wbint_NormalizeNameUnmap X-Git-Tag: tevent-0.17.0~143 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c332c911c9e65ffd8b7f112bf2339f91a7bd2184;p=thirdparty%2Fsamba.git winbind.idl: Add wbint_NormalizeNameUnmap normalize_name_unmap(), depending on the idmap config, can query LDAP to unmap the username from its alias, e.g., map posix uid to samaccountname. To avoid blocking this call should be done in the idmap child. Signed-off-by: Samuel Cabrero Reviewed-by: Volker Lendecke Reviewed-by: Andreas Schneider --- diff --git a/librpc/idl/winbind.idl b/librpc/idl/winbind.idl index 50b21a837d4..fcd66225475 100644 --- a/librpc/idl/winbind.idl +++ b/librpc/idl/winbind.idl @@ -277,6 +277,11 @@ interface winbind [out,string,charset(UTF8)] char **mapped_name ); + NTSTATUS wbint_NormalizeNameUnmap( + [in,string,charset(UTF8)] char *name, + [out,string,charset(UTF8)] char **unmapped_name + ); + /* Public methods available via IRPC */ typedef [switch_type(uint16)] union netr_LogonLevel netr_LogonLevel; diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c index 80a51d50f3e..b1809809b13 100644 --- a/source3/winbindd/winbindd_dual_srv.c +++ b/source3/winbindd/winbindd_dual_srv.c @@ -2167,4 +2167,16 @@ NTSTATUS _wbint_NormalizeNameMap(struct pipes_struct *p, return status; } +NTSTATUS _wbint_NormalizeNameUnmap(struct pipes_struct *p, + struct wbint_NormalizeNameUnmap *r) +{ + char *unmapped = NULL; + NTSTATUS status; + + status = normalize_name_unmap(p->mem_ctx, r->in.name, &unmapped); + *r->out.unmapped_name = unmapped; + + return status; +} + #include "librpc/gen_ndr/ndr_winbind_scompat.c"