aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/core/listener.c
diff options
context:
space:
mode:
Diffstat (limited to 'hicn-light/src/hicn/core/listener.c')
-rw-r--r--hicn-light/src/hicn/core/listener.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/hicn-light/src/hicn/core/listener.c b/hicn-light/src/hicn/core/listener.c
index 0ab73b1f4..5857c0c88 100644
--- a/hicn-light/src/hicn/core/listener.c
+++ b/hicn-light/src/hicn/core/listener.c
@@ -88,9 +88,16 @@ listener_initialize(listener_t * listener, face_type_t type, const char * name,
// XXX data should be pre-allocated here
- if (loop_register_fd(MAIN_LOOP, listener->fd, listener,
- (fd_callback_t)listener_vft[listener->type]->read_callback, NULL) < 0)
+ loop_fd_event_create(&listener->event_data, MAIN_LOOP, listener->fd, listener,
+ (fd_callback_t)listener_vft[listener->type]->read_callback, NULL);
+
+ if (!listener->event_data) {
+ goto ERR_REGISTER_FD;
+ }
+
+ if (loop_fd_event_register(listener->event_data) < 0) {
goto ERR_REGISTER_FD;
+ }
// XXX TODO
//char *str = addressToString(listener->local_addr);
@@ -121,7 +128,7 @@ listener_finalize(listener_t * listener)
assert(listener);
assert(listener_has_valid_type(listener));
- loop_unregister_fd(MAIN_LOOP, listener->fd);
+ loop_event_unregister(listener->event_data);
#ifndef _WIN32
close(listener->fd);
@@ -134,6 +141,7 @@ listener_finalize(listener_t * listener)
free(listener->data);
free(listener->interface_name);
free(listener->name);
+ loop_event_free(listener->event_data);
return 0;
}
@@ -143,7 +151,7 @@ int listener_get_socket(const listener_t * listener, const address_t * local,
{
assert(listener);
assert(listener_has_valid_type(listener));
- assert(pair);
+ // assert(pair);
return listener_vft[listener->type]->get_socket(listener, local, remote,
interface_name);