2022-02-24 07:39:56 -03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/*
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  SPDX - FileCopyrightText :  2015 - 2022  Espressif  Systems  ( Shanghai )  CO  LTD 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  SPDX - License - Identifier :  Apache - 2.0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# ifndef _ESP_TRANSPORT_H_ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define _ESP_TRANSPORT_H_ 
 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# include  <esp_err.h> 
 
							 
						 
					
						
							
								
									
										
										
										
											2021-01-06 16:58:39 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# include  <stdbool.h> 
 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# ifdef __cplusplus 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								extern  " C "  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-01-06 16:58:39 +08:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*   @ brief  Keep  alive  parameters  structure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								*/ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  struct  esp_transport_keepalive  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    bool             keep_alive_enable ;       /*!< Enable keep-alive timeout */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    int              keep_alive_idle ;         /*!< Keep-alive idle time (second) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    int              keep_alive_interval ;     /*!< Keep-alive interval time (second) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    int              keep_alive_count ;        /*!< Keep-alive packet retry send count */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								}  esp_transport_keep_alive_t ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-04-21 12:41:58 -03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								typedef  struct  esp_transport_list_t *  esp_transport_list_handle_t ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								typedef  struct  esp_transport_item_t *  esp_transport_handle_t ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								typedef  int  ( * connect_func ) ( esp_transport_handle_t  t ,  const  char  * host ,  int  port ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  int  ( * io_func ) ( esp_transport_handle_t  t ,  const  char  * buffer ,  int  len ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  int  ( * io_read_func ) ( esp_transport_handle_t  t ,  char  * buffer ,  int  len ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  int  ( * trans_func ) ( esp_transport_handle_t  t ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  int  ( * poll_func ) ( esp_transport_handle_t  t ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  int  ( * connect_async_func ) ( esp_transport_handle_t  t ,  const  char  * host ,  int  port ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								typedef  esp_transport_handle_t  ( * payload_transfer_func ) ( esp_transport_handle_t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 11:58:38 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								typedef  struct  esp_tls_last_error *  esp_tls_error_handle_t ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-07 10:59:54 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief  Error  types  for  TCP  connection  issues  not  covered  in  socket ' s  errno 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								enum  esp_tcp_transport_err_t  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ERR_TCP_TRANSPORT_NO_MEM  =  - 3 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ERR_TCP_TRANSPORT_CONNECTION_FAILED  =  - 2 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ERR_TCP_TRANSPORT_CONNECTION_CLOSED_BY_FIN  =  - 1 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								    ERR_TCP_TRANSPORT_CONNECTION_TIMEOUT  =  0 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define ESP_ERR_TCP_TRANSPORT_BASE                      (0xe000)                           /*!< Starting number of TCP Transport error codes */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define ESP_ERR_TCP_TRANSPORT_CONNECTION_TIMEOUT        (ESP_ERR_TCP_TRANSPORT_BASE + 1)   /*!< Connection has timed out */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define ESP_ERR_TCP_TRANSPORT_CONNECTION_CLOSED_BY_FIN  (ESP_ERR_TCP_TRANSPORT_BASE + 2)   /*!< Read FIN from peer and the connection has closed (in a clean way) */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define ESP_ERR_TCP_TRANSPORT_CONNECTION_FAILED         (ESP_ERR_TCP_TRANSPORT_BASE + 3)   /*!< Failed to connect to the peer */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# define ESP_ERR_TCP_TRANSPORT_NO_MEM                    (ESP_ERR_TCP_TRANSPORT_BASE + 4)   /*!< Memory allocation failed */ 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Create  transport  list 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return      A  handle  can  hold  all  transports 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-16 16:33:30 +07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_transport_list_handle_t  esp_transport_list_init ( void ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Cleanup  and  free  all  transports ,  include  itself , 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *              this  function  will  invoke  esp_transport_destroy  of  every  transport  have  added  this  the  list 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   list   The  list 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_FAIL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_list_destroy ( esp_transport_list_handle_t  list ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Add  a  transport  to  the  list ,  and  define  a  scheme  to  indentify  this  transport  in  the  list 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   list     The  list 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t        The  Transport 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   scheme   The  scheme 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_list_add ( esp_transport_list_handle_t  list ,  esp_transport_handle_t  t ,  const  char  * scheme ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       This  function  will  remove  all  transport  from  the  list , 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *              invoke  esp_transport_destroy  of  every  transport  have  added  this  the  list 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   list   The  list 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_ERR_INVALID_ARG 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_list_clean ( esp_transport_list_handle_t  list ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  @ brief       Get  the  transport  by  scheme ,  which  has  been  defined  when  calling  function  ` esp_transport_list_add ` 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   list   The  list 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   tag    The  tag 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return      The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_transport_handle_t  esp_transport_list_get_transport ( esp_transport_list_handle_t  list ,  const  char  * scheme ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Initialize  a  transport  handle  object 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return      The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-07-16 16:33:30 +07:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_transport_handle_t  esp_transport_init ( void ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Cleanup  and  free  memory  the  transport 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t      The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_FAIL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_destroy ( esp_transport_handle_t  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Get  default  port  number  used  by  this  transport 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t      The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return      the  port  number 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  esp_transport_get_default_port ( esp_transport_handle_t  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Set  default  port  number  that  can  be  used  by  this  transport 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t      The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   port   The  port  number 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_FAIL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_set_default_port ( esp_transport_handle_t  t ,  int  port ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Transport  connection  function ,  to  make  a  connection  to  server 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param       t            The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   host         Hostname 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   port         Port 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-12 17:42:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   timeout_ms   The  timeout  milliseconds  ( - 1  indicates  wait  forever ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
									
										
										
										
											2022-02-24 07:39:56 -03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  -  0  in  case  of  successful  connection 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 *  -  ( - 1 )  if  there  are  any  errors ,  should  check  errno 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  esp_transport_connect ( esp_transport_handle_t  t ,  const  char  * host ,  int  port ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-08-07 23:26:59 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Non - blocking  transport  connection  function ,  to  make  a  connection  to  server 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param       t            The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   host         Hostname 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   port         Port 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-12 17:42:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   timeout_ms   The  timeout  milliseconds  ( - 1  indicates  wait  forever ) 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-07 23:26:59 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
									
										
										
										
											2022-02-24 07:39:56 -03:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *              -  - 1       If  connection  establishment  fails . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *              -   0       If  connection  establishment  is  in  progress . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *              -   1       If  connection  establishment  is  successful . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-07 23:26:59 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  esp_transport_connect_async ( esp_transport_handle_t  t ,  const  char  * host ,  int  port ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-07 23:26:59 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Transport  read  function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param       t            The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param       buffer       The  buffer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   len          The  length 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-12 17:42:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   timeout_ms   The  timeout  milliseconds  ( - 1  indicates  wait  forever ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *   -  Number  of  bytes  was  read 
							 
						 
					
						
							
								
									
										
										
										
											2022-03-07 10:59:54 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *   -  0     Read  timed - out 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *   -  ( < 0 )  For  other  errors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ note :  Please  refer  to  the  enum  ` esp_tcp_transport_err_t `  for  all  the  possible  return  values 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  esp_transport_read ( esp_transport_handle_t  t ,  char  * buffer ,  int  len ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Poll  the  transport  until  readable  or  timeout 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t            The  transport  handle 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-12 17:42:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   timeout_ms   The  timeout  milliseconds  ( - 1  indicates  wait  forever ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  0       Timeout 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ( - 1 )    If  there  are  any  errors ,  should  check  errno 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  other   The  transport  can  read 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  esp_transport_poll_read ( esp_transport_handle_t  t ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Transport  write  function 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param       t            The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param       buffer       The  buffer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   len          The  length 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-12 17:42:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   timeout_ms   The  timeout  milliseconds  ( - 1  indicates  wait  forever ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *   -  Number  of  bytes  was  written 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *   -  ( - 1 )  if  there  are  any  errors ,  should  check  errno 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  esp_transport_write ( esp_transport_handle_t  t ,  const  char  * buffer ,  int  len ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Poll  the  transport  until  writeable  or  timeout 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t            The  transport  handle 
							 
						 
					
						
							
								
									
										
										
										
											2019-11-12 17:42:51 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   timeout_ms   The  timeout  milliseconds  ( - 1  indicates  wait  forever ) 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  0       Timeout 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ( - 1 )    If  there  are  any  errors ,  should  check  errno 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  other   The  transport  can  write 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  esp_transport_poll_write ( esp_transport_handle_t  t ,  int  timeout_ms ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Transport  close 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param       t      The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  -  0  if  ok 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  -  ( - 1 )  if  there  are  any  errors ,  should  check  errno 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								int  esp_transport_close ( esp_transport_handle_t  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Get  user  data  context  of  this  transport 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t         The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return      The  user  data  context 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								void  * esp_transport_get_context_data ( esp_transport_handle_t  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 16:59:03 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Get  transport  handle  of  underlying  protocol 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *              which  can  access  this  protocol  payload  directly 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *              ( used  for  receiving  longer  msg  multiple  times ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t         The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return      Payload  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_transport_handle_t  esp_transport_get_payload_transport_handle ( esp_transport_handle_t  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-07-24 16:59:03 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Set  the  user  context  data  for  this  transport 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t         The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param       data      The  user  data  context 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_set_context_data ( esp_transport_handle_t  t ,  void  * data ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Set  transport  functions  for  the  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t             The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _connect      The  connect  function  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _read         The  read  function  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _write        The  write  function  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _close        The  close  function  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _poll_read    The  poll  read  function  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _poll_write   The  poll  write  function  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _destroy      The  destroy  function  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_set_func ( esp_transport_handle_t  t , 
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								                             connect_func  _connect , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             io_read_func  _read , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             io_func  _write , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             trans_func  _close , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             poll_func  _poll_read , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								                             poll_func  _poll_write , 
							 
						 
					
						
							
								
									
										
										
										
											2018-10-02 15:19:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								                             trans_func  _destroy ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-07 23:26:59 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Set  transport  functions  for  the  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t                     The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _connect_async_func   The  connect_async  function  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_FAIL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_set_async_connect_func ( esp_transport_handle_t  t ,  connect_async_func  _connect_async_func ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2018-08-07 23:26:59 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2018-10-02 15:19:46 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Set  parent  transport  function  to  the  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   t                     The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   _parent_transport     The  underlying  transport  getter  pointer 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_OK 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *      -  ESP_FAIL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_set_parent_transport_func ( esp_transport_handle_t  t ,  payload_transfer_func  _parent_transport ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-04-09 16:08:05 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 11:58:38 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *  @ brief       Returns  esp_tls  error  handle . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *              Warning :  The  returned  pointer  is  valid  only  as  long  as  esp_transport_handle_t  exists .  Once  transport 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *              handle  gets  destroyed ,  this  value  ( esp_tls_error_handle_t )  is  freed  automatically . 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-09 16:08:05 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]   A  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 11:58:38 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 *             -  valid  pointer  of  esp_error_handle_t 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *             -  NULL  if  invalid  transport  handle 
							 
						 
					
						
							
								
									
										
										
										
											2020-07-17 17:59:05 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-16 11:58:38 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								esp_tls_error_handle_t  esp_transport_get_error_handle ( esp_transport_handle_t  t ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-08 20:04:33 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief       Get  and  clear  last  captured  socket  errno 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  Socket  errno  is  internally  stored  whenever  any  of  public  facing  API 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  for  reading ,  writing ,  polling  or  connection  fails  returning  negative  return  code . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  The  error  code  corresponds  to  the  ` SO_ERROR `  value  retrieved  from  the  underlying 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  transport  socket  using  ` getsockopt ( ) `  API .  After  reading  the  captured  errno , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  the  internal  value  is  cleared  to  0. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]  t  The  transport  handle 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *    -  > = 0  Last  captured  socket  errno 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *    -  - 1   Invalid  transport  handle  or  invalid  transport ' s  internal  error  storage 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								int  esp_transport_get_errno ( esp_transport_handle_t  t ) ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-04-09 16:08:05 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-03-07 10:59:54 +05:30 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								/**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ brief  Translates  the  TCP  transport  error  codes  to  esp_err_t  error  codes 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ param [ in ]  error  TCP  Transport  specific  error  code 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 *  @ return  Corresponding  esp_err_t  based  error  code 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								esp_err_t  esp_transport_translate_error ( enum  esp_tcp_transport_err_t  error ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2017-11-14 10:16:20 +07:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								# ifdef __cplusplus 
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								# endif 
 
							 
						 
					
						
							
								
									
										
										
										
											2018-09-26 11:56:47 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								# endif  /* _ESP_TRANSPORT_ */