# # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # Copyright 2009 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # PROG= sdpadm ETCFILES = sdp.conf ROOTETC = $(ROOT)/etc FILEMODE = 0555 ROOTETCFILES= $(ETCFILES:%=$(ROOTETC)/%) $(ROOTETCFILES) : FILEMODE= 644 include ../Makefile.cmd CFLAGS += $(CCVERBOSE) .KEEP_STATE: all: $(PROG) $(ETCFILES) install: all $(ROOTUSRSBINPROG) $(ROOTETCFILES) clean: lint: lint_PROG include ../Makefile.targ #!/bin/sh # # CDDL HEADER START # # The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE # or http://www.opensolaris.org/os/licensing. # See the License for the specific language governing permissions # and limitations under the License. # # When distributing Covered Code, include this CDDL HEADER in each # file and include the License file at usr/src/OPENSOLARIS.LICENSE. # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # # CDDL HEADER END # # # ident "%Z%%M% %I% %E% SMI" # # Copyright 2007 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # sysenable=0 /* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2007 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ #include #include #include #include #include #include #include #include #include #include #include #include #define E_SUCCESS 0 /* Exit status for success */ #define E_ERROR 1 /* Exit status for error */ #define E_USAGE 2 /* Exit status for usage error */ static const char USAGE[] = "Usage:\tsdpadm\tstatus\n\t\tenable\n\t\tdisable\n"; static const char OPTS[] = "?"; static const char FILEENTRY[] = "sysenable=%d\n"; static const char FILENAME[] = "/etc/sdp.conf"; static const char dcname[] = "/dev/sdp"; static char conf_header[] = "#\n" "# CDDL HEADER START\n" "#\n" "# The contents of this file are subject to the terms of the\n" "# Common Development and Distribution License (the \"License\").\n" "# You may not use this file except in compliance with the License.\n" "#\n" "# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE\n" "# or http://www.opensolaris.org/os/licensing.\n" "# See the License for the specific language governing permissions\n" "# and limitations under the License.\n" "#\n" "# When distributing Covered Code, include this CDDL HEADER in each\n" "# file and include the License file at usr/src/OPENSOLARIS.LICENSE.\n" "# If applicable, add the following below this CDDL HEADER, with the\n" "# fields enclosed by brackets \"[]\" replaced with your own identifying\n" "# information: Portions Copyright [yyyy] [name of copyright owner]\n" "#\n" "# CDDL HEADER END\n" "#\n" "#\n" "# ident \"@(#)sdp.conf 1.1 07/01/03 SMI\"\n" "#\n" "# Copyright 2007 Sun Microsystems, Inc. All rights reserved.\n" "# Use is subject to license terms.\n" "#\n\n"; static void usage() { (void) fprintf(stderr, gettext(USAGE)); exit(E_USAGE); } int main(int argc, char *argv[]) { int c, enable, ret = E_SUCCESS; int fd; FILE *fConf; struct strioctl stri; (void) setlocale(LC_ALL, ""); (void) textdomain(TEXT_DOMAIN); while ((c = getopt(argc, argv, OPTS)) != EOF) { switch (c) { case '?': usage(); } } if (argc != 2) { usage(); } fd = open(dcname, O_RDONLY); if (fd < 0) { (void) fprintf(stderr, gettext("opening %s failed errno %d\n"), dcname, errno); exit(0); } if (argc == 2) { /* Parse the on|off from the user */ if (strcasecmp(argv[1], "enable") == 0) { enable = 1; } else if (strcasecmp(argv[1], "disable") == 0) { enable = 0; } else if (strcasecmp(argv[1], "status") == 0) enable = -1; else { usage(); } } stri.ic_cmd = SIOCSENABLESDP; stri.ic_timout = 0; stri.ic_len = sizeof (int); stri.ic_dp = (char *)&enable; if (ioctl(fd, I_STR, &stri) >= 0) { (void) fprintf(stdout, gettext("SDP is %s\n"), enable ? "Enabled" : "Disabled"); fConf = fopen(FILENAME, "w"); if (NULL != fConf) { (void) fprintf(fConf, conf_header); if (enable == 0) { (void) fprintf(fConf, FILEENTRY, 0); } else { (void) fprintf(fConf, FILEENTRY, 1); } (void) fclose(fConf); } } else { perror("ioctl failed"); ret = E_ERROR; } return (ret); }