aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/io/tcp.c
diff options
context:
space:
mode:
Diffstat (limited to 'hicn-light/src/hicn/io/tcp.c')
-rw-r--r--hicn-light/src/hicn/io/tcp.c69
1 files changed, 34 insertions, 35 deletions
diff --git a/hicn-light/src/hicn/io/tcp.c b/hicn-light/src/hicn/io/tcp.c
index 03911e556..1e36f78ea 100644
--- a/hicn-light/src/hicn/io/tcp.c
+++ b/hicn-light/src/hicn/io/tcp.c
@@ -27,19 +27,18 @@
#include <stdio.h>
#include <string.h>
-#include <hicn/core/connection.h>
-#include <hicn/core/connection_vft.h>
-#include <hicn/core/listener.h>
-#include <hicn/core/listener_vft.h>
-#include <hicn/core/msgbuf.h>
-#include <hicn/core/forwarder.h>
-
-#include <hicn/core/messageHandler.h>
-
-#include <hicn/utils/commands.h>
+#include <hicn/hicn.h>
#include <hicn/util/log.h>
-#include <hicn/hicn.h>
+#include "base.h"
+#include "../core/connection.h"
+#include "../core/connection_vft.h"
+#include "../core/listener.h"
+#include "../core/listener_vft.h"
+#include "../core/msgbuf.h"
+#include "../core/forwarder.h"
+#include "../core/messageHandler.h"
+
// 128 KB output queue
#define OUTPUT_QUEUE_BYTES (128 * 1024)
@@ -93,13 +92,8 @@ listener_tcp_get_socket(const listener_t * listener, const address_t * local,
}
-static
-void
-listener_tcp_read_callback(listener_t * listener, int fd, void * data)
-{
- ERROR("[listener_tcp_read_callback] Not implemented");
-
-}
+#define listener_tcp_read_single io_read_single_socket
+#define listener_tcp_read_batch NULL
DECLARE_LISTENER(tcp);
@@ -149,12 +143,14 @@ connection_tcp_accept(connection_t * connection, forwarder_t *forwarder, int fd,
.closed = false,
};
- // XXX this new connection needs to be registered
- //char *str = pair_ToString(udp->pair);
+ char addr_str[INET6_ADDRSTRLEN];
+ if (local)
+ address_to_string(&(pair->local), addr_str);
+ else
+ address_to_string(&(pair->remote), addr_str);
INFO("%s connection %p created for address %s (local=%s)",
- face_type_str(connection->type), connection, "N/A",
+ face_type_str(connection->type), connection, addr_str,
connection_is_local(connection) ? "true" : "false");
- //free(str);
return 0;
}
@@ -224,7 +220,7 @@ int
connection_tcp_initialize(connection_t * connection)
{
assert(connection);
- assert(connection->type = FACE_TYPE_TCP);
+ assert(connection->type == FACE_TYPE_TCP);
connection_tcp_data_t * data = connection->data;
assert(data);
@@ -238,10 +234,12 @@ connection_tcp_initialize(connection_t * connection)
return -1;
}
- //char *pair_str = address_pair_ToString(pair);
- INFO("%s connection %p connect for address pair %s",
- face_type_str(connection->type), connection, "N/A");
- //free(pair_str);
+ char local_addr_str[INET6_ADDRSTRLEN];
+ address_to_string(&(connection->pair.local), local_addr_str);
+ char remote_addr_str[INET6_ADDRSTRLEN];
+ address_to_string(&(connection->pair.remote), remote_addr_str);
+ INFO("%s connection %p connect for address pair %s - %s",
+ face_type_str(connection->type), connection,local_addr_str, remote_addr_str);
return 0;
}
@@ -324,11 +322,10 @@ connection_tcp_sendv(connnection_t * connection, struct iovec * iov,
// XXX too much repeated code with sendv here
static
int
-connection_tcp_send(const connection_t * connection, //const address_t * address,
- msgbuf_t * msgbuf, bool queue)
+connection_tcp_send(const connection_t * connection, msgbuf_t * msgbuf,
+ bool queue)
{
assert(connection);
- assert(address);
/* msgbuf can be NULL */
/* No need to flush */
@@ -397,14 +394,14 @@ connection_tcp_read_message(connection_t * connection, msgbuf_t * msgbuf)
size_t n = evbuffer_get_length(data->evbuffer);
// XXX this check was wrong
- // parcAssertTrue(n >= sizeof(header_control_message),
+ // parcAssertTrue(n >= sizeof(cmd_header_t),
"Called with too short an input: %zu", n);
// XXX WTF
if (stream->next_len == 0) {
// this linearizes the first messageHandler_GetIPv6HeaderLength() bytes of the
// input buffer's iovecs and returns a pointer to it.
- uint8_t *fh = parcEventBuffer_Pullup(data->evbuffer, sizeof(header_control_message));
+ uint8_t *fh = parcEventBuffer_Pullup(data->evbuffer, sizeof(cmd_header_t));
// Calculate the total message size based on the fixed header
stream->next_len = messageHandler_GetTotalPacketLength(fh);
@@ -459,12 +456,13 @@ ERR:
* @param <#param1#>
* @return <#return#>
*/
+#if 0
static
void
connection_tcp_read_callback(connection_t * connection, int fd, void * user_data)
{
- assert(!!(what & PARCEventType_Read));
- assert(connection_void);
+ assert(connection);
+ /* user_data can be NULL */
connection_tcp_data_t * data = connection->data;
assert(RECV_BUFLEN - data->woff > MTU);
@@ -487,7 +485,7 @@ connection_tcp_read_callback(connection_t * connection, int fd, void * user_data
uint8_t * packet = data->buf + data->roff;
size_t size = data->woff - data->roff; /* > 0 */
- ssize_t used = listener_read_callback(connection->forwarder, NULL, fd,
+ ssize_t used = listener_read_callback(NULL, fd,
address_pair_get_local(&connection->pair), packet, size);
if (used < 0)
return; // XXX close connection ?
@@ -517,6 +515,7 @@ connection_tcp_read_callback(connection_t * connection, int fd, void * user_data
return;
}
+#endif
#if 0
static