openpam_set_feature.c revision 255376
1236099Sdes/*- 2236099Sdes * Copyright (c) 2012 Dag-Erling Sm��rgrav 3236099Sdes * All rights reserved. 4236099Sdes * 5236099Sdes * Redistribution and use in source and binary forms, with or without 6236099Sdes * modification, are permitted provided that the following conditions 7236099Sdes * are met: 8236099Sdes * 1. Redistributions of source code must retain the above copyright 9255376Sdes * notice, this list of conditions and the following disclaimer. 10236099Sdes * 2. Redistributions in binary form must reproduce the above copyright 11236099Sdes * notice, this list of conditions and the following disclaimer in the 12236099Sdes * documentation and/or other materials provided with the distribution. 13236099Sdes * 3. The name of the author may not be used to endorse or promote 14236099Sdes * products derived from this software without specific prior written 15236099Sdes * permission. 16236099Sdes * 17236099Sdes * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18236099Sdes * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19236099Sdes * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20236099Sdes * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21236099Sdes * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22236099Sdes * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23236099Sdes * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24236099Sdes * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25236099Sdes * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26236099Sdes * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27236099Sdes * SUCH DAMAGE. 28236099Sdes * 29255376Sdes * $Id: openpam_set_feature.c 648 2013-03-05 17:54:27Z des $ 30236099Sdes */ 31236099Sdes 32236099Sdes#ifdef HAVE_CONFIG_H 33236099Sdes# include "config.h" 34236099Sdes#endif 35236099Sdes 36236099Sdes#include <security/pam_appl.h> 37236099Sdes#include <security/openpam.h> 38236099Sdes 39236099Sdes#include "openpam_impl.h" 40236099Sdes 41236099Sdes/* 42236099Sdes * OpenPAM extension 43236099Sdes * 44236099Sdes * Enable or disable an optional feature. 45236099Sdes */ 46236099Sdes 47236099Sdesint 48236099Sdesopenpam_set_feature(int feature, int onoff) 49236099Sdes{ 50236099Sdes 51236099Sdes ENTERF(feature); 52236099Sdes if (feature < 0 || feature >= OPENPAM_NUM_FEATURES) 53236099Sdes RETURNC(PAM_SYMBOL_ERR); 54236099Sdes openpam_features[feature].onoff = onoff; 55236099Sdes RETURNC(PAM_SUCCESS); 56236099Sdes} 57236099Sdes 58236099Sdes/* 59236099Sdes * Error codes: 60236099Sdes * 61236099Sdes * PAM_SYMBOL_ERR 62236099Sdes */ 63236099Sdes 64236099Sdes/** 65236099Sdes * EXPERIMENTAL 66236099Sdes * 67236099Sdes * The =openpam_set_feature function sets the state of the specified 68236099Sdes * feature to the value specified by the =onoff argument. 69236099Sdes * See =openpam_get_feature for a list of recognized features. 70236099Sdes * 71236099Sdes * >openpam_get_feature 72236099Sdes * 73236099Sdes * AUTHOR DES 74236099Sdes */ 75