
1. delete some junk files. 2. mqttclient added comments and updated to v1.0.2. 3. update README.md. 4. update the author's own server certificate. 5. minor changes to salof.
93 lines
2.8 KiB
C
93 lines
2.8 KiB
C
/*
|
|
* @Author: jiejie
|
|
* @Github: https://github.com/jiejieTop
|
|
* @Date: 2019-12-09 21:30:54
|
|
* @LastEditTime: 2020-02-25 03:49:43
|
|
* @Description: the code belongs to jiejie, please keep the author information and source code according to the license.
|
|
*/
|
|
#include "platform_timer.h"
|
|
#include "platform_nettype_tcp.h"
|
|
|
|
#ifdef MQTT_NETWORK_TYPE_TLS
|
|
#include "platform_nettype_tls.h"
|
|
#endif
|
|
|
|
int network_read(network_t *n, unsigned char *buf, int len, int timeout)
|
|
{
|
|
#ifdef MQTT_NETWORK_TYPE_TLS
|
|
return platform_nettype_tls_read(n, buf, len, timeout);
|
|
#else
|
|
return platform_nettype_tcp_read(n, buf, len, timeout);
|
|
#endif
|
|
}
|
|
|
|
int network_write(network_t *n, unsigned char *buf, int len, int timeout)
|
|
{
|
|
#ifdef MQTT_NETWORK_TYPE_TLS
|
|
return platform_nettype_tls_write(n, buf, len, timeout);
|
|
#else
|
|
return platform_nettype_tcp_write(n, buf, len, timeout);
|
|
#endif
|
|
}
|
|
|
|
int network_connect(network_t *n)
|
|
{
|
|
#ifdef MQTT_NETWORK_TYPE_TLS
|
|
return platform_nettype_tls_connect(n);
|
|
#else
|
|
return platform_nettype_tcp_connect(n);
|
|
#endif
|
|
}
|
|
|
|
void network_disconnect(network_t *n)
|
|
{
|
|
#ifdef MQTT_NETWORK_TYPE_TLS
|
|
platform_nettype_tls_disconnect(n);
|
|
#else
|
|
platform_nettype_tcp_disconnect(n);
|
|
#endif
|
|
}
|
|
|
|
int network_init(network_t* n, network_params_t* network_params)
|
|
{
|
|
if ((NULL == n) || (NULL == network_params) || (NULL == network_params->addr) || (NULL == network_params->port))
|
|
RETURN_ERROR(MQTT_NULL_VALUE_ERROR);
|
|
|
|
n->socket = -1;
|
|
n->read = network_read;
|
|
n->write = network_write;
|
|
n->connect = network_connect;
|
|
n->disconnect = network_disconnect;
|
|
n->network_params.addr = network_params->addr;
|
|
n->network_params.port = network_params->port;
|
|
|
|
#ifdef MQTT_NETWORK_TYPE_TLS
|
|
n->network_params.network_ssl_params.ca_crt = network_params->network_ssl_params.ca_crt;
|
|
n->network_params.network_ssl_params.ca_crt_len = strlen(n->network_params.network_ssl_params.ca_crt);
|
|
#if defined(MBEDTLS_FS_IO)
|
|
n->network_params.network_ssl_params.cert_file = network_params->network_ssl_params.cert_file;
|
|
n->network_params.network_ssl_params.key_file = network_params->network_ssl_params.key_file;
|
|
#else
|
|
#if defined(MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED)
|
|
n->network_params.network_ssl_params.psk = network_params->network_ssl_params.psk;
|
|
n->network_params.network_ssl_params.psk_id = network_params->network_ssl_params.psk_id;
|
|
n->network_params.network_ssl_params.psk_length = network_params->network_ssl_params.psk_length;
|
|
#endif
|
|
#endif
|
|
if (0 == network_params->network_ssl_params.timeout_ms)
|
|
network_params->network_ssl_params.timeout_ms = MQTT_TLS_HANDSHAKE_TIMEOUT;
|
|
n->network_params.network_ssl_params.timeout_ms = network_params->network_ssl_params.timeout_ms;
|
|
#endif
|
|
|
|
RETURN_ERROR(MQTT_SUCCESS_ERROR);
|
|
}
|
|
|
|
void network_release(network_t* n)
|
|
{
|
|
if (n->socket)
|
|
network_disconnect(n);
|
|
|
|
memset(n, 0, sizeof(network_t));
|
|
}
|
|
|