1c5c4113dSnw /* 2c5c4113dSnw * CDDL HEADER START 3c5c4113dSnw * 4c5c4113dSnw * The contents of this file are subject to the terms of the 5c5c4113dSnw * Common Development and Distribution License (the "License"). 6c5c4113dSnw * You may not use this file except in compliance with the License. 7c5c4113dSnw * 8c5c4113dSnw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9c5c4113dSnw * or http://www.opensolaris.org/os/licensing. 10c5c4113dSnw * See the License for the specific language governing permissions 11c5c4113dSnw * and limitations under the License. 12c5c4113dSnw * 13c5c4113dSnw * When distributing Covered Code, include this CDDL HEADER in each 14c5c4113dSnw * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15c5c4113dSnw * If applicable, add the following below this CDDL HEADER, with the 16c5c4113dSnw * fields enclosed by brackets "[]" replaced with your own identifying 17c5c4113dSnw * information: Portions Copyright [yyyy] [name of copyright owner] 18c5c4113dSnw * 19c5c4113dSnw * CDDL HEADER END 20c5c4113dSnw */ 21c5c4113dSnw /* 22148c5f43SAlan Wright * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. 23*fea136a0SMatt Barden * Copyright 2018 Nexenta Systems, Inc. All rights reserved. 24c5c4113dSnw */ 25c5c4113dSnw 26c5c4113dSnw /* 27c5c4113dSnw * Initialization routines 28c5c4113dSnw */ 29c5c4113dSnw 30c5c4113dSnw #include "idmapd.h" 31c5c4113dSnw #include <signal.h> 32c5c4113dSnw #include <thread.h> 33c5c4113dSnw #include <string.h> 34c5c4113dSnw #include <errno.h> 35c5c4113dSnw #include <assert.h> 36c5c4113dSnw #include <unistd.h> 37c5c4113dSnw #include <sys/types.h> 38c5c4113dSnw #include <sys/stat.h> 398edda628Sbaban #include <rpcsvc/daemon_utils.h> 40c5c4113dSnw 41c5c4113dSnw 42c5c4113dSnw int init_mapping_system()434edd44c5Sjpinit_mapping_system() 444edd44c5Sjp { 458edda628Sbaban int rc = 0; 468edda628Sbaban 47e8c27ec8Sbaban if ((rc = load_config()) < 0) 48e8c27ec8Sbaban return (rc); 498edda628Sbaban 508edda628Sbaban (void) setegid(DAEMON_GID); 518edda628Sbaban (void) seteuid(DAEMON_UID); 52c5c4113dSnw if (init_dbs() < 0) { 538edda628Sbaban rc = -1; 54c5c4113dSnw fini_mapping_system(); 55c5c4113dSnw } 568edda628Sbaban (void) seteuid(0); 578edda628Sbaban (void) setegid(0); 588edda628Sbaban 598edda628Sbaban return (rc); 60