[asterisk-commits] mmichelson: branch group/CCSS r214435 - in /team/group/CCSS: include/asterisk...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Thu Aug 27 11:53:07 CDT 2009


Author: mmichelson
Date: Thu Aug 27 11:53:03 2009
New Revision: 214435

URL: http://svn.asterisk.org/svn-view/asterisk?view=rev&rev=214435
Log:
Change the init callback to return int.

It is unreasonable to assume that an agent implementation
will require a non-NULL private data pointer. Instead, the
agent can do whatever it needs to do in the init and
return an int to indicate success or failure.


Modified:
    team/group/CCSS/include/asterisk/ccss.h
    team/group/CCSS/main/ccss.c

Modified: team/group/CCSS/include/asterisk/ccss.h
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/CCSS/include/asterisk/ccss.h?view=diff&rev=214435&r1=214434&r2=214435
==============================================================================
--- team/group/CCSS/include/asterisk/ccss.h (original)
+++ team/group/CCSS/include/asterisk/ccss.h Thu Aug 27 11:53:03 2009
@@ -580,9 +580,10 @@
 	 * This callback is called when the CC core
 	 * is initialized. Agents should allocate
 	 * any private data necessary for the
-	 * call.
-	 */
-	void *(*init)(struct ast_cc_agent *agent, struct ast_channel *chan);
+	 * call and assign it to the private_data
+	 * on the agent.
+	 */
+	int (*init)(struct ast_cc_agent *agent, struct ast_channel *chan);
 	/*!
 	 * \brief Start the offer timer
 	 *

Modified: team/group/CCSS/main/ccss.c
URL: http://svn.asterisk.org/svn-view/asterisk/team/group/CCSS/main/ccss.c?view=diff&rev=214435&r1=214434&r2=214435
==============================================================================
--- team/group/CCSS/main/ccss.c (original)
+++ team/group/CCSS/main/ccss.c Thu Aug 27 11:53:03 2009
@@ -55,7 +55,7 @@
 static const unsigned int CC_MAX_MONITORS_DEFAULT = 5u;
 
 /* Generic agent callbacks */
-static void *cc_generic_agent_init(struct ast_cc_agent *agent, struct ast_channel *chan);
+static int cc_generic_agent_init(struct ast_cc_agent *agent, struct ast_channel *chan);
 static int cc_generic_agent_start_offer_timer(struct ast_cc_agent *agent);
 static void cc_generic_agent_ack(struct ast_cc_agent *agent);
 static enum ast_device_state cc_generic_agent_status_request(struct ast_cc_agent *agent);
@@ -550,7 +550,7 @@
 		return NULL;
 	}
 	ast_cc_copy_config_params(agent->cc_params, ast_channel_get_cc_config_params(caller_chan));
-	if (!(agent->private_data = agent->callbacks->init(agent, caller_chan))) {
+	if (agent->callbacks->init(agent, caller_chan)) {
 		ast_cc_config_params_destroy(agent->cc_params);
 		ast_free(agent);
 		return NULL;
@@ -604,10 +604,14 @@
 	return 0;
 }
 
-static void *cc_generic_agent_init(struct ast_cc_agent *agent, struct ast_channel *chan)
-{
-	/* STUB */
-	return NULL;
+static int cc_generic_agent_init(struct ast_cc_agent *agent, struct ast_channel *chan)
+{
+	/* I'm kind of playing this by ear right now. I'm not thinking
+	 * of anything that a generic agent really needs to remember, so
+	 * for now I'm setting the private data on the agent to NULL but
+	 * returning a successful condition.
+	 */
+	return 0;
 }
 
 static int cc_generic_agent_start_offer_timer(struct ast_cc_agent *agent)




More information about the asterisk-commits mailing list