twisted revised
public text v1 · immutabletatic void apply_options(struct ast_vm_user *vmu, char *options)
{
/* Destructively Parse options and apply */
char *stringp = ast_strdupa(options);
char *s;
char *var, *value;
while((s = strsep(&stringp, "|"))) {
value = s;
if ((var = strsep(&value, "=")) && value) {
if (!strcasecmp(var, "attach")) {
if (ast_true(value))
vmu->attach = 1;
else
vmu->attach = 0;
} else if (!strcasecmp(var, "serveremail")) {
strncpy(vmu->serveremail, value, sizeof(vmu->serveremail) - 1);
} else if (!strcasecmp(var, "tz")) {
strncpy(vmu->zonetag, value, sizeof(vmu->zonetag) - 1);
} else if (!strcasecmp(var, "saycid")){
if(ast_true(value))
vmu->saycid = 1;
else
vmu->saycid = 0;
else if (saycidinfo)
vmu->saycid = 1;
} else if (!strcasecmp(var, "review")){
if(ast_true(value))
vmu->review = 1;
else
vmu->review = 0;
else if (saycidinfo)
vmu->review =1;
} else if (!strcasecmp(var, "operator")){
if(ast_true(value))
vmu->operator = 1;
else
vmu->operator = 0;
else if (calloper)
vmu->operator = 1;
} else if (!strcasecmp(var, "callback")) {
strncpy(vmu->callback, value, sizeof(vmu->callback) -1);
else if (callcontext)
strncpy(vmu->callback, callcontext, sizeof(vmu->callback) -1);
} else if (!strcasecmp(var, "dialout")) {
strncpy(vmu->dialout, value, sizeof(vmu->dialout) -1);
else if (dialcontext)
strncpy(vmu->dialout, dialcontext, sizeof(vmu->dialout) -1);
}
}
}
}