summaryrefslogtreecommitdiffstats
path: root/source3/param
diff options
context:
space:
mode:
authorGarming Sam <garming@catalyst.net.nz>2014-02-21 15:31:10 +1300
committerJeremy Allison <jra@samba.org>2014-05-07 19:49:16 +0200
commit005bf97da6b87d126d240a0537b0cbc2cfc14956 (patch)
tree728982b90e7efa5507541715c8776dc5d6b4818d /source3/param
parent7505ddf134c6617f925dfd803bfee051a497b814 (diff)
downloadsamba-005bf97da6b87d126d240a0537b0cbc2cfc14956.tar.gz
samba-005bf97da6b87d126d240a0537b0cbc2cfc14956.tar.xz
samba-005bf97da6b87d126d240a0537b0cbc2cfc14956.zip
param: change lp_set_enum_parm to indicate whether or not it fails
Signed-off-by: Garming Sam <garming@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/param')
-rw-r--r--source3/param/loadparm.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index 4fbbdbe297..ad485c989e 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -2637,7 +2637,7 @@ const char *lp_ldap_idmap_suffix(TALLOC_CTX *ctx)
set the value for a P_ENUM
***************************************************************************/
-static void lp_set_enum_parm( struct parm_struct *parm, const char *pszParmValue,
+static bool lp_set_enum_parm( struct parm_struct *parm, const char *pszParmValue,
int *ptr )
{
int i;
@@ -2645,11 +2645,12 @@ static void lp_set_enum_parm( struct parm_struct *parm, const char *pszParmValue
for (i = 0; parm->enum_list[i].name; i++) {
if ( strequal(pszParmValue, parm->enum_list[i].name)) {
*ptr = parm->enum_list[i].value;
- return;
+ return true;
}
}
DEBUG(0, ("WARNING: Ignoring invalid value '%s' for parameter '%s'\n",
pszParmValue, parm->label));
+ return false;
}
/***************************************************************************
@@ -2663,7 +2664,9 @@ static bool handle_printing(struct loadparm_context *unused, int snum, const cha
if ( parm_num == -1 )
parm_num = lpcfg_map_parameter( "printing" );
- lp_set_enum_parm( &parm_table[parm_num], pszParmValue, (int*)ptr );
+ if (!lp_set_enum_parm(&parm_table[parm_num], pszParmValue, (int*)ptr)) {
+ return false;
+ }
if ( snum < 0 ) {
s = &sDefault;
@@ -2851,7 +2854,9 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
break;
}
case P_ENUM:
- lp_set_enum_parm( &parm_table[parmnum], pszParmValue, (int*)parm_ptr );
+ if (!lp_set_enum_parm(&parm_table[parmnum], pszParmValue, (int*)parm_ptr)) {
+ return false;
+ }
break;
case P_SEP:
break;