From fb5241aa9d3fe8319ff5232b8a3d1987d03ba7bf Mon Sep 17 00:00:00 2001 From: David Mulder Date: Wed, 6 Dec 2017 12:51:22 -0700 Subject: [PATCH] Revert "gpo: Create the gpo update service" This reverts commit 5662e49b49f6557c80f216f510f224bbf800f40a. Signed-off-by: David Mulder Reviewed-by: Garming Sam Reviewed-by: Andrew Bartlett --- source4/dsdb/gpo/gpo_update.c | 193 ---------------------------------- source4/dsdb/wscript_build | 9 -- 2 files changed, 202 deletions(-) delete mode 100644 source4/dsdb/gpo/gpo_update.c diff --git a/source4/dsdb/gpo/gpo_update.c b/source4/dsdb/gpo/gpo_update.c deleted file mode 100644 index 997e97ec14d8..000000000000 --- a/source4/dsdb/gpo/gpo_update.c +++ /dev/null @@ -1,193 +0,0 @@ -/* - Unix SMB/CIFS mplementation. - GPO update service - - Copyright (C) Luke Morrison 2013 - - Inspired by dns_updates.c written by Andrew Trigell 2009 - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see sysvscan */ - struct { - uint32_t interval; - struct tevent_timer *te; - struct tevent_req *subreq; - NTSTATUS status; - } sysvscan; -}; - -/* -Called when the sysvol scan has finished -*/ -static void gpoupdate_sysvscan_done(struct tevent_req *subreq) -{ - struct gpoupdate_service *service = tevent_req_callback_data(subreq, - struct - gpoupdate_service); - int ret; - int sys_errno; - - service->sysvscan.subreq = NULL; - - ret = samba_runcmd_recv(subreq, &sys_errno); - TALLOC_FREE(subreq); - if (ret != 0) { - service->sysvscan.status = - map_nt_error_from_unix_common(sys_errno); - } else { - service->sysvscan.status = NT_STATUS_OK; - } - - if (!NT_STATUS_IS_OK(service->sysvscan.status)) { - DEBUG(0, (__location__ ": Failed GPO update - %s\n", - nt_errstr(service->sysvscan.status))); - } else { - DEBUG(3, ("Completed GPO update check OK\n")); - } -} - -static NTSTATUS gpoupdate_sysvscan_schedule(struct gpoupdate_service *service); - -static void gpoupdate_scan_apply(struct gpoupdate_service *service); - -static void gpoupdate_sysvscan_handler_te(struct tevent_context *ev, - struct tevent_timer *te, - struct timeval t, void *ptr) -{ - struct gpoupdate_service *service = - talloc_get_type(ptr, struct gpoupdate_service); - - gpoupdate_scan_apply(service); - gpoupdate_sysvscan_schedule(service); -} - -static NTSTATUS gpoupdate_sysvscan_schedule(struct gpoupdate_service *service) -{ - /* - * This is configured, default to 900 sec (15 mins) in - * gpoupdate_task_init via gpoupdate:config interval - */ - service->sysvscan.te = - tevent_add_timer(service->task->event_ctx, service, - timeval_current_ofs(service->sysvscan.interval, 0), - gpoupdate_sysvscan_handler_te, service); - NT_STATUS_HAVE_NO_MEMORY(service->sysvscan.te); - return NT_STATUS_OK; -} - -static void gpoupdate_scan_apply(struct gpoupdate_service *service) -{ - const char *const *gpo_update_command = - lpcfg_gpo_update_command(service->task->lp_ctx); - const char *smbconf = lpcfg_configfile(service->task->lp_ctx); - TALLOC_FREE(service->sysvscan.subreq); - DEBUG(3, ("Calling GPO update script\n")); - service->sysvscan.subreq = samba_runcmd_send(service, - service->task->event_ctx, - timeval_current_ofs(20, 0), - 2, 0, - gpo_update_command, - smbconf, NULL); - if (service->sysvscan.subreq == NULL) { - DEBUG(0, - (__location__ - ": samba_runcmd_send() failed with no memory\n")); - return; - } - tevent_req_set_callback(service->sysvscan.subreq, - gpoupdate_sysvscan_done, service); -} - -static void gpoupdate_task_init(struct task_server *task) -{ - NTSTATUS status; - struct gpoupdate_service *service; - - if (lpcfg_server_role(task->lp_ctx) != ROLE_ACTIVE_DIRECTORY_DC) { - /* not useful for non-DC */ - return; - } - - task_server_set_title(task, "task[gpoupdate]"); - - service = talloc_zero(task, struct gpoupdate_service); - if (!service) { - task_server_terminate(task, - "gpoupdate_task_init: out of memory", - true); - return; - } - service->task = task; - task->private_data = service; - - service->system_session_info = system_session(service->task->lp_ctx); - if (!service->system_session_info) { - task_server_terminate(task, - "gpoupdate: Failed to obtain server " - "credentials\n", - true); - return; - } - - service->sysvscan.interval = lpcfg_parm_int(task->lp_ctx, NULL, - "gpoupdate", - "config interval", - 900); /* in seconds */ - status = gpoupdate_sysvscan_schedule(service); - if (!NT_STATUS_IS_OK(status)) { - task_server_terminate(task, - talloc_asprintf(task, - "gpoupdate: Failed to update " - "sysvol scan schedule: %s\n", - nt_errstr(status)), - true); - return; - } -} - -NTSTATUS server_service_gpoupdate_init(TALLOC_CTX *ctx); - -/* - register ourselves as a available server -*/ -NTSTATUS server_service_gpoupdate_init(TALLOC_CTX *ctx) -{ - struct service_details details = { - .inhibit_fork_on_accept = true, - .inhibit_pre_fork = true - }; - return register_server_service(ctx, "gpoupdate", - gpoupdate_task_init, - &details); -} diff --git a/source4/dsdb/wscript_build b/source4/dsdb/wscript_build index 328497c85906..29c6f0e4a701 100644 --- a/source4/dsdb/wscript_build +++ b/source4/dsdb/wscript_build @@ -62,15 +62,6 @@ bld.SAMBA_MODULE('service_dns_update', enabled=bld.AD_DC_BUILD_IS_ENABLED() ) -bld.SAMBA_MODULE('service_gpo_update', - source='gpo/gpo_update.c', - subsystem='service', - init_function='server_service_gpoupdate_init', - deps='samdb UTIL_RUNCMD samba-util ldb samdb-common samba-errors talloc auth_system_session samba-hostconfig', - internal_module=False, - enabled=bld.AD_DC_BUILD_IS_ENABLED() - ) - bld.SAMBA_PYTHON('python_dsdb', source='pydsdb.c', # the dependency on dcerpc here is because gensec -- 2.34.1