From 3fb4bd1c06a081f8f010ecfe66a9e18ed8413d66 Mon Sep 17 00:00:00 2001 From: Kai Blin Date: Sat, 2 Jun 2007 11:38:27 +0000 Subject: r23311: Updating the samba4 winbind protocol to version 18. nsswitch/winbindd_nss.h is just copied from SAMBA_3_0. nsswitch/winbind_nss_config.h is copied from SAMBA_3_0, too, but I had to drop some of the defines to make things build again. Kai (This used to be commit 553b7e146f52975b45941ba850140e312a280513) --- source4/winbind/wb_samba3_cmd.c | 15 ++++++++------- source4/winbind/wb_samba3_protocol.c | 26 ++++++++++++++++++++------ source4/winbind/wb_server.h | 1 + 3 files changed, 29 insertions(+), 13 deletions(-) (limited to 'source4/winbind') diff --git a/source4/winbind/wb_samba3_cmd.c b/source4/winbind/wb_samba3_cmd.c index 7989bec172..f60c65a1d4 100644 --- a/source4/winbind/wb_samba3_cmd.c +++ b/source4/winbind/wb_samba3_cmd.c @@ -22,6 +22,7 @@ */ #include "includes.h" +#include "nsswitch/winbind_nss_config.h" #include "nsswitch/winbindd_nss.h" #include "winbind/wb_server.h" #include "winbind/wb_async_helpers.h" @@ -111,9 +112,9 @@ NTSTATUS wbsrv_samba3_netbios_name(struct wbsrv_samba3_call *s3call) NTSTATUS wbsrv_samba3_priv_pipe_dir(struct wbsrv_samba3_call *s3call) { s3call->response.result = WINBINDD_OK; - s3call->response.extra_data = + s3call->response.extra_data.data = smbd_tmp_path(s3call, WINBINDD_SAMBA3_PRIVILEGED_SOCKET); - NT_STATUS_HAVE_NO_MEMORY(s3call->response.extra_data); + NT_STATUS_HAVE_NO_MEMORY(s3call->response.extra_data.data); return NT_STATUS_OK; } @@ -262,7 +263,7 @@ static void userdomgroups_recv_groups(struct composite_context *ctx) } s3call->response.result = WINBINDD_OK; - s3call->response.extra_data = sids_string; + s3call->response.extra_data.data = sids_string; s3call->response.length += strlen(sids_string)+1; s3call->response.data.num_entries = num_sids; @@ -328,7 +329,7 @@ static void usersids_recv_sids(struct composite_context *ctx) } s3call->response.result = WINBINDD_OK; - s3call->response.extra_data = sids_string; + s3call->response.extra_data.data = sids_string; s3call->response.length += strlen(sids_string); s3call->response.data.num_entries = num_sids; @@ -510,7 +511,7 @@ static void pam_auth_crap_recv(struct composite_context *ctx) } if (s3call->request.flags & WBFLAG_PAM_INFO3_NDR) { - s3call->response.extra_data = info3.data; + s3call->response.extra_data.data = info3.data; s3call->response.length += info3.length; } @@ -521,7 +522,7 @@ static void pam_auth_crap_recv(struct composite_context *ctx) } if (s3call->request.flags & WBFLAG_PAM_UNIX_NAME) { - s3call->response.extra_data = unix_username; + s3call->response.extra_data.data = unix_username; s3call->response.length += strlen(unix_username)+1; } @@ -654,7 +655,7 @@ static void list_trustdom_recv_doms(struct composite_context *ctx) s3call->response.result = WINBINDD_OK; if (num_domains > 0) { - s3call->response.extra_data = result; + s3call->response.extra_data.data = result; s3call->response.length += strlen(result)+1; } diff --git a/source4/winbind/wb_samba3_protocol.c b/source4/winbind/wb_samba3_protocol.c index 8580f2a163..da3e404c1e 100644 --- a/source4/winbind/wb_samba3_protocol.c +++ b/source4/winbind/wb_samba3_protocol.c @@ -21,6 +21,7 @@ */ #include "includes.h" +#include "nsswitch/winbind_nss_config.h" #include "nsswitch/winbindd_nss.h" #include "winbind/wb_server.h" #include "smbd/service_stream.h" @@ -138,14 +139,21 @@ NTSTATUS wbsrv_samba3_handle_call(struct wbsrv_samba3_call *s3call) case WINBINDD_ENDGRENT: case WINBINDD_GETGRENT: case WINBINDD_PAM_CHAUTHTOK: + case WINBINDD_PAM_LOGOFF: + case WINBINDD_PAM_CHNG_PSWD_AUTH_CRAP: case WINBINDD_LIST_USERS: case WINBINDD_LIST_GROUPS: + case WINBINDD_LOOKUPRIDS: case WINBINDD_SID_TO_UID: case WINBINDD_SID_TO_GID: + case WINBINDD_SIDS_TO_XIDS: case WINBINDD_UID_TO_SID: case WINBINDD_GID_TO_SID: - case WINBINDD_ALLOCATE_RID: - case WINBINDD_ALLOCATE_RID_AND_GID: + case WINBINDD_ALLOCATE_UID: + case WINBINDD_ALLOCATE_GID: + case WINBINDD_SET_MAPPING: + case WINBINDD_SET_HWM: + case WINBINDD_DUMP_MAPS: case WINBINDD_CHECK_MACHACC: case WINBINDD_DOMAIN_INFO: case WINBINDD_SHOW_SEQUENCE: @@ -155,13 +163,19 @@ NTSTATUS wbsrv_samba3_handle_call(struct wbsrv_samba3_call *s3call) case WINBINDD_INIT_CONNECTION: case WINBINDD_DUAL_SID2UID: case WINBINDD_DUAL_SID2GID: - case WINBINDD_DUAL_IDMAPSET: + case WINBINDD_DUAL_SIDS2XIDS: + case WINBINDD_DUAL_UID2SID: + case WINBINDD_DUAL_GID2SID: + case WINBINDD_DUAL_SET_MAPPING: + case WINBINDD_DUAL_SET_HWM: + case WINBINDD_DUAL_DUMP_MAPS: case WINBINDD_DUAL_UID2NAME: case WINBINDD_DUAL_NAME2UID: case WINBINDD_DUAL_GID2NAME: case WINBINDD_DUAL_NAME2GID: case WINBINDD_DUAL_USERINFO: case WINBINDD_DUAL_GETSIDALIASES: + case WINBINDD_CCACHE_NTLMAUTH: case WINBINDD_NUM_CMDS: DEBUG(10, ("Unimplemented winbind samba3 request %d\n", s3call->request.cmd)); @@ -178,7 +192,7 @@ static NTSTATUS wbsrv_samba3_push_reply(struct wbsrv_samba3_call *call, TALLOC_C uint8_t *extra_data; size_t extra_data_len = 0; - extra_data = call->response.extra_data; + extra_data = call->response.extra_data.data; if (extra_data) { extra_data_len = call->response.length - sizeof(call->response); @@ -189,11 +203,11 @@ static NTSTATUS wbsrv_samba3_push_reply(struct wbsrv_samba3_call *call, TALLOC_C /* don't push real pointer values into sockets */ if (extra_data) { - call->response.extra_data = (void *)0xFFFFFFFF; + call->response.extra_data.data = (void *)0xFFFFFFFF; } memcpy(blob.data, &call->response, sizeof(call->response)); /* set back the pointer */ - call->response.extra_data = extra_data; + call->response.extra_data.data = extra_data; if (extra_data) { memcpy(blob.data + sizeof(call->response), extra_data, extra_data_len); diff --git a/source4/winbind/wb_server.h b/source4/winbind/wb_server.h index 3e851fbccc..4099e32d70 100644 --- a/source4/winbind/wb_server.h +++ b/source4/winbind/wb_server.h @@ -20,6 +20,7 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +#include "nsswitch/winbind_nss_config.h" #include "nsswitch/winbindd_nss.h" -- cgit