diff options
Diffstat (limited to 'nsswitch/libwbclient/wbc_pam.c')
-rw-r--r-- | nsswitch/libwbclient/wbc_pam.c | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/nsswitch/libwbclient/wbc_pam.c b/nsswitch/libwbclient/wbc_pam.c index 4df0ffe2eb5..aed9c05fa71 100644 --- a/nsswitch/libwbclient/wbc_pam.c +++ b/nsswitch/libwbclient/wbc_pam.c @@ -623,8 +623,10 @@ wbcErr wbcCheckTrustCredentials(const char *domain, /* Trigger a change of the trust credentials for a specific domain */ _PUBLIC_ -wbcErr wbcCtxChangeTrustCredentials(struct wbcContext *ctx, const char *domain, - struct wbcAuthErrorInfo **error) +wbcErr wbcCtxChangeTrustCredentialsAt(struct wbcContext *ctx, + const char *domain, + const char *dcname, + struct wbcAuthErrorInfo **error) { struct winbindd_request request; struct winbindd_response response; @@ -638,6 +640,11 @@ wbcErr wbcCtxChangeTrustCredentials(struct wbcContext *ctx, const char *domain, sizeof(request.domain_name)-1); } + if (dcname != NULL) { + strncpy(request.data.init_conn.dcname, dcname, + sizeof(request.data.init_conn.dcname)-1); + } + /* Send request */ wbc_status = wbcRequestResponsePriv(ctx, WINBINDD_CHANGE_MACHACC, @@ -659,6 +666,22 @@ wbcErr wbcCtxChangeTrustCredentials(struct wbcContext *ctx, const char *domain, } _PUBLIC_ +wbcErr wbcChangeTrustCredentialsAt(const char *domain, + const char *dcname, + struct wbcAuthErrorInfo **error) +{ + return wbcCtxChangeTrustCredentialsAt(NULL, domain, dcname, error); +} + +_PUBLIC_ +wbcErr wbcCtxChangeTrustCredentials(struct wbcContext *ctx, + const char *domain, + struct wbcAuthErrorInfo **error) +{ + return wbcCtxChangeTrustCredentialsAt(ctx, domain, NULL, error); +} + +_PUBLIC_ wbcErr wbcChangeTrustCredentials(const char *domain, struct wbcAuthErrorInfo **error) { |