diff libfreeDiameter/messages.c @ 83:c662d3eb6ff6

Started support for routing module
author Sebastien Decugis <sdecugis@nict.go.jp>
date Wed, 02 Dec 2009 18:28:28 +0900
parents cc3c59fe98fe
children e5fcd672caff
line wrap: on
line diff
--- a/libfreeDiameter/messages.c	Wed Dec 02 14:20:38 2009 +0900
+++ b/libfreeDiameter/messages.c	Wed Dec 02 18:28:28 2009 +0900
@@ -117,7 +117,7 @@
 	uint8_t			*msg_rawbuffer;		/* data buffer that was received, saved during fd_msg_parse_buffer and freed in fd_msg_parse_dict */
 	int			 msg_routable;		/* Is this a routable message? (0: undef, 1: routable, 2: non routable) */
 	struct msg		*msg_query;		/* the associated query if the message is a received answer */
-	struct fd_list		*msg_rtlist;		/* Routing list for the query */
+	struct rt_data		*msg_rtdata;		/* Routing list for the query */
 	struct {
 			void (*fct)(void *, struct msg **);
 			void * data;
@@ -568,14 +568,8 @@
 		free(_M(obj)->msg_src_id);
 	}
 	
-	if ((obj->type == MSG_MSG) && (_M(obj)->msg_rtlist != NULL)) {
-		while (! FD_IS_LIST_EMPTY(_M(obj)->msg_rtlist) ) {
-			struct fd_list * li = _M(obj)->msg_rtlist->next;
-			fd_list_unlink(li);
-			free(li);
-		}
-
-		free(_M(obj)->msg_rtlist);
+	if ((obj->type == MSG_MSG) && (_M(obj)->msg_rtdata != NULL)) {
+		fd_rtd_free(&_M(obj)->msg_rtdata);
 	}
 	
 	/* free the object */
@@ -1030,26 +1024,26 @@
 }	
 
 /* Associate routing lists */
-int fd_msg_rt_associate( struct msg * msg, struct fd_list ** list )
+int fd_msg_rt_associate( struct msg * msg, struct rt_data ** rtd )
 {
-	TRACE_ENTRY( "%p %p", msg, list );
+	TRACE_ENTRY( "%p %p", msg, rtd );
 	
-	CHECK_PARAMS(  CHECK_MSG(msg) && list  );
+	CHECK_PARAMS(  CHECK_MSG(msg) && rtd  );
 	
-	msg->msg_rtlist = *list;
-	*list = NULL;
+	msg->msg_rtdata = *rtd;
+	*rtd = NULL;
 	
 	return 0;
 }
 
-int fd_msg_rt_get( struct msg * msg, struct fd_list ** list )
+int fd_msg_rt_get( struct msg * msg, struct rt_data ** rtd )
 {
-	TRACE_ENTRY( "%p %p", msg, list );
+	TRACE_ENTRY( "%p %p", msg, rtd );
 	
-	CHECK_PARAMS(  CHECK_MSG(msg) && list  );
+	CHECK_PARAMS(  CHECK_MSG(msg) && rtd  );
 	
-	*list = msg->msg_rtlist;
-	msg->msg_rtlist = NULL;
+	*rtd = msg->msg_rtdata;
+	msg->msg_rtdata = NULL;
 	
 	return 0;
 }	
"Welcome to our mercurial repository"