--- 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) { @@ -1118,12 +1120,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 @@ -159,7 +159,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,