/* * @Author: jiejie * @Github: https://github.com/jiejieTop * @Date: 2019-12-09 21:31:02 * @LastEditTime: 2020-10-17 14:14:41 * @Description: the code belongs to jiejie, please keep the author information and source code according to the license. */ #ifndef _NETWORK_H_ #define _NETWORK_H_ #include "mqtt_defconfig.h" #ifdef __cplusplus extern "C" { #endif #define NETWORK_CHANNEL_TCP 0 #define NETWORK_CHANNEL_TLS 1 typedef struct network { const char *host; const char *port; int socket; #ifndef MQTT_NETWORK_TYPE_NO_TLS int channel; /* tcp or tls */ const char *ca_crt; unsigned int ca_crt_len; unsigned int timeout_ms; // SSL handshake timeout in millisecond void *nettype_tls_params; #endif } network_t; int network_init(network_t *n, const char *host, const char *port, const char *ca); int network_set_ca(network_t *n, const char *ca); void network_set_channel(network_t *n, int channel); int network_set_host_port(network_t* n, char *host, char *port); int network_read(network_t* n, unsigned char* buf, int len, int timeout); int network_write(network_t* n, unsigned char* buf, int len, int timeout); int network_connect(network_t* n); void network_disconnect(network_t *n); void network_release(network_t* n); #ifdef __cplusplus } #endif #endif