shutdown.c revision 52419
187182Salfred
287182Salfred/*
3254673Skib * shutdown.c
487182Salfred *
5254673Skib * Copyright (c) 1996-1999 Whistle Communications, Inc.
6254673Skib * All rights reserved.
7254673Skib *
887182Salfred * Subject to the following obligations and disclaimer of warranty, use and
987182Salfred * redistribution of this software, in source or object code forms, with or
1087182Salfred * without modifications are expressly permitted by Whistle Communications;
1187182Salfred * provided, however, that:
1287182Salfred * 1. Any and all reproductions of the source or object code must include the
1387182Salfred *    copyright notice above and the following disclaimer of warranties; and
1487182Salfred * 2. No rights are granted, in any manner or form, to use Whistle
1587182Salfred *    Communications, Inc. trademarks, including the mark "WHISTLE
1687182Salfred *    COMMUNICATIONS" on advertising, endorsements, or otherwise except as
1787182Salfred *    such appears in the above copyright notice or in the software.
1887182Salfred *
1987182Salfred * THIS SOFTWARE IS BEING PROVIDED BY WHISTLE COMMUNICATIONS "AS IS", AND
2087182Salfred * TO THE MAXIMUM EXTENT PERMITTED BY LAW, WHISTLE COMMUNICATIONS MAKES NO
2187182Salfred * REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, REGARDING THIS SOFTWARE,
2287182Salfred * INCLUDING WITHOUT LIMITATION, ANY AND ALL IMPLIED WARRANTIES OF
2387182Salfred * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT.
2487182Salfred * WHISTLE COMMUNICATIONS DOES NOT WARRANT, GUARANTEE, OR MAKE ANY
2587182Salfred * REPRESENTATIONS REGARDING THE USE OF, OR THE RESULTS OF THE USE OF THIS
2687182Salfred * SOFTWARE IN TERMS OF ITS CORRECTNESS, ACCURACY, RELIABILITY OR OTHERWISE.
2787182Salfred * IN NO EVENT SHALL WHISTLE COMMUNICATIONS BE LIABLE FOR ANY DAMAGES
2887182Salfred * RESULTING FROM OR ARISING OUT OF ANY USE OF THIS SOFTWARE, INCLUDING
2987182Salfred * WITHOUT LIMITATION, ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
3087182Salfred * PUNITIVE, OR CONSEQUENTIAL DAMAGES, PROCUREMENT OF SUBSTITUTE GOODS OR
3187182Salfred * SERVICES, LOSS OF USE, DATA OR PROFITS, HOWEVER CAUSED AND UNDER ANY
3287182Salfred * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
33254673Skib * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
3487182Salfred * THIS SOFTWARE, EVEN IF WHISTLE COMMUNICATIONS IS ADVISED OF THE POSSIBILITY
3587182Salfred * OF SUCH DAMAGE.
3687182Salfred *
3787182Salfred * $FreeBSD: head/usr.sbin/ngctl/shutdown.c 52419 1999-10-21 09:06:11Z julian $
3887182Salfred */
3987182Salfred
4087182Salfred#include "ngctl.h"
4187182Salfred
4287182Salfredstatic int ShutdownCmd(int ac, char **av);
4387182Salfred
4487182Salfredconst struct ngcmd shutdown_cmd = {
4587182Salfred	ShutdownCmd,
4687182Salfred	"shutdown <path>",
4787182Salfred	"Shutdown the node at <path>",
4887182Salfred	NULL
4987182Salfred};
5087182Salfred
5187857Srustatic int
5287182SalfredShutdownCmd(int ac, char **av)
5387182Salfred{
5487857Sru	char *path;
55254673Skib
5687182Salfred	/* Get arguments */
57254673Skib	switch (ac) {
58254673Skib	case 2:
59254673Skib		path = av[1];
60254673Skib		break;
61254673Skib	default:
62254673Skib		return(CMDRTN_USAGE);
63254673Skib	}
64254673Skib
65254673Skib	/* Shutdown node */
66254673Skib	if (NgSendMsg(csock, path, NGM_GENERIC_COOKIE,
67256114Sjmg	    NGM_SHUTDOWN, NULL, 0) < 0) {
68254673Skib		warn("shutdown");
69254673Skib		return(CMDRTN_ERROR);
70254673Skib	}
71254673Skib	return(CMDRTN_OK);
72254673Skib}
73254673Skib
74254673Skib
75254673Skib