Line data Source code
1 : /* 2 : * Unix SMB/CIFS implementation. 3 : * Service Control API Implementation 4 : * Copyright (C) Gerald Carter 2005. 5 : * 6 : * This program is free software; you can redistribute it and/or modify 7 : * it under the terms of the GNU General Public License as published by 8 : * the Free Software Foundation; either version 3 of the License, or 9 : * (at your option) any later version. 10 : * 11 : * This program is distributed in the hope that it will be useful, 12 : * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 : * GNU General Public License for more details. 15 : * 16 : * You should have received a copy of the GNU General Public License 17 : * along with this program; if not, see <http://www.gnu.org/licenses/>. 18 : */ 19 : 20 : #include "includes.h" 21 : #include "services/services.h" 22 : 23 : /* Implementation for internal wins service */ 24 : 25 : /********************************************************************* 26 : *********************************************************************/ 27 : 28 8 : static WERROR wins_status( const char *service, struct SERVICE_STATUS *service_status ) 29 : { 30 8 : ZERO_STRUCTP( service_status ); 31 : 32 8 : service_status->type = SERVICE_TYPE_WIN32_OWN_PROCESS; 33 8 : service_status->controls_accepted = SVCCTL_ACCEPT_NONE; 34 : 35 8 : if ( lp_we_are_a_wins_server() ) 36 4 : service_status->state = SVCCTL_RUNNING; 37 : else { 38 4 : service_status->state = SVCCTL_STOPPED; 39 4 : service_status->win32_exit_code = WERR_SERVICE_NEVER_STARTED; 40 : } 41 : 42 8 : return WERR_OK; 43 : } 44 : 45 : /********************************************************************* 46 : *********************************************************************/ 47 : 48 0 : static WERROR wins_stop( const char *service, struct SERVICE_STATUS *service_status ) 49 : { 50 0 : wins_status( service, service_status ); 51 : 52 0 : return WERR_ACCESS_DENIED; 53 : } 54 : 55 : /********************************************************************* 56 : *********************************************************************/ 57 : 58 0 : static WERROR wins_start( const char *service ) 59 : { 60 0 : return WERR_ACCESS_DENIED; 61 : } 62 : 63 : /********************************************************************* 64 : *********************************************************************/ 65 : 66 : /* struct for svcctl control to manipulate wins service */ 67 : 68 : SERVICE_CONTROL_OPS wins_svc_ops = { 69 : wins_stop, 70 : wins_start, 71 : wins_status 72 : };