From 6d565bae9b044f81e84fdf44ffe6e0e5bcab8bfa Mon Sep 17 00:00:00 2001
From: Lionel Gauthier <lionel.gauthier@eurecom.fr>
Date: Mon, 10 Feb 2014 14:33:12 +0000
Subject: [PATCH] git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5060
 818b1a75-f10b-46b9-bf7c-635c3b92a50f

---
 openair2/ENB_APP/enb_app.c    | 17 +++++++++++++----
 openair2/ENB_APP/enb_config.c | 10 ++++------
 2 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/openair2/ENB_APP/enb_app.c b/openair2/ENB_APP/enb_app.c
index 096b2299e80..d00c3060711 100644
--- a/openair2/ENB_APP/enb_app.c
+++ b/openair2/ENB_APP/enb_app.c
@@ -29,6 +29,7 @@
  *******************************************************************************/
 
 #include <string.h>
+#include <stdio.h>
 
 #include "enb_app.h"
 #include "enb_config.h"
@@ -97,10 +98,12 @@ static void configure_rrc(uint32_t enb_id, const Enb_properties_array_t *enb_pro
 # if defined(ENABLE_USE_MME)
 static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end, const Enb_properties_array_t *enb_properties)
 {
-    uint32_t enb_id;
-    uint32_t mme_id;
-    MessageDef *msg_p;
-    uint32_t register_enb_pending = 0;
+    uint32_t         enb_id;
+    uint32_t         mme_id;
+    MessageDef      *msg_p;
+    uint32_t         register_enb_pending = 0;
+    char            *str                  = NULL;
+    struct in_addr   addr;
 
 #   if defined(OAI_EMU)
 
@@ -143,6 +146,12 @@ static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end, con
                          sizeof(s1ap_register_eNB->mme_ip_address[0].ipv6_address));
             }
 
+            s1ap_register_eNB->enb_ip_address.ipv6 = 0;
+            s1ap_register_eNB->enb_ip_address.ipv4 = 1;
+            addr.s_addr = enb_properties->properties[enb_id]->enb_ipv4_address_for_S1_MME;
+            str = inet_ntoa(addr);
+            strcpy(s1ap_register_eNB->enb_ip_address.ipv4_address, str);
+
             itti_send_msg_to_task (TASK_S1AP, enb_id, msg_p);
 
             register_enb_pending++;
diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c
index eaa277cf550..3444fca6a29 100755
--- a/openair2/ENB_APP/enb_config.c
+++ b/openair2/ENB_APP/enb_config.c
@@ -427,13 +427,13 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) {
                   subsetting = config_setting_get_member (setting_enb, ENB_CONFIG_STRING_NETWORK_INTERFACES_CONFIG);
                   if(subsetting != NULL) {
                       if(  (
-                              config_setting_lookup_string( setting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME,
+                              config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1_MME,
                                       (const char **)&enb_interface_name_for_S1_MME)
-                           && config_setting_lookup_string( setting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME,
+                           && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDRESS_FOR_S1_MME,
                                    (const char **)&enb_ipv4_address_for_S1_MME)
-                           && config_setting_lookup_string( setting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U,
+                           && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_INTERFACE_NAME_FOR_S1U,
                                    (const char **)&enb_interface_name_for_S1U)
-                           && config_setting_lookup_string( setting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U,
+                           && config_setting_lookup_string( subsetting, ENB_CONFIG_STRING_ENB_IPV4_ADDR_FOR_S1U,
                                    (const char **)&enb_ipv4_address_for_S1U)
                          )
                      ){
@@ -441,7 +441,6 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) {
                           cidr = enb_ipv4_address_for_S1U;
                           address = strtok(cidr, "/");
                           if (address) {
-                              address = strdup(address);
                               IPV4_STR_ADDR_TO_INT_NWBO ( address, enb_properties.properties[enb_properties_index]->enb_ipv4_address_for_S1U, "BAD IP ADDRESS FORMAT FOR eNB S1_U !\n" );
                           }
 
@@ -449,7 +448,6 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP) {
                           cidr = enb_ipv4_address_for_S1_MME;
                           address = strtok(cidr, "/");
                           if (address) {
-                              address = strdup(address);
                               IPV4_STR_ADDR_TO_INT_NWBO ( address, enb_properties.properties[enb_properties_index]->enb_ipv4_address_for_S1_MME, "BAD IP ADDRESS FORMAT FOR eNB S1_MME !\n" );
                           }
                       }
-- 
GitLab