#include "caadapterinterface.h"
#include "cathreadpool.h"
#include "cainterface.h"
-#include "pdu.h"
+#include <coap/pdu.h>
#ifdef __cplusplus
extern "C"
{
#endif
+
+typedef enum CAProtocol
+{
+ UNKNOWN = 0,
+ TLS,
+ COAP
+} CAProtocol_t;
+
+/**
+ * TCP Connection State.
+ */
+typedef enum
+{
+ CONNECTING = 0,
+ CONNECTED,
+ DISCONNECTED
+} CATCPConnectionState_t;
+
/**
* TCP Session Information for IPv4 TCP transport
*/
int fd; /**< file descriptor info */
unsigned char* data; /**< received data from remote device */
size_t len; /**< received data length */
+ size_t totalLen; /**< total coap data length required to receive */
+ unsigned char tlsdata[18437]; /**< tls data(rfc5246: TLSCiphertext max (2^14+2048+5)) */
+ size_t tlsLen; /**< received tls data length */
+ CAProtocol_t protocol; /**< application-level protocol */
+ CATCPConnectionState_t state; /**< current tcp session state */
+ bool isClient; /**< Host Mode of Operation. */
} CATCPSessionInfo_t;
/**
CAResult_t CAStartTCP();
/**
+ * Disconnect TCP session.
+ * When there is no transmission for a long time.
+ * Some carrier Vendor is blocking data.
+ * Thur, TCP Session is cleaned through this function.
+ * @param[in] endpoint Remote Endpoint information (like ipaddress,
+ * port)
+ */
+CAResult_t CATCPDisconnectSession(const CAEndpoint_t *endpoint);
+
+/**
* Start listening server for receiving connect requests.
* Transport Specific Behavior:
* TCP Starts Listening Server on a particular interface and prefixed port