aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/io/tcpListener.c
diff options
context:
space:
mode:
authorAngelo Mantellini <manangel@cisco.com>2019-07-18 18:31:46 +0200
committerAngelo Mantellini <manangel@cisco.com>2019-10-12 13:27:54 +0000
commiteefc7ae95bbd680416163e5617bada1949b32afc (patch)
tree336a4100832001b2991be007749d12ec5c28c1a0 /hicn-light/src/hicn/io/tcpListener.c
parent91304b8cb75df7cb516518b53e3c1156d0f27ba5 (diff)
[HICN-247] remove listener and bug fixing
Change-Id: I4e5419a837131680fe0e21eb295462ccb2be8613 Signed-off-by: Angelo Mantellini <manangel@cisco.com>
Diffstat (limited to 'hicn-light/src/hicn/io/tcpListener.c')
-rw-r--r--hicn-light/src/hicn/io/tcpListener.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/hicn-light/src/hicn/io/tcpListener.c b/hicn-light/src/hicn/io/tcpListener.c
index 4464edf28..e2b80c215 100644
--- a/hicn-light/src/hicn/io/tcpListener.c
+++ b/hicn-light/src/hicn/io/tcpListener.c
@@ -31,7 +31,6 @@
typedef struct tcp_listener {
char *listenerName;
-
Forwarder *forwarder;
Logger *logger;
@@ -49,10 +48,15 @@ typedef struct tcp_listener {
static void _tcpListener_Destroy(_TcpListener **listenerPtr);
static void _tcpListener_OpsDestroy(ListenerOps **listenerOpsPtr);
+
static const char *_tcpListener_ListenerName(const ListenerOps *ops);
+
static unsigned _tcpListener_OpsGetInterfaceIndex(const ListenerOps *ops);
+
static const Address *_tcpListener_OpsGetListenAddress(const ListenerOps *ops);
+
static const char *_tcpListener_InterfaceName(const ListenerOps *ops);
+
static EncapType _tcpListener_OpsGetEncapType(const ListenerOps *ops);
static ListenerOps _tcpTemplate = {
@@ -71,6 +75,7 @@ static void _tcpListener_Listen(int, struct sockaddr *, int socklen,
ListenerOps *tcpListener_CreateInet6(Forwarder *forwarder, char *listenerName,
struct sockaddr_in6 sin6, char *interfaceName) {
+
_TcpListener *tcp = parcMemory_AllocateAndClear(sizeof(_TcpListener));
parcAssertNotNull(tcp, "parcMemory_AllocateAndClear(%zu) returned NULL",
sizeof(_TcpListener));
@@ -123,7 +128,10 @@ ListenerOps *tcpListener_CreateInet(Forwarder *forwarder, char *listenerName,
sizeof(_TcpListener));
tcp->forwarder = forwarder;
+ tcp->listenerName = parcMemory_StringDuplicate(listenerName, strlen(listenerName));
tcp->logger = logger_Acquire(forwarder_GetLogger(forwarder));
+ tcp->interfaceName = parcMemory_StringDuplicate(interfaceName, strlen(interfaceName));
+
tcp->listener = dispatcher_CreateListener(
forwarder_GetDispatcher(forwarder), _tcpListener_Listen, (void *)tcp, -1,
(struct sockaddr *)&sin, sizeof(sin));
@@ -175,7 +183,6 @@ static void _tcpListener_Destroy(_TcpListener **listenerPtr) {
parcMemory_Deallocate((void **)&tcp->listenerName);
parcMemory_Deallocate((void **)&tcp->interfaceName);
-
logger_Release(&tcp->logger);
dispatcher_DestroyListener(forwarder_GetDispatcher(tcp->forwarder),
&tcp->listener);