123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- /*
- * @Author: jiejie
- * @Github: https://github.com/jiejieTop
- * @Date: 2019-12-09 21:30:54
- * @LastEditTime: 2020-06-05 17:17:48
- * @Description: the code belongs to jiejie, please keep the author information and source code according to the license.
- */
- #include "platform_timer.h"
- #include "platform_memory.h"
- #include "nettype_tcp.h"
- #ifndef MQTT_NETWORK_TYPE_NO_TLS
- #include "nettype_tls.h"
- #endif
- int network_read(network_t *n, unsigned char *buf, int len, int timeout)
- {
- #ifndef MQTT_NETWORK_TYPE_NO_TLS
- if (n->channel)
- return nettype_tls_read(n, buf, len, timeout);
- #endif
- return nettype_tcp_read(n, buf, len, timeout);
- }
- int network_write(network_t *n, unsigned char *buf, int len, int timeout)
- {
- #ifndef MQTT_NETWORK_TYPE_NO_TLS
- if (n->channel)
- return nettype_tls_write(n, buf, len, timeout);
- #endif
- return nettype_tcp_write(n, buf, len, timeout);
- }
- int network_connect(network_t *n)
- {
- #ifndef MQTT_NETWORK_TYPE_NO_TLS
- if (n->channel)
- return nettype_tls_connect(n);
- #endif
- return nettype_tcp_connect(n);
- }
- void network_disconnect(network_t *n)
- {
- #ifndef MQTT_NETWORK_TYPE_NO_TLS
- if (n->channel)
- nettype_tls_disconnect(n);
- else
- #endif
- nettype_tcp_disconnect(n);
- }
- int network_init(network_t *n, const char *host, const char *port, const char *ca)
- {
- if (NULL == n)
- RETURN_ERROR(MQTT_NULL_VALUE_ERROR);
- n->socket = -1;
- n->host = host;
- n->port = port;
- #ifndef MQTT_NETWORK_TYPE_NO_TLS
- n->channel = 0;
- if (NULL != ca) {
- network_set_ca(n, ca);
- }
- #endif
- RETURN_ERROR(MQTT_SUCCESS_ERROR);
- }
- void network_release(network_t* n)
- {
- if (n->socket >= 0)
- {
- network_disconnect(n);
- memset(n, 0, sizeof(network_t));
- }
- }
- void network_set_channel(network_t *n, int channel)
- {
- #ifndef MQTT_NETWORK_TYPE_NO_TLS
- n->channel = channel;
- #endif
- }
- int network_set_ca(network_t *n, const char *ca)
- {
- #ifndef MQTT_NETWORK_TYPE_NO_TLS
- if ((NULL == n) || (NULL == ca))
- RETURN_ERROR(MQTT_NULL_VALUE_ERROR);
-
- n->ca_crt = ca;
- n->ca_crt_len = strlen(ca);
- n->channel = NETWORK_CHANNEL_TLS;
- n->timeout_ms = MQTT_TLS_HANDSHAKE_TIMEOUT;
- #endif
- RETURN_ERROR(MQTT_SUCCESS_ERROR);
- }
- int network_set_host_port(network_t* n, char *host, char *port)
- {
- if (!(n && host && port))
- RETURN_ERROR(MQTT_NULL_VALUE_ERROR);
- n->host = host;
- n->port = port;
- RETURN_ERROR(MQTT_SUCCESS_ERROR);
- }
|