[svn-commits] mmichelson: branch group/CCSS r230044 - /team/group/CCSS/channels/chan_sip.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Nov 13 14:17:23 CST 2009


Author: mmichelson
Date: Fri Nov 13 14:17:19 2009
New Revision: 230044

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=230044
Log:
Change some function names to more specifically refer to
an ESC as opposed to SIP PUBLISH in general.

Also fixed a problem with an int that was being used uninitialized.


Modified:
    team/group/CCSS/channels/chan_sip.c

Modified: team/group/CCSS/channels/chan_sip.c
URL: http://svnview.digium.com/svn/asterisk/team/group/CCSS/channels/chan_sip.c?view=diff&rev=230044&r1=230043&r2=230044
==============================================================================
--- team/group/CCSS/channels/chan_sip.c (original)
+++ team/group/CCSS/channels/chan_sip.c Fri Nov 13 14:17:19 2009
@@ -1828,38 +1828,38 @@
 
 struct event_state_compositor;
 
-typedef int (* const publish_callback)(struct sip_pvt *, struct sip_request *, struct event_state_compositor *, struct sip_esc_entry *);
-
-struct sip_publish_callbacks {
-	const publish_callback initial_handler;
-	const publish_callback refresh_handler;
-	const publish_callback modify_handler;
-	const publish_callback remove_handler;
+typedef int (* const esc_publish_callback)(struct sip_pvt *, struct sip_request *, struct event_state_compositor *, struct sip_esc_entry *);
+
+struct sip_esc_publish_callbacks {
+	const esc_publish_callback initial_handler;
+	const esc_publish_callback refresh_handler;
+	const esc_publish_callback modify_handler;
+	const esc_publish_callback remove_handler;
 };
 
 /* These function are stubbed out for now since I'm focusing solely on PUBLISH support for now. When I go back and actually
  * implement the CC ESC, I'll fill these out with for-real logic :)
  */
-static int cc_publish_initial_handler(struct sip_pvt *pvt, struct sip_request *req, struct event_state_compositor *esc, struct sip_esc_entry *esc_entry)
+static int cc_esc_publish_initial_handler(struct sip_pvt *pvt, struct sip_request *req, struct event_state_compositor *esc, struct sip_esc_entry *esc_entry)
 {
 	/*XXX STUB */
 	return 0;
 }
-static int cc_publish_modify_handler(struct sip_pvt *pvt, struct sip_request *req, struct event_state_compositor *esc, struct sip_esc_entry *esc_entry)
+static int cc_esc_publish_modify_handler(struct sip_pvt *pvt, struct sip_request *req, struct event_state_compositor *esc, struct sip_esc_entry *esc_entry)
 {
 	/*XXX STUB */
 	return 0;
 }
-static int cc_publish_remove_handler(struct sip_pvt *pvt, struct sip_request *req, struct event_state_compositor *esc, struct sip_esc_entry *esc_entry)
+static int cc_esc_publish_remove_handler(struct sip_pvt *pvt, struct sip_request *req, struct event_state_compositor *esc, struct sip_esc_entry *esc_entry)
 {
 	/*XXX STUB */
 	return 0;
 }
 
-static const struct sip_publish_callbacks cc_publish_callbacks = {
-	.initial_handler = cc_publish_initial_handler,
-	.modify_handler = cc_publish_modify_handler,
-	.remove_handler = cc_publish_remove_handler,
+static const struct sip_esc_publish_callbacks cc_esc_publish_callbacks = {
+	.initial_handler = cc_esc_publish_initial_handler,
+	.modify_handler = cc_esc_publish_modify_handler,
+	.remove_handler = cc_esc_publish_remove_handler,
 };
 
 /*!
@@ -1877,10 +1877,10 @@
 static struct event_state_compositor {
 	enum subscriptiontype event;
 	const char * name;
-	const struct sip_publish_callbacks *callbacks;
+	const struct sip_esc_publish_callbacks *callbacks;
 	struct ao2_container *compositor;
 } event_state_compositors [] = {
-	{CALL_COMPLETION, "call-completion", &cc_publish_callbacks},
+	{CALL_COMPLETION, "call-completion", &cc_esc_publish_callbacks},
 };
 
 static const int ESC_MAX_BUCKETS = 37;
@@ -22601,23 +22601,24 @@
 	return 1;
 }
 
-static enum sip_publish_type determine_sip_publish_type(struct sip_request *req, const char * const event, const char * const etag, const char * const expires)
-{
-	int expires_int;
+static enum sip_publish_type determine_sip_publish_type(struct sip_request *req, const char * const event, const char * const etag, const char * const expires, int *expires_int)
+{
 	int etag_present = !ast_strlen_zero(etag);
 	int body_present = req->lines > 0;
+
+	ast_assert(expires_int != NULL);
 
 	if (ast_strlen_zero(expires)) {
 		/* Section 6, item 4, second bullet point of RFC 3903 says to
 		 * use a locally-configured default expiration if none is provided
 		 * in the request
 		 */
-		expires_int = DEFAULT_PUBLISH_EXPIRES;
-	} else if (sscanf(expires, "%30d", &expires_int) != 1) {
+		*expires_int = DEFAULT_PUBLISH_EXPIRES;
+	} else if (sscanf(expires, "%30d", expires_int) != 1) {
 		return SIP_PUBLISH_UNKNOWN;
 	}
 
-	if (expires_int == 0) {
+	if (*expires_int == 0) {
 		return SIP_PUBLISH_REMOVE;
 	} else if (!etag_present && body_present) {
 		return SIP_PUBLISH_INITIAL;
@@ -22769,7 +22770,7 @@
 		return 0;
 	}
 
-	publish_type = determine_sip_publish_type(req, event, etag, expires_str);
+	publish_type = determine_sip_publish_type(req, event, etag, expires_str, &expires_int);
 
 	/* It is the responsibility of these handlers to formulate any response
 	 * sent for a PUBLISH




More information about the svn-commits mailing list