[asterisk-commits] tilghman: trunk r262656 - /trunk/apps/app_privacy.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed May 12 11:23:32 CDT 2010


Author: tilghman
Date: Wed May 12 11:23:26 2010
New Revision: 262656

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=262656
Log:
Ensure the arguments are initialized.  Also miscellaneous CG cleanup.

(closes issue #16576)
 Reported by: uxbod
 Patches: 
       20100505__issue16576.diff.txt uploaded by tilghman (license 14)
 Tested by: uxbod

Modified:
    trunk/apps/app_privacy.c

Modified: trunk/apps/app_privacy.c
URL: http://svnview.digium.com/svn/asterisk/trunk/apps/app_privacy.c?view=diff&rev=262656&r1=262655&r2=262656
==============================================================================
--- trunk/apps/app_privacy.c (original)
+++ trunk/apps/app_privacy.c Wed May 12 11:23:26 2010
@@ -21,7 +21,7 @@
  * \brief Block all calls without Caller*ID, require phone # to be entered
  *
  * \author Mark Spencer <markster at digium.com>
- * 
+ *
  * \ingroup applications
  */
 
@@ -101,48 +101,55 @@
 	} else {
 		/*Answer the channel if it is not already*/
 		if (chan->_state != AST_STATE_UP) {
-			if ((res = ast_answer(chan)))
+			if ((res = ast_answer(chan))) {
 				return -1;
-		}
-
-		if (!ast_strlen_zero(data)) {
-			parse = ast_strdupa(data);
-			
-			AST_STANDARD_APP_ARGS(args, parse);
-
-			if (args.maxretries) {
-				if (sscanf(args.maxretries, "%30d", &x) == 1)
-					maxretries = x;
-				else
-					ast_log(LOG_WARNING, "Invalid max retries argument\n");
-			}
-			if (args.minlength) {
-				if (sscanf(args.minlength, "%30d", &x) == 1)
-					minlength = x;
-				else
-					ast_log(LOG_WARNING, "Invalid min length argument\n");
-			}
-		}		
+			}
+		}
+
+		parse = ast_strdupa(S_OR(data, ""));
+
+		AST_STANDARD_APP_ARGS(args, parse);
+
+		if (!ast_strlen_zero(args.maxretries)) {
+			if (sscanf(args.maxretries, "%30d", &x) == 1 && x > 0) {
+				maxretries = x;
+			} else {
+				ast_log(LOG_WARNING, "Invalid max retries argument: '%s'\n", args.maxretries);
+			}
+		}
+		if (!ast_strlen_zero(args.minlength)) {
+			if (sscanf(args.minlength, "%30d", &x) == 1 && x > 0) {
+				minlength = x;
+			} else {
+				ast_log(LOG_WARNING, "Invalid min length argument: '%s'\n", args.minlength);
+			}
+		}
 
 		/* Play unidentified call */
 		res = ast_safe_sleep(chan, 1000);
-		if (!res)
+		if (!res) {
 			res = ast_streamfile(chan, "privacy-unident", chan->language);
-		if (!res)
+		}
+		if (!res) {
 			res = ast_waitstream(chan, "");
+		}
 
 		/* Ask for 10 digit number, give 3 attempts */
 		for (retries = 0; retries < maxretries; retries++) {
-			if (!res)
+			if (!res) {
 				res = ast_streamfile(chan, "privacy-prompt", chan->language);
-			if (!res)
+			}
+			if (!res) {
 				res = ast_waitstream(chan, "");
-
-			if (!res ) 
+			}
+
+			if (!res) {
 				res = ast_readstring(chan, phone, sizeof(phone) - 1, /* digit timeout ms */ 3200, /* first digit timeout */ 5000, "#");
-
-			if (res < 0)
+			}
+
+			if (res < 0) {
 				break;
+			}
 
 			/* Make sure we get at least digits */
 			if (strlen(phone) >= minlength ) {
@@ -161,25 +168,27 @@
 				}
 			} else {
 				res = ast_streamfile(chan, "privacy-incorrect", chan->language);
-				if (!res)
+				if (!res) {
 					res = ast_waitstream(chan, "");
-			}
-		}
-		
+				}
+			}
+		}
+
 		/* Got a number, play sounds and send them on their way */
-		if ((retries < maxretries) && res >= 0 ) {
+		if ((retries < maxretries) && res >= 0) {
 			res = ast_streamfile(chan, "privacy-thankyou", chan->language);
-			if (!res)
+			if (!res) {
 				res = ast_waitstream(chan, "");
-
-			ast_set_callerid (chan, phone, "Privacy Manager", NULL); 
+			}
+
+			ast_set_callerid(chan, phone, "Privacy Manager", NULL);
 
 			/* Clear the unavailable presence bit so if it came in on PRI
 			 * the caller id will now be passed out to other channels
 			 */
 			chan->cid.cid_pres &= (AST_PRES_UNAVAILABLE ^ 0xFF);
 
-			ast_verb(3, "Changed Caller*ID to %s, callerpres to %d\n",phone,chan->cid.cid_pres);
+			ast_verb(3, "Changed Caller*ID to '%s', callerpres to %d\n", phone, chan->cid.cid_pres);
 
 			pbx_builtin_setvar_helper(chan, "PRIVACYMGRSTATUS", "SUCCESS");
 		} else {
@@ -192,7 +201,7 @@
 
 static int unload_module(void)
 {
-	return ast_unregister_application (app);
+	return ast_unregister_application(app);
 }
 
 static int load_module(void)




More information about the asterisk-commits mailing list