src/tcp.h
author Tero Marttila <terom@fixme.fi>
Fri, 08 May 2009 00:12:52 +0300
changeset 189 f351facab1f0
parent 177 a74b55104fb9
permissions -rw-r--r--
add a test/backtrace module and have ASSERT_FAIL dump out a backtrace, also, fix assert_str[n]cmp to handle should_be == NULL
#ifndef TCP_H
#define TCP_H

/**
 * @file
 *
 * TCP transport/service implementation.
 *
 * XXX: provide some TCP-specific type/functions?
 */
#include "transport.h"
#include "service.h"

/**
 * Connect the given transport via TCP to the given host/service. The transport will not be ready for use until the
 * transport_callbacks::on_connect callback has been invoked.
 *
 * XXX: blocking DNS resolution
 *
 * @param info the transport setup info
 * @param transport_ptr returned transport
 * @param host the hostname to connect to
 * @param service the service name (i.e. port) to connect to
 * @param err returned error info
 */
err_t tcp_connect (const struct transport_info *info, transport_t **transport_ptr, 
        const char *host, const char *service, error_t *err);

/**
 * Create a passive/listening TCP socket on the given interface/port (NULL to pick automatically).
 */
err_t tcp_listen (const struct service_info *info, service_t **service_ptr, 
        const char *interface, const char *service, error_t *err);

#endif