mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-19 16:20:37 +00:00
populate global options correctly. Bug#1515
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@2818 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -242,12 +242,9 @@ STANDARD_LOCAL_USER;
|
|||||||
|
|
||||||
LOCAL_USER_DECL;
|
LOCAL_USER_DECL;
|
||||||
|
|
||||||
static void apply_options(struct ast_vm_user *vmu, char *options)
|
static void populate_defaults(struct ast_vm_user *vmu)
|
||||||
{
|
{
|
||||||
/* Destructively Parse options and apply */
|
vmu->attach = -1;
|
||||||
char *stringp = ast_strdupa(options);
|
|
||||||
char *s;
|
|
||||||
char *var, *value;
|
|
||||||
if (reviewvm)
|
if (reviewvm)
|
||||||
vmu->review = 1;
|
vmu->review = 1;
|
||||||
if (calloper)
|
if (calloper)
|
||||||
@@ -258,6 +255,15 @@ static void apply_options(struct ast_vm_user *vmu, char *options)
|
|||||||
strncpy(vmu->callback, callcontext, sizeof(vmu->callback) -1);
|
strncpy(vmu->callback, callcontext, sizeof(vmu->callback) -1);
|
||||||
if (dialcontext)
|
if (dialcontext)
|
||||||
strncpy(vmu->dialout, dialcontext, sizeof(vmu->dialout) -1);
|
strncpy(vmu->dialout, dialcontext, sizeof(vmu->dialout) -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
static 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, "|"))) {
|
while((s = strsep(&stringp, "|"))) {
|
||||||
value = s;
|
value = s;
|
||||||
if ((var = strsep(&value, "=")) && value) {
|
if ((var = strsep(&value, "=")) && value) {
|
||||||
@@ -344,16 +350,8 @@ static struct ast_vm_user *find_user(struct ast_vm_user *ivm, char *context, cha
|
|||||||
/* fprintf(stderr,"postgres find_user:\n"); */
|
/* fprintf(stderr,"postgres find_user:\n"); */
|
||||||
|
|
||||||
if (retval) {
|
if (retval) {
|
||||||
*retval->mailbox='\0';
|
memset(retval, 0, sizeof(struct ast_vm_user));
|
||||||
*retval->context='\0';
|
|
||||||
strcpy(retval->password, "NULL");
|
|
||||||
*retval->fullname='\0';
|
|
||||||
*retval->email='\0';
|
|
||||||
*retval->pager='\0';
|
|
||||||
*retval->serveremail='\0';
|
|
||||||
retval->attach=-1;
|
|
||||||
retval->alloced=1;
|
retval->alloced=1;
|
||||||
retval->next=NULL;
|
|
||||||
if (mailbox) {
|
if (mailbox) {
|
||||||
strcpy(retval->mailbox, mailbox);
|
strcpy(retval->mailbox, mailbox);
|
||||||
}
|
}
|
||||||
@@ -364,6 +362,7 @@ static struct ast_vm_user *find_user(struct ast_vm_user *ivm, char *context, cha
|
|||||||
{
|
{
|
||||||
strcpy(retval->context, "default");
|
strcpy(retval->context, "default");
|
||||||
}
|
}
|
||||||
|
populate_defaults(retval);
|
||||||
sprintf(query, "SELECT password,fullname,email,pager,options FROM voicemail WHERE context='%s' AND mailbox='%s'", retval->context, mailbox);
|
sprintf(query, "SELECT password,fullname,email,pager,options FROM voicemail WHERE context='%s' AND mailbox='%s'", retval->context, mailbox);
|
||||||
|
|
||||||
/* fprintf(stderr,"postgres find_user: query = %s\n",query); */
|
/* fprintf(stderr,"postgres find_user: query = %s\n",query); */
|
||||||
@@ -3338,7 +3337,7 @@ static int append_mailbox(char *context, char *mbox, char *data)
|
|||||||
memset(vmu, 0, sizeof(struct ast_vm_user));
|
memset(vmu, 0, sizeof(struct ast_vm_user));
|
||||||
strncpy(vmu->context, context, sizeof(vmu->context) - 1);
|
strncpy(vmu->context, context, sizeof(vmu->context) - 1);
|
||||||
strncpy(vmu->mailbox, mbox, sizeof(vmu->mailbox) - 1);
|
strncpy(vmu->mailbox, mbox, sizeof(vmu->mailbox) - 1);
|
||||||
vmu->attach = -1;
|
populate_defaults(vmu);
|
||||||
stringp = tmp;
|
stringp = tmp;
|
||||||
if ((s = strsep(&stringp, ",")))
|
if ((s = strsep(&stringp, ",")))
|
||||||
strncpy(vmu->password, s, sizeof(vmu->password) - 1);
|
strncpy(vmu->password, s, sizeof(vmu->password) - 1);
|
||||||
|
|||||||
Reference in New Issue
Block a user