1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-03 13:47:25 +03:00

Tiny logic simplification: Remove an indentation by using an early return;

(This used to be commit 37dba0c192ec7d4105465beae0d6e8598c7dbb7a)
This commit is contained in:
Volker Lendecke 2008-07-16 16:05:46 +02:00
parent ed5e6b3244
commit d11796d392

View File

@ -7117,61 +7117,71 @@ bool lp_do_parameter(int snum, const char *pszParmName, const char *pszParmValue
void *parm_ptr = NULL; /* where we are going to store the result */
void *def_ptr = NULL;
char *param_key = NULL;
char *sep;
struct param_opt_struct *paramo, *data;
bool not_added;
parmnum = map_parameter(pszParmName);
if (parmnum < 0) {
if ((sep=strchr(pszParmName, ':')) != NULL) {
TALLOC_CTX *frame = talloc_stackframe();
char *sep;
TALLOC_CTX *frame;
*sep = '\0';
param_key = talloc_asprintf(frame, "%s:", pszParmName);
if (!param_key) {
TALLOC_FREE(frame);
return false;
}
slen = strlen(param_key);
param_key = talloc_asprintf_append(param_key, sep+1);
if (!param_key) {
TALLOC_FREE(frame);
return false;
}
trim_char(param_key+slen, ' ', ' ');
not_added = True;
data = (snum < 0) ? Globals.param_opt :
ServicePtrs[snum]->param_opt;
/* Traverse destination */
while (data) {
/* If we already have same option, override it */
if (strcmp(data->key, param_key) == 0) {
string_free(&data->value);
TALLOC_FREE(data->list);
data->value = SMB_STRDUP(pszParmValue);
not_added = False;
break;
}
data = data->next;
}
if (not_added) {
paramo = SMB_XMALLOC_P(struct param_opt_struct);
paramo->key = SMB_STRDUP(param_key);
paramo->value = SMB_STRDUP(pszParmValue);
paramo->list = NULL;
if (snum < 0) {
DLIST_ADD(Globals.param_opt, paramo);
} else {
DLIST_ADD(ServicePtrs[snum]->param_opt, paramo);
}
}
*sep = ':';
TALLOC_FREE(frame);
sep = strchr(pszParmName, ':');
if (sep == NULL) {
DEBUG(0, ("Ignoring unknown parameter \"%s\"\n",
pszParmName));
return (True);
}
DEBUG(0, ("Ignoring unknown parameter \"%s\"\n", pszParmName));
/*
* We've got a parametric option
*/
frame = talloc_stackframe();
*sep = '\0';
param_key = talloc_asprintf(frame, "%s:", pszParmName);
if (!param_key) {
TALLOC_FREE(frame);
return false;
}
slen = strlen(param_key);
param_key = talloc_asprintf_append(param_key, sep+1);
if (!param_key) {
TALLOC_FREE(frame);
return false;
}
trim_char(param_key+slen, ' ', ' ');
not_added = True;
data = (snum < 0)
? Globals.param_opt : ServicePtrs[snum]->param_opt;
/* Traverse destination */
while (data) {
/* If we already have same option, override it */
if (strcmp(data->key, param_key) == 0) {
string_free(&data->value);
TALLOC_FREE(data->list);
data->value = SMB_STRDUP(pszParmValue);
not_added = False;
break;
}
data = data->next;
}
if (not_added) {
paramo = SMB_XMALLOC_P(struct param_opt_struct);
paramo->key = SMB_STRDUP(param_key);
paramo->value = SMB_STRDUP(pszParmValue);
paramo->list = NULL;
if (snum < 0) {
DLIST_ADD(Globals.param_opt, paramo);
} else {
DLIST_ADD(ServicePtrs[snum]->param_opt,
paramo);
}
}
*sep = ':';
TALLOC_FREE(frame);
return (True);
}