Link Kit C-SDK  4.1.0
| 类型定义 | 枚举 | 函数
aiot_tunnel_api.h 文件参考

安全隧道能力连接的功能实现 更多...

#include <stdint.h>
aiot_tunnel_api.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

struct  aiot_tunnel_service_t
 本地服务信息 更多...
 
struct  aiot_tunnel_event_t
 tunnel内部事件 更多...
 
struct  aiot_tunnel_connect_param_t
 隧道建连需要的参数 更多...
 

类型定义

typedef void(* aiot_tunnel_event_handler_t) (void *handle, const aiot_tunnel_event_t *event, void *userdata)
 tunnel内部事件回调函数接口定义 更多...
 

枚举

enum  aiot_tunnel_event_type { AIOT_TUNNEL_EVT_CONNECT, AIOT_TUNNEL_EVT_DISCONNECT, AIOT_TUNNEL_EVT_EXPIRED }
 tunnel内部事件类型 更多...
 
enum  aiot_tunnel_option_t {
  AIOT_TUNNELOPT_EVENT_HANDLER, AIOT_TUNNELOPT_USERDATA, AIOT_TUNNELOPT_NETWORK_CRED, AIOT_TUNNELOPT_ADD_SERVICE,
  AIOT_TUNNELOPT_MAX
}
 

函数

void * aiot_tunnel_init (void)
 创建tunnel管理模块实例, 并以默认值配置会话参数 更多...
 
int32_t aiot_tunnel_setopt (void *handle, aiot_tunnel_option_t option, void *data)
 配置tunnel管理模块 更多...
 
int32_t aiot_tunnel_deinit (void **handle)
 结束tunnel管理模块, 销毁实例并回收资源 更多...
 
void * aiot_tunnel_start (void *handle)
 开始tunnel管理服务,作为后台线程开始运行,会一直阻塞,直至退出 更多...
 
int32_t aiot_tunnel_stop (void *handle)
 关闭tunnel管理服务,作为线程开始运行 更多...
 
int32_t aiot_tunnel_add (void *handle, char *tunnel_id, aiot_tunnel_connect_param_t *params)
 向隧道管理模块增加隧道,并建连 更多...
 
int32_t aiot_tunnel_update (void *handle, char *tunnel_id, aiot_tunnel_connect_param_t *params)
 更新隧道建来呢信息 更多...
 
int32_t aiot_tunnel_delete (void *handle, char *tunnel_id)
 从隧道管理模块删除隧道,并断连 更多...
 

详细描述

安全隧道能力连接的功能实现

类型定义说明

typedef void(* aiot_tunnel_event_handler_t) (void *handle, const aiot_tunnel_event_t *event, void *userdata)

tunnel内部事件回调函数接口定义

当tunnel内部事件被触发时, 调用此函数. 如连接成功/断开连接/

参数
[in]handletunnel管理模块句柄
[in]eventtunnel消息结构体, 存放内部事件
[in]userdata用户上下文

枚举类型说明

tunnel内部事件类型

枚举值
AIOT_TUNNEL_EVT_CONNECT 

当tunnel实例连接代理通道成功, 触发此事件

AIOT_TUNNEL_EVT_DISCONNECT 

当tunnel实例从代理通道断开, 触发此事件

AIOT_TUNNEL_EVT_EXPIRED 

隧道认证信息已经过期,需要重新连接

枚举值
AIOT_TUNNELOPT_EVENT_HANDLER 

设置内部事件回调, 它在内部事件触发, 告知用户

数据类型: ( aiot_tunnel_event_handler_t )

AIOT_TUNNELOPT_USERDATA 

用户需要SDK暂存的上下文

这个上下文指针会在 AIOT_TUNNELOPT_EVENT_HANDLER 设置的回调被调用时, 由SDK传给用户

数据类型: (void *)

AIOT_TUNNELOPT_NETWORK_CRED 

tunnel建联时, 网络使用的安全凭据

该配置项用于为底层网络配置aiot_sysdep_network_cred_t 安全凭据数据

  1. 若该选项不配置, 那么tunnel将以tcp方式直接建联
  2. aiot_sysdep_network_cred_t 中option配置为AIOT_SYSDEP_NETWORK_CRED_NONE , tunnel将以tcp方式直接建联
  3. aiot_sysdep_network_cred_t 中option配置为AIOT_SYSDEP_NETWORK_CRED_SVRCERT_CA , tunnel将以tls方式建联

数据类型: (aiot_sysdep_network_cred_t *)

AIOT_TUNNELOPT_ADD_SERVICE 

新增本地可提供的远程服务

AIOT_TUNNELOPT_MAX 

函数说明

void* aiot_tunnel_init ( void  )

创建tunnel管理模块实例, 并以默认值配置会话参数

返回
void *
返回值
非NULLtunnel实例的句柄
NULL初始化失败, 一般是内存分配失败导致

函数调用图:

int32_t aiot_tunnel_setopt ( void *  handle,
aiot_tunnel_option_t  option,
void *  data 
)

配置tunnel管理模块

参数
[in]handletunnel管理模块句柄
[in]option配置选项, 更多信息请参考aiot_tunnel_option_t
[in]data配置选项数据, 更多信息请参考aiot_tunnel_option_t
返回
int32_t
返回值
<STATE_SUCCESS参数配置失败
>=STATE_SUCCESS参数配置成功

函数调用图:

int32_t aiot_tunnel_deinit ( void **  handle)

结束tunnel管理模块, 销毁实例并回收资源

参数
[in]handle指向tunnel管理模块句柄的指针
返回
int32_t
返回值
<STATE_SUCCESS执行失败
>=STATE_SUCCESS执行成功

函数调用图:

void* aiot_tunnel_start ( void *  handle)

开始tunnel管理服务,作为后台线程开始运行,会一直阻塞,直至退出

参数
[in]handle指向tunnel管理模块句柄的指针
返回
int32_t*
返回值
<STATE_SUCCESS执行失败, 更多信息请参考 STATE_TUNNEL_* 定义
>=STATE_SUCCESS执行成功

函数调用图:

int32_t aiot_tunnel_stop ( void *  handle)

关闭tunnel管理服务,作为线程开始运行

参数
[in]handle指向tunnel管理模块句柄的指针
返回
int32_t*
返回值
<STATE_SUCCESS执行失败, 更多信息请参考 STATE_TUNNEL_* 定义
>=STATE_SUCCESS执行成功
int32_t aiot_tunnel_add ( void *  handle,
char *  tunnel_id,
aiot_tunnel_connect_param_t params 
)

向隧道管理模块增加隧道,并建连

参数
[in]handle指向tunnel管理模块句柄的指针
[in]tunnel_id隧道id
[in]params隧道的建连信息
返回
int32_t*
返回值
<STATE_SUCCESS执行失败, 更多信息请参考 STATE_TUNNEL_* 定义
>=STATE_SUCCESS执行成功

函数调用图:

int32_t aiot_tunnel_update ( void *  handle,
char *  tunnel_id,
aiot_tunnel_connect_param_t params 
)

更新隧道建来呢信息

参数
[in]handle指向tunnel管理模块句柄的指针
[in]tunnel_id隧道id
[in]params隧道的建连信息
当该隧道id已经存在,且在线时,会断连后使用新的建连信息建连
当该隧道id已经存在,且不在线时,会使用新的建连信息建连
当该隧道id不存在,会直接使用新的建连信息建连
返回
int32_t*
返回值
<STATE_SUCCESS执行失败, 更多信息请参考 STATE_TUNNEL_* 定义
>=STATE_SUCCESS执行成功

函数调用图:

int32_t aiot_tunnel_delete ( void *  handle,
char *  tunnel_id 
)

从隧道管理模块删除隧道,并断连

参数
[in]handle指向tunnel管理模块句柄的指针
[in]tunnel_id隧道的信息
返回
int32_t*
返回值
<STATE_SUCCESS执行失败, 更多信息请参考 STATE_TUNNEL_* 定义
>=STATE_SUCCESS执行成功

函数调用图: