[asterisk-commits] tilghman: trunk r79949 - in /trunk: ./ apps/app_voicemail.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Sat Aug 18 09:34:48 CDT 2007


Author: tilghman
Date: Sat Aug 18 09:34:47 2007
New Revision: 79949

URL: http://svn.digium.com/view/asterisk?view=rev&rev=79949
Log:
Merged revisions 79947 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r79947 | tilghman | 2007-08-18 09:30:44 -0500 (Sat, 18 Aug 2007) | 3 lines

Don't allocate vmu for messagecount when we could just use the stack instead (closes issue #10490)
Also, remove a useless (and leaky) SQLAllocHandle (closes issue #10480)

........

Modified:
    trunk/   (props changed)
    trunk/apps/app_voicemail.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/apps/app_voicemail.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_voicemail.c?view=diff&rev=79949&r1=79948&r2=79949
==============================================================================
--- trunk/apps/app_voicemail.c (original)
+++ trunk/apps/app_voicemail.c Sat Aug 18 09:34:47 2007
@@ -2383,12 +2383,6 @@
 		*newmsgs = atoi(rowdata);
 		SQLFreeHandle (SQL_HANDLE_STMT, stmt);
 
-		res = SQLAllocHandle(SQL_HANDLE_STMT, obj->con, &stmt);
-		if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) {
-			ast_log(LOG_WARNING, "SQL Alloc Handle failed!\n");
-			ast_odbc_release_obj(obj);
-			goto yuck;
-		}
 		snprintf(sql, sizeof(sql), "SELECT COUNT(*) FROM %s WHERE dir = '%s%s/%s/%s'", odbc_table, VM_SPOOL_DIR, context, tmp, "Old");
 		stmt = ast_odbc_prepare_and_execute(obj, generic_prepare, &gps);
 		if (!stmt) {
@@ -2556,7 +2550,7 @@
 	SEARCHPGM *pgm;
 	SEARCHHEADER *hdr;
  
-	struct ast_vm_user *vmu;
+	struct ast_vm_user *vmu, vmus;
 	struct vm_state *vms_p;
 	int ret = 0;
 	int fold = folder_int(folder);
@@ -2566,10 +2560,16 @@
 
 	/* 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, mailbox);
+	vmu = find_user(&vmus, context, mailbox);
 	if (!vmu) {
 		ast_log (LOG_ERROR,"Couldn't find mailbox %s in context %s\n",mailbox,context);
 		return -1;
+	} else {
+		/* No IMAP account available */
+		if (vmu->imapuser[0] == '\0') {
+			ast_log (LOG_WARNING,"IMAP user not set for mailbox %s\n",vmu->mailbox);
+			return -1;
+		}
 	}
 	
 	/* No IMAP account available */
@@ -2587,11 +2587,9 @@
 	if (vms_p) {
 		ast_debug(3, "Returning before search - user is logged in\n");
 		if(fold == 0) {/*INBOX*/
-			free_user(vmu);
 			return vms_p->newmessages;
 		}
 		if(fold == 1) {/*Old messages*/
-			free_user(vmu);
 		 	return vms_p->oldmessages;
 		}
 	}
@@ -2605,7 +2603,6 @@
 	if (!vms_p) {
 		ast_debug(3,"Adding new vmstate for %s\n",vmu->imapuser);
 		if (!(vms_p = ast_calloc(1, sizeof(*vms_p)))) {
-			free_user(vmu);
 			return -1;
 		}
 		ast_copy_string(vms_p->imapuser,vmu->imapuser, sizeof(vms_p->imapuser));
@@ -2621,7 +2618,6 @@
 	ret = init_mailstream(vms_p, fold);
 	if (!vms_p->mailstream) {
 		ast_log (LOG_ERROR,"Houston we have a problem - IMAP mailstream is NULL\n");
-		free_user(vmu);
 		return -1;
 	}
 	if (ret == 0) {
@@ -2650,13 +2646,11 @@
 			vms_p->oldmessages = vms_p->vmArrayIndex;
 		/*Freeing the searchpgm also frees the searchhdr*/
 		mail_free_searchpgm(&pgm);
-		free_user(vmu);
 		vms_p->updated = 0;
 		return vms_p->vmArrayIndex;
 	} else {  
 		mail_ping(vms_p->mailstream);
 	}
-	free_user(vmu);
 	return 0;
 }
 static int inboxcount(const char *mailbox_context, int *newmsgs, int *oldmsgs)




More information about the asterisk-commits mailing list