1 /* 2 * winrc/unbound-service-remove.c - windows services installation util 3 * 4 * Copyright (c) 2009, NLnet Labs. All rights reserved. 5 * 6 * This software is open source. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 12 * Redistributions of source code must retain the above copyright notice, 13 * this list of conditions and the following disclaimer. 14 * 15 * Redistributions in binary form must reproduce the above copyright notice, 16 * this list of conditions and the following disclaimer in the documentation 17 * and/or other materials provided with the distribution. 18 * 19 * Neither the name of the NLNET LABS nor the names of its contributors may 20 * be used to endorse or promote products derived from this software without 21 * specific prior written permission. 22 * 23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 26 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 27 * HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 28 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED 29 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF 31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING 32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 34 */ 35 36 /** 37 * \file 38 * 39 * This file contains functions to integrate with the windows services API. 40 * This means it handles the commandline switches to install and remove 41 * the service (via CreateService and DeleteService), it handles 42 * the ServiceMain() main service entry point when started as a service, 43 * and it handles the Handler[_ex]() to process requests to the service 44 * (such as start and stop and status). 45 */ 46 #include "config.h" 47 #include "winrc/w_inst.h" 48 49 /** Remove service main */ 50 int main(int argc, char** argv) 51 { 52 FILE* out = stdout; 53 /* out = fopen("unbound-service-remove.log", "w");*/ 54 if(argc == 2 && strcmp(argv[1], "stop")==0) { 55 wsvc_rc_stop(out); 56 return 0; 57 } 58 if(argc != 1) { 59 if(out) fprintf(out, "Usage: %s [stop]\n", argv[0]); 60 else printf("Usage: %s [stop]\n", argv[0]); 61 return 1; 62 } 63 wsvc_remove(NULL); 64 return 0; 65 } 66