patch to fix several things wrong with voicemail
authorMatt O'Gorman <mogorman@digium.com>
Thu, 7 Sep 2006 16:14:53 +0000 (16:14 +0000)
committerMatt O'Gorman <mogorman@digium.com>
Thu, 7 Sep 2006 16:14:53 +0000 (16:14 +0000)
imap storage.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@42259 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index be5cfc9..566dfc7 100644 (file)
@@ -562,7 +562,7 @@ static void apply_option(struct ast_vm_user *vmu, const char *var, const char *v
                ast_copy_string(vmu->zonetag, value, sizeof(vmu->zonetag));
 #ifdef IMAP_STORAGE
        } else if (!strcasecmp(var, "imapuser")) {
-               strncpy(vmu->imapuser, value, sizeof(vmu->imapuser) - 1);
+               ast_copy_string(vmu->imapuser, value, sizeof(vmu->imapuser));
 #endif
        } else if (!strcasecmp(var, "delete") || !strcasecmp(var, "deletevoicemail")) {
                ast_set2_flag(vmu, ast_true(value), VM_DELETE); 
@@ -1651,8 +1651,7 @@ static int vm_delete(char *file)
 
 
 #endif
-static int
-inbuf(struct baseio *bio, FILE *fi)
+static int inbuf(struct baseio *bio, FILE *fi)
 {
        int l;
 
@@ -1673,8 +1672,7 @@ inbuf(struct baseio *bio, FILE *fi)
        return 1;
 }
 
-static int 
-inchar(struct baseio *bio, FILE *fi)
+static int inchar(struct baseio *bio, FILE *fi)
 {
        if (bio->iocp>=bio->iolen) {
                if (!inbuf(bio, fi))
@@ -1684,8 +1682,7 @@ inchar(struct baseio *bio, FILE *fi)
        return bio->iobuf[bio->iocp++];
 }
 
-static int
-ochar(struct baseio *bio, int c, FILE *so)
+static int ochar(struct baseio *bio, int c, FILE *so)
 {
        if (bio->linelength>=BASELINELEN) {
                if (fputs(eol,so)==EOF)
@@ -1924,7 +1921,7 @@ static int sendmail(char *srcemail, struct ast_vm_user *vmu, int msgnum, char *c
                fprintf(p, "X-Asterisk-VM-Caller-ID-Num: %s\n", cidnum);
                fprintf(p, "X-Asterisk-VM-Caller-ID-Name: %s\n", cidname);
                fprintf(p, "X-Asterisk-VM-Duration: %d\n", duration);
-               if (category != NULL)
+               if (!ast_strlen_zero(category))
                        fprintf(p, "X-Asterisk-VM-Category: %s\n", category);
                fprintf(p, "X-Asterisk-VM-Orig-date: %s\n", date);
                fprintf(p, "X-Asterisk-VM-Orig-time: %ld\n", (long)time(NULL));
@@ -2376,7 +2373,7 @@ static int count_messages_imap(const char *mailbox, int *newmsgs, int *oldmsgs)
                return 0;
        if (strchr(mailbox, ',')) {
                int tmpnew, tmpold;
-               strncpy(tmp, mailbox, sizeof(tmp) - 1);
+               ast_copy_string(tmp, mailbox, sizeof(tmp));
                mb = tmp;
                ret = 0;
                while((cur = strsep(&mb, ", "))) {
@@ -2393,8 +2390,7 @@ static int count_messages_imap(const char *mailbox, int *newmsgs, int *oldmsgs)
                }
                return 0;
        }
-       strncpy(tmp, mailbox, sizeof(tmp) - 1);
+       ast_copy_string(tmp, mailbox, sizeof(tmp));
        context = strchr(tmp, '@');
        if (context) {
                *context = '\0';
@@ -2408,7 +2404,7 @@ static int count_messages_imap(const char *mailbox, int *newmsgs, int *oldmsgs)
        /* We have to get the user before we can open the stream! */
        /*ast_log (LOG_DEBUG,"Before find_user, context is %s and mailbox is %s\n",context,mailbox); */
        vmu = find_user(NULL, context, mailboxnc);
-       if (vmu == NULL) {
+       if (!vmu) {
                ast_log (LOG_ERROR,"Couldn't find mailbox %s in context %s\n",mailboxnc,context);
                return -1;
        } else {
@@ -2421,10 +2417,10 @@ static int count_messages_imap(const char *mailbox, int *newmsgs, int *oldmsgs)
  
        /* check if someone is accessing this box right now... */
        vms_p = get_vm_state_by_imapuser(vmu->imapuser,1);
-       if (vms_p == NULL) {
+       if (!vms_p) {
                vms_p = get_vm_state_by_mailbox(mailboxnc,1);
        }
-       if (vms_p != NULL) {
+       if (vms_p) {
                if(option_debug > 2)
                        ast_log (LOG_DEBUG,"Returning before search - user is logged in\n");
                *newmsgs = vms_p->newmessages;
@@ -2434,29 +2430,29 @@ static int count_messages_imap(const char *mailbox, int *newmsgs, int *oldmsgs)
  
        /* add one if not there... */
        vms_p = get_vm_state_by_imapuser(vmu->imapuser,0);
-       if (vms_p == NULL) {
+       if (!vms_p) {
                vms_p = get_vm_state_by_mailbox(mailboxnc,0);
        }
  
-       if (vms_p == NULL) {
+       if (!vms_p) {
                if(option_debug > 2)
                        ast_log (LOG_DEBUG,"Adding new vmstate for %s\n",vmu->imapuser);
                vms_p = (struct vm_state *)malloc(sizeof(struct vm_state));
                strcpy(vms_p->imapuser,vmu->imapuser);
-               strcpy(vms_p->username,mailboxnc); /* save for access from interactive entry point */
+               ast_copy_string(vms_p->username, mailboxnc, sizeof(vms_p->username)); /* save for access from interactive entry point */
                vms_p->mailstream = NIL; /* save for access from interactive entry point */
                if(option_debug > 2)
                        ast_log (LOG_DEBUG,"Copied %s to %s\n",vmu->imapuser,vms_p->imapuser);
                vms_p->updated = 1;
                vms_p->interactive = 0;
                /* set mailbox to INBOX! */
-               strncpy(vms_p->curbox, mbox(0), sizeof(vms_p->curbox) - 1);
+               ast_copy_string(vms_p->curbox, mbox(0), sizeof(vms_p->curbox));
                init_vm_state(vms_p);
                vmstate_insert(vms_p);
        }
-       if (vms_p->mailstream == NULL)
+       if (!vms_p->mailstream)
                ret = init_mailstream(vms_p);
-       if (vms_p->mailstream == NULL) {
+       if (!vms_p->mailstream) {
                ast_log (LOG_ERROR,"Houston we have a problem - IMAP mailstream is NULL\n");
                return -1;
        }
@@ -2508,6 +2504,7 @@ static int count_messages_imap(const char *mailbox, int *newmsgs, int *oldmsgs)
 /* copy message only used by file storage */
 static int copy_message(struct ast_channel *chan, struct ast_vm_user *vmu, int imbox, int msgnum, long duration, struct ast_vm_user *recip, char *fmt)
 {
+       
        char fromdir[256], todir[256], frompath[256], topath[256];
        const char *frombox = mbox(imbox);
        int recipmsgnum;
@@ -2869,7 +2866,7 @@ static int leave_voicemail(struct ast_channel *chan, char *ext, struct leave_vm_
                /* Is ext a mailbox? */
                /* must open stream for this user to get info! */
                vms = get_vm_state_by_mailbox(ext,0);
-               if (vms != NULL) {
+               if (vms) {
                        if(option_debug > 2)
                                ast_log(LOG_DEBUG, "Using vm_state, interactive set to %d.\n",vms->interactive);
                        newmsgs = vms->newmessages++;
@@ -3933,7 +3930,6 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
                if (!cmd) {
                        AST_LIST_TRAVERSE_SAFE_BEGIN(&extensions, vmtmp, list) {
 #ifdef IMAP_STORAGE
-                               /* NEED TO CHANGE username to mailbox!! - JAR */
                                /* Need to get message content */
                                if(option_debug > 2)
                                        ast_log (LOG_DEBUG,"Before mail_fetchheaders, curmsg is: %d, imap messages is %lu\n",vms->curmsg, vms->msgArray[vms->curmsg]);
@@ -3945,13 +3941,13 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
                                /* This will only work for new messages... */
                                header_content = mail_fetchheader (vms->mailstream, vms->msgArray[vms->curmsg]);
                                /* empty string means no valid header */
-                               if (header_content == "" || header_content == NULL) {
+                               if (ast_strlen(header_content)) {
                                        ast_log (LOG_ERROR,"Could not fetch header for message number %ld\n",vms->msgArray[vms->curmsg]);
                                        return -1;
                                }
                                /* Get header info needed by sendmail */
                                temp = get_header_by_tag(header_content, "X-Asterisk-VM-Duration:");
-                               if (temp != NULL)
+                               if (temp)
                                        duration = atoi(temp);
                                else
                                        duration = 0;
@@ -4317,7 +4313,7 @@ static int play_message(struct ast_channel *chan, struct ast_vm_user *vmu, struc
        /* This will only work for new messages... */
        header_content = mail_fetchheader (vms->mailstream, vms->msgArray[vms->curmsg]);
        /* empty string means no valid header */
-       if (header_content == "" || header_content == NULL) {
+       if (ast_strlen(header_content)) {
                ast_log (LOG_ERROR,"Could not fetch header for message number %ld\n",vms->msgArray[vms->curmsg]);
                return -1;
        }
@@ -4343,35 +4339,35 @@ static int play_message(struct ast_channel *chan, struct ast_vm_user *vmu, struc
        /* Get info from headers!!  */
        temp = get_header_by_tag(header_content, "X-Asterisk-VM-Caller-ID-Num:");
 
-       if (temp != NULL)
+       if (temp)
                strcpy(cid,temp); 
        else 
                cid[0] = '\0';
 
        temp = get_header_by_tag(header_content, "X-Asterisk-VM-Context:");
 
-       if (temp != NULL)
+       if (temp)
                strcpy(context,temp); 
        else
                context[0] = '\0';
 
        temp = get_header_by_tag(header_content, "X-Asterisk-VM-Orig-time:");
 
-       if (temp != NULL)
+       if (temp)
                strcpy(origtime,temp);
        else
                origtime[0] = '\0';
 
        temp = get_header_by_tag(header_content, "X-Asterisk-VM-Duration:");
 
-       if (temp != NULL)
+       if (temp)
                strcpy(duration,temp);
        else
                duration[0] = '\0';
        
        temp = get_header_by_tag(header_content, "X-Asterisk-VM-Category:");
        
-       if (temp != NULL)
+       if (temp)
                strcpy(category,temp);
        else
                category[0] = '\0';
@@ -4383,7 +4379,7 @@ static int play_message(struct ast_channel *chan, struct ast_vm_user *vmu, struc
 
 
        /* What is the category thing?  JAR */
-       if ((!res) && category[0] != '\0' && category != NULL) {
+       if ((!res) && !ast_strlen_zero(category)) {
                res = play_message_category(chan, category);
        }
 
@@ -4518,27 +4514,13 @@ static int open_mailbox(struct vm_state *vms, struct ast_vm_user *vmu,int box)
 
        strcpy(vms->imapuser,vmu->imapuser);
        if (box == 1) {
-               strncpy(vms->curbox, mbox(0), sizeof(vms->curbox) - 1);
+               ast_copy_string(vms->curbox, mbox(0), sizeof(vms->curbox));
                sprintf(vms->vmbox, "vm-%s", mbox(1));
        } else {
-               strncpy(vms->curbox, mbox(box), sizeof(vms->curbox) - 1);
+               ast_copy_string(vms->curbox, mbox(box), sizeof(vms->curbox));
                snprintf(vms->vmbox, sizeof(vms->vmbox), "vm-%s", vms->curbox);
        }
 
-       /* No need to do another search! */
-       /*
-       if (vms->interactive == 1)  {
-               strncpy(vms->curbox, mbox(box), sizeof(vms->curbox) - 1);
-               snprintf(vms->vmbox, sizeof(vms->vmbox), "vm-%s", vms->curbox);
-               if (box == 0) {
-                       vms->lastmsg = vms->newmessages - 1;
-               } else if (box == 1) {
-                       vms->lastmsg = vms->oldmessages - 1;
-               }
-               return 0;
-       }
-       */
-
        if(option_debug > 2)
                ast_log(LOG_DEBUG,"Before init_mailstream, user is %s\n",vmu->imapuser);
        ret = init_mailstream(vms);
@@ -6957,35 +6939,34 @@ static int load_config(void)
 #ifdef IMAP_STORAGE
                /* IMAP server address */
                if ((imap_server = ast_variable_retrieve(cfg, "general", "imapserver"))) {
-                       strncpy(imapserver,imap_server,sizeof(imapserver) - 1);
+                       ast_copy_string(imapserver, imap_server, sizeof(imapserver));
                } else {
                        strcpy(imapserver,"localhost");
                }
                /* IMAP server port */
                if ((imap_port = ast_variable_retrieve(cfg, "general", "imapport"))) {
-                       strncpy(imapport,imap_port,sizeof(imapport) - 1);
+                       ast_copy_string(imapport, imap_port, sizeof(imapport));
                } else {
                        strcpy(imapport,"143");
                }
                /* IMAP server flags */
                if ((imap_flags = ast_variable_retrieve(cfg, "general", "imapflags"))) {
-                       strncpy(imapflags,imap_flags,sizeof(imapflags) - 1);
+                       ast_copy_string(imapflags, imap_flags, sizeof(imapflags));
                }
                /* IMAP server master username */
                if ((auth_user = ast_variable_retrieve(cfg, "general", "authuser"))) {
-                       strncpy(authuser,auth_user,sizeof(authuser) - 1);
+                       ast_copy_string(authuser, auth_user, sizeof(authuser));
                }
                /* IMAP server master password */
                if ((auth_password = ast_variable_retrieve(cfg, "general", "authpassword"))) {
-                       strncpy(authpassword,auth_password,sizeof(authpassword) - 1);
+                       ast_copy_string(authpassword, auth_password, sizeof(authpassword));
                }
                /* Expunge on exit */
                if ((expunge_on_hangup = ast_variable_retrieve(cfg, "general", "expungeonhangup"))) {
-                       if (strcmp(expunge_on_hangup,"no") == 0 || strcmp(expunge_on_hangup,"No") == 0) {
+                       if(!ast_false(expunge_on_hangup))
                                expungeonhangup = 0;
-                       } else {
+                       else
                                expungeonhangup = 1;
-                       }
                } else {
                        expungeonhangup = 1;
                }
@@ -7467,7 +7448,7 @@ static int advanced_options(struct ast_channel *chan, struct ast_vm_user *vmu, s
        /* This will only work for new messages... */
        header_content = mail_fetchheader (vms->mailstream, vms->msgArray[vms->curmsg]);
        /* empty string means no valid header */
-       if (header_content == "" || header_content == NULL) {
+       if (ast_strlen_zero(header_content)) {
                ast_log (LOG_ERROR,"Could not fetch header for message number %ld\n",vms->msgArray[vms->curmsg]);
                return -1;
        }
@@ -7475,7 +7456,7 @@ static int advanced_options(struct ast_channel *chan, struct ast_vm_user *vmu, s
        /* Get info from headers!!  */
        temp = get_header_by_tag(header_content, "X-Asterisk-VM-Caller-ID-Num:");
        
-       if (temp != NULL)
+       if (temp)
                strcpy(cidS,temp);
        else
                cidS[0] = '\0';
@@ -7483,7 +7464,7 @@ static int advanced_options(struct ast_channel *chan, struct ast_vm_user *vmu, s
        cid = &cidS[0];
        temp = get_header_by_tag(header_content, "X-Asterisk-VM-Context:");
        
-       if (temp != NULL)
+       if (temp)
                strcpy(contextS,temp);
        else
                contextS[0] = '\0';
@@ -7491,7 +7472,7 @@ static int advanced_options(struct ast_channel *chan, struct ast_vm_user *vmu, s
        context = &contextS[0];
        temp = get_header_by_tag(header_content, "X-Asterisk-VM-Orig-time:");
        
-       if (temp != NULL)
+       if (temp)
                strcpy(origtimeS,temp);
        else
                origtimeS[0] = '\0';
@@ -7877,13 +7858,13 @@ static int init_mailstream(struct vm_state *vms)
        
        
        
-       if (vms == NULL) {
+       if (!vms) {
                ast_log (LOG_ERROR,"vm_state is NULL!\n");
                return -1;
        }
        if(option_debug > 2)
                ast_log (LOG_DEBUG,"vm_state user is:%s\n",vms->imapuser);
-       if (vms->mailstream == NIL || vms->mailstream == NULL) {
+       if (vms->mailstream == NIL || !vms->mailstream) {
                ast_log (LOG_DEBUG,"mailstream not set.\n");
        } else {
                stream = vms->mailstream;
@@ -7932,7 +7913,7 @@ void mm_searched(MAILSTREAM *stream, unsigned long number)
        user = get_user_by_mailbox(mailbox);
        
        vms = get_vm_state_by_imapuser(user,2);
-       if (vms != NULL) {
+       if (vms) {
                if(option_debug > 2)
                        ast_log (LOG_DEBUG, "saving mailbox message number %lu as message %d. Interactive set to %d\n",number,vms->vmArrayIndex,vms->interactive);
                vms->msgArray[vms->vmArrayIndex++] = number;
@@ -8147,47 +8128,36 @@ void mm_notify(MAILSTREAM * stream, char *string, long errflg)
 
 void mm_list(MAILSTREAM * stream, int delim, char *mailbox, long attributes)
 {
-       ast_log (LOG_NOTICE,"****** Entering callback\n");
-       putchar (' ');
-       if (delimiter) {
-               putchar (delimiter);
+       if (delimiter)
                delimiter = delim;
-               ast_log (LOG_NOTICE,"Delimiter set to %c\n",delim);
-       } else {
-               fputs ("NIL", stdout);
-       }
-       putchar (' ');
-       fputs (mailbox, stdout);
+       if (option_debug > 4) {
+               ast_log(LOG_DEBUG, "Delimiter set to %c and mailbox %s\n",delim, mailbox);
        if (attributes & LATT_NOINFERIORS)
-               fputs (", no inferiors", stdout);
+               ast_log(LOG_DEBUG, "no inferiors\n");
        if (attributes & LATT_NOSELECT)
-               fputs (", no select", stdout);
+               ast_log(LOG_DEBUG, "no select\n");
        if (attributes & LATT_MARKED)
-               fputs (", marked", stdout);
+               ast_log(LOG_DEBUG, "marked\n");
        if (attributes & LATT_UNMARKED)
-               fputs (", unmarked", stdout);
-       putchar ('\n');
+               ast_log(LOG_DEBUG, "unmarked\n");
+       }
 }
 
 
 void mm_lsub(MAILSTREAM * stream, int delimiter, char *mailbox, long attributes)
 {
-       putchar (' ');
-       if (delimiter)
-               putchar (delimiter);
-       else
-               fputs ("NIL", stdout);
-       putchar (' ');
-       fputs (mailbox, stdout);
+
+       if (option_debug > 4) {
+               ast_log(LOG_DEBUG, "Delimiter set to %c and mailbox %s\n",delimiter, mailbox);
        if (attributes & LATT_NOINFERIORS)
-               fputs (", no inferiors", stdout);
+               ast_log(LOG_DEBUG, "no inferiors\n");
        if (attributes & LATT_NOSELECT)
-               fputs (", no select", stdout);
+               ast_log(LOG_DEBUG, "no select\n");
        if (attributes & LATT_MARKED)
-               fputs (", marked", stdout);
+               ast_log(LOG_DEBUG, "marked\n");
        if (attributes & LATT_UNMARKED)
-               fputs (", unmarked", stdout);
-       putchar ('\n');
+               ast_log(LOG_DEBUG, "unmarked\n");
+       }
 }
 
 
@@ -8290,7 +8260,7 @@ static void mm_parsequota(MAILSTREAM *stream, unsigned char *msg, QUOTALIST *pqu
        unsigned long usage = 0;
        unsigned long limit = 0;
        
-       while (pquota != NULL) {
+       while (pquota) {
                usage = pquota->usage;
                limit = pquota->limit;
                pquota = pquota->next;
@@ -8299,7 +8269,7 @@ static void mm_parsequota(MAILSTREAM *stream, unsigned char *msg, QUOTALIST *pqu
        mailbox = stream->mailbox;
        user = get_user_by_mailbox(mailbox);
        vms = get_vm_state_by_imapuser(user,2);
-       if (vms != NULL) {
+       if (vms) {
                if(option_debug > 2)
                        ast_log (LOG_DEBUG, "User %s usage is %lu, limit is %lu\n",user,usage,limit);
                vms->quota_usage = usage;
@@ -8315,15 +8285,18 @@ static char *get_header_by_tag(char *header, char *tag)
        int taglen;
        char *eol_pnt;
 
-       if (header == NULL || tag == NULL) return NULL;
+       if (!header || !tag)
+               return NULL;
 
        taglen = strlen(tag) + 1;
-       if (taglen < 1) return NULL;
+       if (taglen < 1)
+               return NULL;
 
        start = strstr(header, tag);
-       if (start == NULL) return NULL;
+       if (!start)
+               return NULL;
 
-       strncpy(temp,start+taglen,sizeof(temp)-1);
+       ast_copy_string(temp, start+taglen, sizeof(temp));
        eol_pnt = strchr(temp,'\n');
        *eol_pnt = '\0';
        return temp;
@@ -8334,18 +8307,19 @@ static char *get_user_by_mailbox(char *mailbox)
        char *start, *quote;
        char *eol_pnt;
 
-       if (mailbox == NULL) return NULL;
+       if (!mailbox)
+               return NULL;
 
        start = strstr(mailbox,"user=");
-       if (start == NULL) return NULL;
+       if (!start)
+               return NULL;
 
-       /* strncpy(temp,start+1,sizeof(temp)-1); */
        strcpy(temp,start+5);
 
        quote = strchr(temp,'\"');
-       if (quote == NULL) {  /* if username is not in quotes */
+       if (!quote) {  /* if username is not in quotes */
                eol_pnt = strchr(temp,'/');
-               if (eol_pnt == NULL) {
+               if (!eol_pnt) {
                        eol_pnt = strchr(temp,'}');
                }
                *eol_pnt = '\0';
@@ -8363,9 +8337,9 @@ static struct vm_state *get_vm_state_by_imapuser(char *user, int interactive)
 
        vlist = vmstates;
        while (vlist) {
-               if (vlist->vms != NULL) {
-                       if (vlist->vms->imapuser != NULL) {
-                               if (strcmp(vlist->vms->imapuser,user) == 0) {
+               if (vlist->vms) {
+                       if (vlist->vms->imapuser) {
+                               if (!strcmp(vlist->vms->imapuser,user)) {
                                        if (interactive == 2) {
                                                return vlist->vms;
                                        } else if (vlist->vms->interactive == interactive) {
@@ -8395,11 +8369,11 @@ static struct vm_state *get_vm_state_by_mailbox(const char *mailbox, int interac
        if(option_debug > 2) 
                ast_log(LOG_DEBUG, "Mailbox set to %s\n",mailbox);
        while (vlist) {
-               if (vlist->vms != NULL) {
-                       if (vlist->vms->username != NULL) {
+               if (vlist->vms) {
+                       if (vlist->vms->username) {
                                if(option_debug > 2)
                                        ast_log(LOG_DEBUG, "    comparing mailbox %s (i=%d) to vmstate mailbox %s (i=%d)\n",mailbox,interactive,vlist->vms->username,vlist->vms->interactive);
-                               if (strcmp(vlist->vms->username,mailbox) == 0 && vlist->vms->interactive == interactive) {
+                               if (!strcmp(vlist->vms->username,mailbox) && vlist->vms->interactive == interactive) {
                                        if(option_debug > 2)
                                                ast_log(LOG_DEBUG, "    Found it!\n");
                                        return vlist->vms;
@@ -8429,7 +8403,7 @@ static void vmstate_insert(struct vm_state *vms)
           We can compare the username to find the duplicate */
        if (vms->interactive == 1) {
                altvms = get_vm_state_by_mailbox(vms->username,0);
-               if (altvms != NULL) {
+               if (altvms) {
                        if(option_debug > 2)
                                ast_log(LOG_DEBUG, "Duplicate mailbox %s, copying message info...\n",vms->username);
                        vms->newmessages = altvms->newmessages;
@@ -8455,7 +8429,7 @@ static void vmstate_insert(struct vm_state *vms)
        }
 
        v = (struct vmstate *)malloc(sizeof(struct vmstate));
-       if (v == NULL) {
+       if (!v) {
                ast_log(LOG_ERROR, "Out of memory\n");
        }
        if(option_debug > 2)
@@ -8476,7 +8450,7 @@ static void vmstate_delete(struct vm_state *vms)
           back to the persistent state (to make update immediate) */
        if (vms->interactive == 1) {
                altvms = vms->persist_vms;
-               if (altvms != NULL) {
+               if (altvms) {
                        if(option_debug > 2)
                                ast_log(LOG_DEBUG, "Duplicate mailbox %s, copying message info...\n",vms->username);
                        altvms->newmessages = vms->newmessages;
@@ -8501,7 +8475,7 @@ static void vmstate_delete(struct vm_state *vms)
                vl = vc;
                vc = vc->next;
        }
-       if (vf == NULL) {
+       if (!vf) {
                ast_log(LOG_ERROR, "No vmstate found for user:%s, mailbox %s\n",vms->imapuser,vms->username);
        } else {
                free(vf);
@@ -8518,7 +8492,7 @@ static void set_update(MAILSTREAM * stream)
        mailbox = stream->mailbox;
        user = get_user_by_mailbox(mailbox);
        vms = get_vm_state_by_imapuser(user, 0);
-       if (vms != NULL) {
+       if (vms) {
                if(option_debug > 2)
                        ast_log (LOG_DEBUG, "User %s mailbox set for update.\n",user);
                vms->updated = 2; /* set updated flag since mailbox changed */
@@ -8564,7 +8538,8 @@ static int save_body(BODY *body, struct vm_state *vms, char *section, char *form
        unsigned long newlen;
        char filename[256];
        
-       if (body == NULL || body == NIL) return -1;
+       if (!body || body == NIL)
+               return -1;
        display_body (body, NIL, (long) 0);
        body_content = mail_fetchbody (vms->mailstream, vms->msgArray[vms->curmsg], section, &len);
        if (body_content != NIL) {