From 650c6599ad6d7855a00923eb8960863ec3e3d8d1 Mon Sep 17 00:00:00 2001
From: Lionel Gauthier <lionel.gauthier@eurecom.fr>
Date: Thu, 6 Nov 2014 10:01:45 +0000
Subject: [PATCH] git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5992
 818b1a75-f10b-46b9-bf7c-635c3b92a50f

---
 openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c | 5 ++++-
 openair-cn/UDP/udp_eNB_task.c               | 6 ++++--
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c b/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
index 4cb0eb9dcd..e9def841d0 100644
--- a/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
+++ b/openair-cn/GTPV1-U/nw-gtpv1u/src/NwGtpv1u.c
@@ -213,7 +213,10 @@ nwGtpv1uCreateAndSendMsg( NwGtpv1uStackT *thiz, NwU32T peerIp, NwU16T peerPort,
 
     *((NwU32T *) msgHdr) = htonl(pMsg->teid);
     msgHdr += 4;
-    GTPU_DEBUG("nwGtpv1uCreateAndSendMsg to teid %u length %d\n", pMsg->teid, pMsg->msgLen);
+    GTPU_DEBUG("nwGtpv1uCreateAndSendMsg to teid %u length %d offset %d\n",
+            pMsg->teid,
+            pMsg->msgLen,
+            pMsg->msgBufOffset);
 
     if(pMsg->seqNumFlag || pMsg->extHdrFlag || pMsg->npduNumFlag) {
         *((NwU16T *) msgHdr) = (pMsg->seqNumFlag ? htons(pMsg->seqNum) : 0x0000);
diff --git a/openair-cn/UDP/udp_eNB_task.c b/openair-cn/UDP/udp_eNB_task.c
index 0bef5cdf7e..bf39a87ec0 100644
--- a/openair-cn/UDP/udp_eNB_task.c
+++ b/openair-cn/UDP/udp_eNB_task.c
@@ -334,7 +334,7 @@ void *udp_eNB_task(void *args_p)
                                 ITTI_MSG_ORIGIN_ID(received_message_p));
                         pthread_mutex_unlock(&udp_socket_list_mutex);
                         if (udp_data_req_p->buffer) {
-                            free(udp_data_req_p->buffer);
+                            itti_free(ITTI_MSG_ORIGIN_ID(received_message_p), udp_data_req_p->buffer);
                         }
                         goto on_error;
                     }
@@ -349,12 +349,14 @@ void *udp_eNB_task(void *args_p)
 
                     bytes_written = sendto(
                         udp_sd,
-                        udp_data_req_p->buffer,
+                        &udp_data_req_p->buffer[udp_data_req_p->buffer_offset],
                         udp_data_req_p->buffer_length,
                         0,
                         (struct sockaddr *)&peer_addr,
                         sizeof(struct sockaddr_in));
 
+                    itti_free(ITTI_MSG_ORIGIN_ID(received_message_p), udp_data_req_p->buffer);
+
                     if (bytes_written != udp_data_req_p->buffer_length) {
                         LOG_E(UDP_, "There was an error while writing to socket "
                             "(%d:%s)\n", errno, strerror(errno));
-- 
GitLab