aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/samba36/patches/250-remove_domain_logon.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/samba36/patches/250-remove_domain_logon.patch')
-rw-r--r--package/network/services/samba36/patches/250-remove_domain_logon.patch185
1 files changed, 185 insertions, 0 deletions
diff --git a/package/network/services/samba36/patches/250-remove_domain_logon.patch b/package/network/services/samba36/patches/250-remove_domain_logon.patch
new file mode 100644
index 0000000..f7582ef
--- /dev/null
+++ b/package/network/services/samba36/patches/250-remove_domain_logon.patch
@@ -0,0 +1,185 @@
+--- a/source3/rpc_server/rpc_ep_setup.c
++++ b/source3/rpc_server/rpc_ep_setup.c
+@@ -606,6 +606,7 @@ static bool samr_init_cb(void *ptr)
+ return true;
+ }
+
++#ifdef NETLOGON_SUPPORT
+ static bool netlogon_init_cb(void *ptr)
+ {
+ struct dcesrv_ep_context *ep_ctx =
+@@ -654,6 +655,7 @@ static bool netlogon_init_cb(void *ptr)
+
+ return true;
+ }
++#endif
+
+ static bool spoolss_init_cb(void *ptr)
+ {
+@@ -1116,12 +1118,15 @@ bool dcesrv_ep_setup(struct tevent_conte
+ return false;
+ }
+
++#ifdef NETLOGON_SUPPORT
+ netlogon_cb.init = netlogon_init_cb;
+ netlogon_cb.shutdown = NULL;
+ netlogon_cb.private_data = ep_ctx;
+ if (!NT_STATUS_IS_OK(rpc_netlogon_init(&netlogon_cb))) {
+ return false;
+ }
++#endif
++
+
+ rpcsrv_type = lp_parm_const_string(GLOBAL_SECTION_SNUM,
+ "rpc_server",
+--- a/source3/librpc/rpc/rpc_common.c
++++ b/source3/librpc/rpc/rpc_common.c
+@@ -103,9 +103,11 @@ static bool initialize_interfaces(void)
+ if (!smb_register_ndr_interface(&ndr_table_samr)) {
+ return false;
+ }
++#ifdef NETLOGON_SUPPORT
+ if (!smb_register_ndr_interface(&ndr_table_netlogon)) {
+ return false;
+ }
++#endif
+ if (!smb_register_ndr_interface(&ndr_table_srvsvc)) {
+ return false;
+ }
+--- a/source3/smbd/server_exit.c
++++ b/source3/smbd/server_exit.c
+@@ -156,7 +156,9 @@ static void exit_server_common(enum serv
+ rpc_winreg_shutdown();
+ #endif
+
++#ifdef NETLOGON_SUPPORT
+ rpc_netlogon_shutdown();
++#endif
+ rpc_samr_shutdown();
+ rpc_lsarpc_shutdown();
+ }
+--- a/source3/rpc_server/svcctl/srv_svcctl_nt.c
++++ b/source3/rpc_server/svcctl/srv_svcctl_nt.c
+@@ -91,9 +91,11 @@ bool init_service_op_table( void )
+ i++;
+ #endif
+
++#ifdef NETLOGON_SUPPORT
+ svcctl_ops[i].name = talloc_strdup( svcctl_ops, "NETLOGON" );
+ svcctl_ops[i].ops = &netlogon_svc_ops;
+ i++;
++#endif
+
+ #ifdef WINREG_SUPPORT
+ svcctl_ops[i].name = talloc_strdup( svcctl_ops, "RemoteRegistry" );
+--- a/source3/nmbd/nmbd_processlogon.c
++++ b/source3/nmbd/nmbd_processlogon.c
+@@ -320,6 +320,10 @@ void process_logon_packet(struct packet_
+ NTSTATUS status;
+ const char *pdc_name;
+
++#ifndef NETLOGON_SUPPORT
++ return;
++#endif
++
+ in_addr_to_sockaddr_storage(&ss, p->ip);
+ pss = iface_ip((struct sockaddr *)&ss);
+ if (!pss) {
+--- a/source3/rpcclient/rpcclient.c
++++ b/source3/rpcclient/rpcclient.c
+@@ -627,7 +627,9 @@ static struct cmd_set *rpcclient_command
+ #ifdef PRINTER_SUPPORT
+ spoolss_commands,
+ #endif
++#ifdef NETLOGON_SUPPORT
+ netlogon_commands,
++#endif
+ srvsvc_commands,
+ #ifdef DFS_SUPPORT
+ dfs_commands,
+--- a/source3/rpc_server/wkssvc/srv_wkssvc_nt.c
++++ b/source3/rpc_server/wkssvc/srv_wkssvc_nt.c
+@@ -824,6 +824,10 @@ WERROR _wkssvc_NetrJoinDomain2(struct pi
+ WERROR werr;
+ struct security_token *token = p->session_info->security_token;
+
++#ifndef NETLOGON_SUPPORT
++ return WERR_NOT_SUPPORTED;
++#endif
++
+ if (!r->in.domain_name) {
+ return WERR_INVALID_PARAM;
+ }
+@@ -901,6 +905,10 @@ WERROR _wkssvc_NetrUnjoinDomain2(struct
+ WERROR werr;
+ struct security_token *token = p->session_info->security_token;
+
++#ifndef NETLOGON_SUPPORT
++ return WERR_NOT_SUPPORTED;
++#endif
++
+ if (!r->in.account || !r->in.encrypted_password) {
+ return WERR_INVALID_PARAM;
+ }
+--- a/source3/libsmb/trusts_util.c
++++ b/source3/libsmb/trusts_util.c
+@@ -46,9 +46,11 @@ NTSTATUS trust_pw_change_and_store_it(st
+ NTSTATUS nt_status;
+
+ switch (sec_channel_type) {
++#ifdef NETLOGON_SUPPORT
+ case SEC_CHAN_WKSTA:
+ case SEC_CHAN_DOMAIN:
+ break;
++#endif
+ default:
+ return NT_STATUS_NOT_SUPPORTED;
+ }
+@@ -159,6 +161,11 @@ bool enumerate_domain_trusts( TALLOC_CTX
+ *num_domains = 0;
+ *sids = NULL;
+
++#ifndef NETLOGON_SUPPORT
++ return False;
++#endif
++
++
+ /* lookup a DC first */
+
+ if ( !get_dc_name(domain, NULL, dc_name, &dc_ss) ) {
+@@ -243,6 +250,10 @@ NTSTATUS change_trust_account_password(
+ struct cli_state *cli = NULL;
+ struct rpc_pipe_client *netlogon_pipe = NULL;
+
++#ifndef NETLOGON_SUPPORT
++ return NT_STATUS_UNSUCCESSFUL;
++#endif
++
+ DEBUG(5,("change_trust_account_password: Attempting to change trust account password in domain %s....\n",
+ domain));
+
+--- a/source3/auth/auth_domain.c
++++ b/source3/auth/auth_domain.c
+@@ -538,7 +538,9 @@ static NTSTATUS auth_init_trustdomain(st
+
+ NTSTATUS auth_domain_init(void)
+ {
++#ifdef NETLOGON_SUPPORT
+ smb_register_auth(AUTH_INTERFACE_VERSION, "trustdomain", auth_init_trustdomain);
+ smb_register_auth(AUTH_INTERFACE_VERSION, "ntdomain", auth_init_ntdomain);
++#endif
+ return NT_STATUS_OK;
+ }
+--- a/source3/smbd/process.c
++++ b/source3/smbd/process.c
+@@ -2431,8 +2431,10 @@ static bool housekeeping_fn(const struct
+ /* check if we need to reload services */
+ check_reload(sconn, time_mono(NULL));
+
++#ifdef NETLOGON_SUPPORT
+ /* Change machine password if neccessary. */
+ attempt_machine_password_change();
++#endif
+
+ /*
+ * Force a log file check.