Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
k-sdk
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈伟灿
k-sdk
Commits
dc8cade1
Commit
dc8cade1
authored
Nov 30, 2021
by
chen.weican
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】修改区域相关
【提交人】陈伟灿
parent
62c805fd
Changes
39
Hide whitespace changes
Inline
Side-by-side
Showing
39 changed files
with
306 additions
and
5234 deletions
+306
-5234
application/kcloud/iot.mk
application/kcloud/iot.mk
+5
-0
application/kcloud/kcloud_config.h
application/kcloud/kcloud_config.h
+1
-0
application/kcloud/kcloud_main.c
application/kcloud/kcloud_main.c
+101
-2
application/kcloud/kk_info_report.c
application/kcloud/kk_info_report.c
+1
-1
application/kcloud/kk_register.c
application/kcloud/kk_register.c
+15
-17
application/klansdk/iot.mk
application/klansdk/iot.mk
+4
-0
application/klansdk/kk_data_handle.c
application/klansdk/kk_data_handle.c
+11
-4
application/klansdk/kk_findccu_handle.c
application/klansdk/kk_findccu_handle.c
+6
-0
application/klansdk/kk_lan_ctrl.h
application/klansdk/kk_lan_ctrl.h
+0
-7
application/klansdk/kk_lan_debug.h
application/klansdk/kk_lan_debug.h
+1
-1
application/klansdk/kk_lan_main.c
application/klansdk/kk_lan_main.c
+27
-3
application/klansdk/kk_lan_node_db.h
application/klansdk/kk_lan_node_db.h
+4
-0
application/klansdk/kk_lan_voice_panel.c
application/klansdk/kk_lan_voice_panel.c
+2
-2
application/klansdk/kk_lan_vp_ctrl.c
application/klansdk/kk_lan_vp_ctrl.c
+2
-2
application/klansdk/kk_voice_panel_cfg.c
application/klansdk/kk_voice_panel_cfg.c
+2
-6
application/klansdk/kk_voice_panel_handle.c
application/klansdk/kk_voice_panel_handle.c
+3
-2
common/api/com_api.c
common/api/com_api.c
+6
-1
common/api/com_api.h
common/api/com_api.h
+1
-0
common/api/iot.mk
common/api/iot.mk
+3
-0
common/curl/include/curl.h
common/curl/include/curl.h
+0
-2931
common/curl/include/curlver.h
common/curl/include/curlver.h
+0
-77
common/curl/include/easy.h
common/curl/include/easy.h
+0
-123
common/curl/include/mprintf.h
common/curl/include/mprintf.h
+0
-50
common/curl/include/multi.h
common/curl/include/multi.h
+0
-456
common/curl/include/stdcheaders.h
common/curl/include/stdcheaders.h
+0
-33
common/curl/include/system.h
common/curl/include/system.h
+0
-612
common/curl/include/typecheck-gcc.h
common/curl/include/typecheck-gcc.h
+0
-700
common/curl/include/urlapi.h
common/curl/include/urlapi.h
+0
-125
common/hal/HAL_OS_linux.c
common/hal/HAL_OS_linux.c
+4
-0
common/hal/HAL_TCP_linux.c
common/hal/HAL_TCP_linux.c
+4
-0
common/hal/kk_product.h
common/hal/kk_product.h
+24
-4
midware/midware/dm/dm_ota.c
midware/midware/dm/dm_ota.c
+1
-1
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+25
-0
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+9
-9
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+4
-62
midware/midware/iot.mk
midware/midware/iot.mk
+4
-0
midware/midware/midware.c
midware/midware/midware.c
+32
-0
midware/midware/scene/kk_scene_handle.c
midware/midware/scene/kk_scene_handle.c
+3
-3
tools/board/config.linux.nx5
tools/board/config.linux.nx5
+1
-0
No files found.
application/kcloud/iot.mk
View file @
dc8cade1
...
@@ -8,6 +8,7 @@ CFLAGS += -I$(TOP_DIR)/common/api
...
@@ -8,6 +8,7 @@ CFLAGS += -I$(TOP_DIR)/common/api
CFLAGS
+=
-I
$(TOP_DIR)
/common/json
CFLAGS
+=
-I
$(TOP_DIR)
/common/json
CFLAGS
+=
-I
$(TOP_DIR)
/common/nanomsg/include
CFLAGS
+=
-I
$(TOP_DIR)
/common/nanomsg/include
CFLAGS
+=
-I
$(TOP_DIR)
/common/ev/include
CFLAGS
+=
-I
$(TOP_DIR)
/common/ev/include
CFLAGS
+=
-I
$(TOP_DIR)
/common/curl/include
LDFLAGS
+=
-lkk_tsl
LDFLAGS
+=
-lkk_tsl
LDFLAGS
+=
-lapi_com
LDFLAGS
+=
-lapi_com
ifeq
($(CONFIG_MODEL),x86)
ifeq
($(CONFIG_MODEL),x86)
...
@@ -19,6 +20,10 @@ else ifeq ($(CONFIG_MODEL),nx5)
...
@@ -19,6 +20,10 @@ else ifeq ($(CONFIG_MODEL),nx5)
else
ifeq
($(CONFIG_MODEL),8197)
else
ifeq
($(CONFIG_MODEL),8197)
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_8197
-lubacktrace
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_8197
-lubacktrace
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_8197
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_8197
else
ifeq
($(CONFIG_MODEL),a133)
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_a133
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_a133
LDFLAGS
+=
-L
$(TOP_DIR)
/common/curl
-lcurl_a133
else
else
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev
...
...
application/kcloud/kcloud_config.h
View file @
dc8cade1
...
@@ -24,5 +24,6 @@ typedef enum {
...
@@ -24,5 +24,6 @@ typedef enum {
int
KK_Get_ccuid
(
char
*
device_code
);
int
KK_Get_ccuid
(
char
*
device_code
);
int
kk_check_config_file
(
char
*
path
,
char
**
config
);
int
kk_check_config_file
(
char
*
path
,
char
**
config
);
int
kk_cloud_get_pid
(
char
*
productId
);
int
kk_cloud_get_pid
(
char
*
productId
);
int
kk_cloud_get_key
(
char
*
key
);
#endif
#endif
application/kcloud/kcloud_main.c
View file @
dc8cade1
...
@@ -47,6 +47,31 @@ static int KK_Ccuid_init(void)
...
@@ -47,6 +47,31 @@ static int KK_Ccuid_init(void)
char
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
char
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
char
ccuidTmp
[
DEVICE_CODE_LEN
]
=
{
0
};
char
ccuidTmp
[
DEVICE_CODE_LEN
]
=
{
0
};
int
ccuid_len
=
0
;
int
ccuid_len
=
0
;
#ifdef CONFIG_A133_PLATFORM
uint8_t
data
[
128
]
=
{
0
};
int
data_len
=
0
;
char
*
pstart
=
NULL
;
char
*
pEnd
=
NULL
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
data
,
sizeof
(
data
),
&
data_len
);
printf
(
"---GET_CCUID_CMD:%s
\n
"
,
data
);
if
(
data_len
>
0
&&
data_len
<=
128
){
pstart
=
data
;
pEnd
=
strstr
(
data
,
"-"
);
if
(
pstart
!=
NULL
&&
pEnd
!=
NULL
){
printf
(
"-------123---------------------
\n
"
);
memcpy
(
ccuidTmp
,
pstart
,
pEnd
-
pstart
);
_setDevice_Code
(
ccuidTmp
,
pEnd
-
pstart
);
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"KK_Ccuid_init get ccuid error
\n
"
);
return
-
1
;
}
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"KK_Ccuid_init get ccuid error
\n
"
);
return
-
1
;
}
#else
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
ccuid
,
sizeof
(
ccuid
),
&
ccuid_len
);
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
ccuid
,
sizeof
(
ccuid
),
&
ccuid_len
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
ccuid
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
ccuid
);
if
(
ccuid_len
>
0
&&
ccuid_len
<=
DEVICE_CODE_LEN
){
if
(
ccuid_len
>
0
&&
ccuid_len
<=
DEVICE_CODE_LEN
){
...
@@ -54,14 +79,41 @@ static int KK_Ccuid_init(void)
...
@@ -54,14 +79,41 @@ static int KK_Ccuid_init(void)
_setDevice_Code
(
ccuidTmp
,
strlen
(
ccuidTmp
)
-
1
);
//减一是因为最后有一个换行
_setDevice_Code
(
ccuidTmp
,
strlen
(
ccuidTmp
)
-
1
);
//减一是因为最后有一个换行
}
else
{
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"KK_Ccuid_init get ccuid error
\n
"
);
return
-
1
;
return
-
1
;
}
}
#endif
return
0
;
return
0
;
}
}
char
s_pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
char
s_pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
static
int
kk_cloud_pid_init
(
void
)
static
int
kk_cloud_pid_init
(
void
)
{
{
char
pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
#ifdef CONFIG_A133_PLATFORM
uint8_t
data
[
128
]
=
{
0
};
int
data_len
=
0
;
char
*
pstart
=
NULL
;
char
*
pEnd
=
NULL
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
data
,
sizeof
(
data
),
&
data_len
);
printf
(
"---GET_CCUID_CMD:%s
\n
"
,
data
);
if
(
data_len
>
0
&&
data_len
<=
128
){
pstart
=
data
;
pEnd
=
strstr
(
data
,
"pid_"
);
if
(
pstart
!=
NULL
&&
pEnd
!=
NULL
){
memcpy
(
s_pid
,
pEnd
+
4
,
data_len
-
1
-
(
pEnd
-
pstart
+
4
));
INFO_PRINT
(
"kk_cloud_pid_init s_pid:%s
\n
"
,
s_pid
);
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"KK_Ccuid_init get ccuid error
\n
"
);
return
-
1
;
}
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"KK_Ccuid_init get ccuid error
\n
"
);
return
-
1
;
}
#else
char
pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
int
pid_len
=
0
;
int
pid_len
=
0
;
HAL_Execel_cmd
(
GET_PRODUCTID_CMD
,(
char
*
)
pid
,
sizeof
(
pid
),
&
pid_len
);
HAL_Execel_cmd
(
GET_PRODUCTID_CMD
,(
char
*
)
pid
,
sizeof
(
pid
),
&
pid_len
);
if
(
pid_len
>
0
&&
pid_len
<=
PRODUCT_CODE_LEN
){
if
(
pid_len
>
0
&&
pid_len
<=
PRODUCT_CODE_LEN
){
...
@@ -70,6 +122,7 @@ static int kk_cloud_pid_init(void)
...
@@ -70,6 +122,7 @@ static int kk_cloud_pid_init(void)
}
else
{
}
else
{
return
-
1
;
return
-
1
;
}
}
#endif
return
0
;
return
0
;
}
}
int
kk_cloud_get_pid
(
char
*
productId
)
int
kk_cloud_get_pid
(
char
*
productId
)
...
@@ -78,7 +131,49 @@ int kk_cloud_get_pid(char *productId)
...
@@ -78,7 +131,49 @@ int kk_cloud_get_pid(char *productId)
printf
(
"kk_cloud_get_pid:%s
\n
"
,
s_pid
);
printf
(
"kk_cloud_get_pid:%s
\n
"
,
s_pid
);
return
strlen
(
s_pid
);
return
strlen
(
s_pid
);
}
}
char
s_key
[
128
]
=
{
0
};
static
int
kk_cloud_key_init
(
void
)
{
uint8_t
key
[
128
]
=
{
0
};
int
key_len
=
0
;
#ifdef CONFIG_A133_PLATFORM
char
*
pstart
=
NULL
;
char
*
pEnd
=
NULL
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
key
,
sizeof
(
key
),
&
key_len
);
printf
(
"---productSecret:%s
\n
"
,
key
);
if
(
key_len
>
0
&&
key_len
<=
128
){
pstart
=
strstr
(
key
,
"key_"
);;
pEnd
=
strstr
(
key
,
"-pid_"
);
if
(
pstart
!=
NULL
&&
pEnd
!=
NULL
){
memcpy
(
s_key
,
pstart
+
4
,
pEnd
-
pstart
+
4
);
INFO_PRINT
(
"kk_cloud_key_init s_key:%s
\n
"
,
s_key
);
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"kk_cloud_key_init error
\n
"
);
return
-
1
;
}
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"kk_cloud_key_init error
\n
"
);
return
-
1
;
}
#else
HAL_Execel_cmd
(
GET_KEY_CMD
,(
char
*
)
key
,
sizeof
(
key
),
&
key_len
);
if
(
key_len
>
0
&&
key_len
<=
128
){
memcpy
(
s_key
,
key
,
key_len
-
1
);
INFO_PRINT
(
"s_key:%s
\n
"
,
s_key
);
}
else
{
return
-
1
;
}
#endif
return
0
;
}
int
kk_cloud_get_key
(
char
*
key
)
{
strncpy
(
key
,
s_key
,
strlen
(
s_key
));
printf
(
"kk_cloud_get_key:%s
\n
"
,
s_key
);
return
strlen
(
s_key
);
}
static
int
mqtt_start
(
void
)
static
int
mqtt_start
(
void
)
{
{
...
@@ -176,9 +271,13 @@ int main(int argc, char* argv[])
...
@@ -176,9 +271,13 @@ int main(int argc, char* argv[])
return
0
;
return
0
;
}
}
kk_cloud_pid_init
();
kk_cloud_pid_init
();
kk_cloud_key_init
();
kk_ipc_init
(
IPC_APP2MID
,(
ipc_cb
*
)
KK_Data_FromDev
,
NULL
,
NULL
);
kk_ipc_init
(
IPC_APP2MID
,(
ipc_cb
*
)
KK_Data_FromDev
,
NULL
,
NULL
);
//kk_info_report_start();
//kk_info_report_start();
//
//
#ifdef CONFIG_NX5_PLATFORM
//adlakdlkf
#endif
#if 1
#if 1
kk_dl_config
();
kk_dl_config
();
again:
again:
...
...
application/kcloud/kk_info_report.c
View file @
dc8cade1
...
@@ -89,7 +89,7 @@ static int kk_info_get(char *str)
...
@@ -89,7 +89,7 @@ static int kk_info_get(char *str)
char
s_IP
[
NETWORK_ADDR_LEN
]
=
{
0
};
char
s_IP
[
NETWORK_ADDR_LEN
]
=
{
0
};
HAL_Get_IP
(
s_IP
,
NULL
);
HAL_Get_IP
(
s_IP
,
NULL
);
cJSON_AddItemToObject
(
args
,
"net"
,
net
);
cJSON_AddItemToObject
(
args
,
"net"
,
net
);
cJSON_AddStringToObject
(
net
,
"interface"
,
CCU_LAN
);
cJSON_AddStringToObject
(
net
,
"interface"
,
"eth0"
);
cJSON_AddStringToObject
(
net
,
"ip"
,
s_IP
);
cJSON_AddStringToObject
(
net
,
"ip"
,
s_IP
);
}
}
cJSON
*
lsc_status
=
cJSON_CreateObject
();
cJSON
*
lsc_status
=
cJSON_CreateObject
();
...
...
application/kcloud/kk_register.c
View file @
dc8cade1
...
@@ -22,7 +22,8 @@
...
@@ -22,7 +22,8 @@
#include <netinet/tcp.h>
#include <netinet/tcp.h>
#include <sys/stat.h>
#include <sys/stat.h>
#include "kk_log.h"
#include "kk_log.h"
#include <curl/curl.h>
//#include <curl/curl.h>
#include "../../common/curl/include/curl/curl.h"
#include "MQTTAsync.h"
#include "MQTTAsync.h"
#include "mqtt_api.h"
#include "mqtt_api.h"
#define BUFSIZE 1024
#define BUFSIZE 1024
...
@@ -115,11 +116,16 @@ int kk_parse_token(char *info){
...
@@ -115,11 +116,16 @@ int kk_parse_token(char *info){
cJSON
*
jwt
=
cJSON_GetObjectItem
(
data
,
"jwt"
);
cJSON
*
jwt
=
cJSON_GetObjectItem
(
data
,
"jwt"
);
if
(
jwt
==
NULL
)
return
-
1
;
if
(
jwt
==
NULL
)
return
-
1
;
fp
=
fopen
(
KK_TOKEN_PATH
,
"w+"
);
fp
=
fopen
(
KK_TOKEN_PATH
,
"w+"
);
if
(
fp
!=
NULL
){
if
(
fp
!=
NULL
){
fwrite
(
jwt
->
valuestring
,
strlen
(
jwt
->
valuestring
),
1
,
fp
);
fwrite
(
jwt
->
valuestring
,
strlen
(
jwt
->
valuestring
),
1
,
fp
);
#ifdef CONFIG_A133_PLATFORM
fsync
(
fp
);
fclose
(
fp
);
#else
fclose
(
fp
);
fclose
(
fp
);
system
(
"sync"
);
system
(
"sync;sync;sync"
);
}
#endif
}
//cJSON *ccuid = cJSON_GetObjectItem(infoObj,"ccu_id");
//cJSON *ccuid = cJSON_GetObjectItem(infoObj,"ccu_id");
//if(ccuid == NULL) return -1;
//if(ccuid == NULL) return -1;
//fp = fopen("/usr/kk/kk_ccuid.txt", "w+");
//fp = fopen("/usr/kk/kk_ccuid.txt", "w+");
...
@@ -246,17 +252,11 @@ static char * kk_create_register_info()
...
@@ -246,17 +252,11 @@ static char * kk_create_register_info()
HAL_GetTime_s
(
ramdonId
);
HAL_GetTime_s
(
ramdonId
);
KK_Get_ccuid
(
ccuid
);
KK_Get_ccuid
(
ccuid
);
kk_cloud_get_pid
(
pid
);
kk_cloud_get_pid
(
pid
);
kk_cloud_get_key
(
keyTmp
);
cJSON_AddStringToObject
(
root
,
"deviceCode"
,
ccuid
);
cJSON_AddStringToObject
(
root
,
"deviceCode"
,
ccuid
);
cJSON_AddStringToObject
(
root
,
"productCode"
,
pid
);
cJSON_AddStringToObject
(
root
,
"productCode"
,
pid
);
signSource
=
kk_dictionary_order
(
ccuid
,
pid
,
KK_CCU_RANDOM
);
signSource
=
kk_dictionary_order
(
ccuid
,
pid
,
KK_CCU_RANDOM
);
HAL_Execel_cmd
(
GET_KEY_CMD
,(
char
*
)
productSecret
,
sizeof
(
productSecret
),
&
productSecret_len
);
utils_hmac_sha256
((
const
uint8_t
*
)
signSource
,
strlen
(
signSource
),
(
const
uint8_t
*
)
keyTmp
,
strlen
((
const
char
*
)
keyTmp
),
sign_hex
);
if
(
productSecret_len
==
0
){
utils_hmac_sha256
((
const
uint8_t
*
)
signSource
,
strlen
(
signSource
),
(
const
uint8_t
*
)
PRODUCTSECRET
,
strlen
(
PRODUCTSECRET
),
sign_hex
);
}
else
{
memcpy
(
keyTmp
,
productSecret
,
productSecret_len
-
1
);
utils_hmac_sha256
((
const
uint8_t
*
)
signSource
,
strlen
(
signSource
),
(
const
uint8_t
*
)
keyTmp
,
strlen
((
const
char
*
)
keyTmp
),
sign_hex
);
}
arrayToStr
(
sign_hex
,
32
,
sign_hex_str
);
arrayToStr
(
sign_hex
,
32
,
sign_hex_str
);
base64Out
=
malloc
(
128
);
base64Out
=
malloc
(
128
);
...
@@ -510,10 +510,8 @@ static int _kk_auth_param_get(char *param){
...
@@ -510,10 +510,8 @@ static int _kk_auth_param_get(char *param){
return
-
1
;
return
-
1
;
}
}
KK_Get_ccuid
(
ccuid
);
KK_Get_ccuid
(
ccuid
);
HAL_Execel_cmd
(
GET_PRODUCTID_CMD
,(
char
*
)
productId
,
sizeof
(
productId
),
&
productid_len
);
kk_cloud_get_pid
(
productId
);
productId
[
productid_len
-
1
]
=
'\0'
;
kk_cloud_get_key
(
key
);
HAL_Execel_cmd
(
GET_KEY_CMD
,(
char
*
)
key
,
sizeof
(
key
),
&
key_len
);
key
[
key_len
-
1
]
=
'\0'
;
sprintf
(
param
,
"{
\"
username
\"
:
\"
%s
\"
,
\"
password
\"
:
\"
%s
\"
,
\"
productid
\"
:
\"
%s
\"
}"
,
sprintf
(
param
,
"{
\"
username
\"
:
\"
%s
\"
,
\"
password
\"
:
\"
%s
\"
,
\"
productid
\"
:
\"
%s
\"
}"
,
ccuid
,
key
,
productId
);
ccuid
,
key
,
productId
);
...
...
application/klansdk/iot.mk
View file @
dc8cade1
...
@@ -22,6 +22,10 @@ else ifeq ($(CONFIG_MODEL),nx5)
...
@@ -22,6 +22,10 @@ else ifeq ($(CONFIG_MODEL),nx5)
else
ifeq
($(CONFIG_MODEL),8197)
else
ifeq
($(CONFIG_MODEL),8197)
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_8197
-lubacktrace
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_8197
-lubacktrace
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_8197
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_8197
else
ifeq
($(CONFIG_MODEL),a133)
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_a133
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_a133
else
else
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev
...
...
application/klansdk/kk_data_handle.c
View file @
dc8cade1
...
@@ -379,13 +379,14 @@ int kk_data_handle(cJSON *json,int sockfd)
...
@@ -379,13 +379,14 @@ int kk_data_handle(cJSON *json,int sockfd)
if
(
key
!=
NULL
){
if
(
key
!=
NULL
){
kk_handle_del_history_info
(
key
->
valuestring
);
kk_handle_del_history_info
(
key
->
valuestring
);
}
}
}
else
if
(
strcmp
(
opcode
->
valuestring
,
VOICE_VOLUME_CTRL
)
==
0
){
}
#ifdef VOICE_SUPPORT
else
if
(
strcmp
(
opcode
->
valuestring
,
VOICE_VOLUME_CTRL
)
==
0
){
cJSON
*
vol
=
cJSON_GetObjectItem
(
json
,
"arg"
);
cJSON
*
vol
=
cJSON_GetObjectItem
(
json
,
"arg"
);
if
(
vol
!=
NULL
){
if
(
vol
!=
NULL
){
kk_voice_control
(
atoi
(
vol
->
valuestring
));
kk_voice_control
(
atoi
(
vol
->
valuestring
));
}
}
}
}
else
if
(
strcmp
(
opcode
->
valuestring
,
VOICE_SWITCH_CTRL
)
==
0
){
else
if
(
strcmp
(
opcode
->
valuestring
,
VOICE_SWITCH_CTRL
)
==
0
){
cJSON
*
onff
=
cJSON_GetObjectItem
(
json
,
"arg"
);
cJSON
*
onff
=
cJSON_GetObjectItem
(
json
,
"arg"
);
int
value
=
0
;
int
value
=
0
;
if
(
onff
!=
NULL
){
if
(
onff
!=
NULL
){
...
@@ -414,7 +415,9 @@ int kk_data_handle(cJSON *json,int sockfd)
...
@@ -414,7 +415,9 @@ int kk_data_handle(cJSON *json,int sockfd)
}
}
}
else
if
(
strcmp
(
opcode
->
valuestring
,
EXIT_VOICE_FACTORY
)
==
0
){
}
else
if
(
strcmp
(
opcode
->
valuestring
,
EXIT_VOICE_FACTORY
)
==
0
){
kk_voice_exit_factory_mode
();
kk_voice_exit_factory_mode
();
}
else
{
}
#endif
else
{
kk_ccu_opcode_handle
(
json
);
kk_ccu_opcode_handle
(
json
);
}
}
}
}
...
@@ -896,13 +899,17 @@ void KK_Data_FromMid(void* str,int len)
...
@@ -896,13 +899,17 @@ void KK_Data_FromMid(void* str,int len)
INFO_PRINT
(
"syncinfo_reply handle!!!"
);
INFO_PRINT
(
"syncinfo_reply handle!!!"
);
kk_parse_syncinfo
(
payload
);
kk_parse_syncinfo
(
payload
);
kk_create_syncinfo_to_sdk
(
payload
,
0
);
kk_create_syncinfo_to_sdk
(
payload
,
0
);
#ifdef VOICE_SUPPORT
kk_vp_syncinfo_handle
(
payload
);
kk_vp_syncinfo_handle
(
payload
);
#endif
}
else
if
(
strstr
(
msgtype
->
valuestring
,
SYNCPUSH_MSG_TYPE_REPLY
)
!=
NULL
){
}
else
if
(
strstr
(
msgtype
->
valuestring
,
SYNCPUSH_MSG_TYPE_REPLY
)
!=
NULL
){
INFO_PRINT
(
"syncinfopush_reply handle!!!"
);
INFO_PRINT
(
"syncinfopush_reply handle!!!"
);
kk_parse_syncinfo
(
payload
);
kk_parse_syncinfo
(
payload
);
kk_create_syncinfo_to_sdk
(
payload
,
1
);
kk_create_syncinfo_to_sdk
(
payload
,
1
);
#ifdef VOICE_SUPPORT
kk_vp_syncinfo_handle
(
payload
);
kk_vp_syncinfo_handle
(
payload
);
#endif
}
}
else
if
(
strstr
(
msgtype
->
valuestring
,
"/thing/event/property/post"
)
!=
NULL
){
else
if
(
strstr
(
msgtype
->
valuestring
,
"/thing/event/property/post"
)
!=
NULL
){
INFO_PRINT
(
"property post handle!!!"
);
INFO_PRINT
(
"property post handle!!!"
);
...
...
application/klansdk/kk_findccu_handle.c
View file @
dc8cade1
...
@@ -34,9 +34,15 @@ static int kk_findccu_ack(int sockfd,struct sockaddr_in *addr){
...
@@ -34,9 +34,15 @@ static int kk_findccu_ack(int sockfd,struct sockaddr_in *addr){
args
=
cJSON_CreateObject
();
args
=
cJSON_CreateObject
();
if
(
args
){
if
(
args
){
cJSON_AddItemToObject
(
json
,
"arg"
,
args
);
cJSON_AddItemToObject
(
json
,
"arg"
,
args
);
#ifdef CONFIG_A133_PLATFORM
cJSON_AddStringToObject
(
args
,
"zkid"
,
ccuid
);
cJSON_AddStringToObject
(
args
,
"zk"
,
KK_CCU_NAME
);
HAL_Get_IP
(
s_IP
,
"eth0"
);
#else
cJSON_AddStringToObject
(
args
,
"zkid"
,
&
ccuid
[
4
]);
cJSON_AddStringToObject
(
args
,
"zkid"
,
&
ccuid
[
4
]);
cJSON_AddStringToObject
(
args
,
"zk"
,
KK_CCU_NAME
);
cJSON_AddStringToObject
(
args
,
"zk"
,
KK_CCU_NAME
);
HAL_Get_IP
(
s_IP
,
NULL
);
HAL_Get_IP
(
s_IP
,
NULL
);
#endif
cJSON_AddStringToObject
(
args
,
"ip"
,
s_IP
);
cJSON_AddStringToObject
(
args
,
"ip"
,
s_IP
);
cJSON_AddBoolToObject
(
args
,
"ssl"
,
FALSE
);
cJSON_AddBoolToObject
(
args
,
"ssl"
,
FALSE
);
}
}
...
...
application/klansdk/kk_lan_ctrl.h
View file @
dc8cade1
...
@@ -4,13 +4,6 @@
...
@@ -4,13 +4,6 @@
int
kk_ccu_opcode_handle
(
cJSON
*
root
);
int
kk_ccu_opcode_handle
(
cJSON
*
root
);
void
property_post_deal
(
const
char
*
deviceCode
,
cJSON
*
payload
);
void
property_post_deal
(
const
char
*
deviceCode
,
cJSON
*
payload
);
...
...
application/klansdk/kk_lan_debug.h
View file @
dc8cade1
...
@@ -104,7 +104,7 @@ static const int g_syslog = 1;
...
@@ -104,7 +104,7 @@ static const int g_syslog = 1;
//#define VOICE_SUPPORT
...
...
application/klansdk/kk_lan_main.c
View file @
dc8cade1
...
@@ -54,6 +54,28 @@ static int _setDevice_Code(_IN_ char *device_code,int len)
...
@@ -54,6 +54,28 @@ static int _setDevice_Code(_IN_ char *device_code,int len)
char
s_pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
char
s_pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
static
int
kk_lan_pid_init
(
void
)
static
int
kk_lan_pid_init
(
void
)
{
{
#ifdef CONFIG_A133_PLATFORM
uint8_t
data
[
128
]
=
{
0
};
int
data_len
=
0
;
uint8_t
uuid
[
32
]
=
{
0
};
char
*
pstart
=
NULL
;
char
*
pEnd
=
NULL
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
data
,
sizeof
(
data
),
&
data_len
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
data
);
if
(
data_len
>
0
&&
data_len
<=
128
){
pstart
=
data
;
pEnd
=
strstr
(
data
,
"pid_"
);
if
(
pstart
!=
NULL
&&
pEnd
!=
NULL
){
memcpy
(
s_pid
,
pEnd
+
4
,
data_len
-
1
-
(
pEnd
-
pstart
+
4
));
INFO_PRINT
(
"s_pid:%s
\n
"
,
s_pid
);
}
else
{
return
-
1
;
}
}
else
{
return
-
1
;
}
#else
char
pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
char
pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
int
pid_len
=
0
;
int
pid_len
=
0
;
HAL_Execel_cmd
(
GET_PRODUCTID_CMD
,(
char
*
)
pid
,
sizeof
(
pid
),
&
pid_len
);
HAL_Execel_cmd
(
GET_PRODUCTID_CMD
,(
char
*
)
pid
,
sizeof
(
pid
),
&
pid_len
);
...
@@ -63,6 +85,7 @@ static int kk_lan_pid_init(void)
...
@@ -63,6 +85,7 @@ static int kk_lan_pid_init(void)
}
else
{
}
else
{
return
-
1
;
return
-
1
;
}
}
#endif
return
0
;
return
0
;
}
}
int
kk_lan_get_pid
(
_OU_
char
*
productId
)
int
kk_lan_get_pid
(
_OU_
char
*
productId
)
...
@@ -188,11 +211,11 @@ int main(int argc, char* argv[])
...
@@ -188,11 +211,11 @@ int main(int argc, char* argv[])
struct
sigaction
sa
;
struct
sigaction
sa
;
/* setup alarm signal handler */
/* setup alarm signal handler */
#ifdef CONFIG_NX5_PLATFORM
for
(
int
i
=
1
;
i
<
32
;
i
++
){
for
(
int
i
=
1
;
i
<
32
;
i
++
){
signal
(
i
,
handler
);
signal
(
i
,
handler
);
}
}
#endif
//signal(SIGPIPE, SIG_IGN);
//signal(SIGPIPE, SIG_IGN);
...
@@ -217,8 +240,9 @@ int main(int argc, char* argv[])
...
@@ -217,8 +240,9 @@ int main(int argc, char* argv[])
kk_map_dev_init
();
kk_map_dev_init
();
kk_login_init
();
kk_login_init
();
#ifdef VOICE_SUPPORT
kk_voice_panel_init
(
argc
,
argv
);
kk_voice_panel_init
(
argc
,
argv
);
#endif
//lan_queue_init();
//lan_queue_init();
kk_lan_db_node_init
();
kk_lan_db_node_init
();
...
...
application/klansdk/kk_lan_node_db.h
View file @
dc8cade1
...
@@ -3,7 +3,11 @@
...
@@ -3,7 +3,11 @@
#include "sqlite3.h"
#include "sqlite3.h"
#ifdef CONFIG_A133_PLATFORM
#define KK_LAN_NODE_DB_FILE "/data/local/kk/kk_lan_node.db"
#else
#define KK_LAN_NODE_DB_FILE "/data/kk/kk_lan_node.db"
#define KK_LAN_NODE_DB_FILE "/data/kk/kk_lan_node.db"
#endif
typedef
struct
{
typedef
struct
{
void
*
mutex
;
void
*
mutex
;
...
...
application/klansdk/kk_lan_voice_panel.c
View file @
dc8cade1
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
#include "Serial.h"
#include "Serial.h"
#include "uart_proto.h"
#include "uart_proto.h"
#ifdef VOICE_SUPPORT
static
pthread_mutex_t
v_mux
;
static
pthread_mutex_t
v_mux
;
...
@@ -503,7 +503,7 @@ int kk_voice_panel_init(int argc, char* argv[])
...
@@ -503,7 +503,7 @@ int kk_voice_panel_init(int argc, char* argv[])
return
0
;
return
0
;
}
}
#endif
...
...
application/klansdk/kk_lan_vp_ctrl.c
View file @
dc8cade1
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
#include "cJSON.h"
#include "cJSON.h"
#include "kk_voice_panel_cfg.h"
#include "kk_voice_panel_cfg.h"
#include "kk_lan_sync.h"
#include "kk_lan_sync.h"
#ifdef VOICE_SUPPORT
typedef
cJSON
*
(
*
dev_handle_func
)(
int
ep
,
uint8_t
*
arg
,
uint8_t
arg_len
,
kk_map_dev_node_t
*
node
);
typedef
cJSON
*
(
*
dev_handle_func
)(
int
ep
,
uint8_t
*
arg
,
uint8_t
arg_len
,
kk_map_dev_node_t
*
node
);
typedef
struct
{
typedef
struct
{
...
@@ -1251,7 +1251,7 @@ int kk_lan_vp_control(uint8_t num,uint32_t nodeIdAry[],uint8_t *arg,uint8_t arg_
...
@@ -1251,7 +1251,7 @@ int kk_lan_vp_control(uint8_t num,uint32_t nodeIdAry[],uint8_t *arg,uint8_t arg_
return
err
;
return
err
;
}
}
#endif
...
...
application/klansdk/kk_voice_panel_cfg.c
View file @
dc8cade1
...
@@ -3,15 +3,11 @@
...
@@ -3,15 +3,11 @@
#include <stdlib.h>
#include <stdlib.h>
#include <string.h>
#include <string.h>
#include <pthread.h>
#include <pthread.h>
#include "kk_voice_panel_cfg.h"
#include "kk_voice_panel_cfg.h"
#include "kk_ccu_msg.h"
#include "kk_ccu_msg.h"
#include "kk_lan_node_db.h"
#include "kk_lan_node_db.h"
#include "kk_voice_panel_handle.h"
#include "kk_voice_panel_handle.h"
#ifdef VOICE_SUPPORT
static
_OUT
int
node_id_check
(
_IN
cJSON
*
zbDevsAry
,
_IN
const
char
*
id
);
static
_OUT
int
node_id_check
(
_IN
cJSON
*
zbDevsAry
,
_IN
const
char
*
id
);
...
@@ -1250,7 +1246,7 @@ _OUT int kk_vp_syncinfo(_IN cJSON *payload,_IN int ver,_OUT cJSON **root)
...
@@ -1250,7 +1246,7 @@ _OUT int kk_vp_syncinfo(_IN cJSON *payload,_IN int ver,_OUT cJSON **root)
return
-
1
;
return
-
1
;
}
}
#endif
...
...
application/klansdk/kk_voice_panel_handle.c
View file @
dc8cade1
...
@@ -12,6 +12,7 @@
...
@@ -12,6 +12,7 @@
#include "Serial.h"
#include "Serial.h"
#include "kk_oldccu_msg.h"
#include "kk_oldccu_msg.h"
#include <ctype.h>
#include <ctype.h>
#ifdef VOICE_SUPPORT
#define MK_VERSION(x) ((*x<<24) | (*(x+1)<<16) | (*(x+2)<<8) | *(x+3))
#define MK_VERSION(x) ((*x<<24) | (*(x+1)<<16) | (*(x+2)<<8) | *(x+3))
#define MK_UINT32(x) ((*x<<24) | (*(x+1)<<16) | (*(x+2)<<8) | *(x+3))
#define MK_UINT32(x) ((*x<<24) | (*(x+1)<<16) | (*(x+2)<<8) | *(x+3))
...
@@ -1930,7 +1931,7 @@ static void kk_voice_volume_handle(pro_data_t *pro_data)
...
@@ -1930,7 +1931,7 @@ static void kk_voice_volume_handle(pro_data_t *pro_data)
int
ver
;
int
ver
;
unsigned
char
status
;
unsigned
char
status
;
char
vol
[
8
]
=
{
0
};
char
vol
[
8
]
=
{
0
};
if
((
err
=
pro_data
->
arg
[
0
])
==
0
)
{
if
((
err
=
pro_data
->
arg
[
0
])
==
0
)
{
debug_log
(
LOG_DEBUG_LEVEL
,
"volume=%d
\n
"
,
pro_data
->
arg
[
1
]);
debug_log
(
LOG_DEBUG_LEVEL
,
"volume=%d
\n
"
,
pro_data
->
arg
[
1
]);
sprintf
(
vol
,
"%d"
,
pro_data
->
arg
[
1
]);
sprintf
(
vol
,
"%d"
,
pro_data
->
arg
[
1
]);
...
@@ -1943,6 +1944,6 @@ static void kk_voice_volume_handle(pro_data_t *pro_data)
...
@@ -1943,6 +1944,6 @@ static void kk_voice_volume_handle(pro_data_t *pro_data)
cJSON_Delete
(
root
);
cJSON_Delete
(
root
);
}
}
}
}
#endif
common/api/com_api.c
View file @
dc8cade1
...
@@ -2,10 +2,15 @@
...
@@ -2,10 +2,15 @@
#include <pthread.h>
#include <pthread.h>
#include "com_api.h"
#include "com_api.h"
#include "kk_log.h"
#include "kk_log.h"
#ifdef CONFIG_A133_PLATFORM
#define APP2MID "ipc:///data/local/kk/etc/app2mid.ipc"
#define APP2MID_PUBSUB "ipc:///data/local/kk/etc/app2mid_pubsub.ipc"
#define PLAT2MID "ipc:///data/local/kk/etc/plat2mid.ipc"
#else
#define APP2MID "ipc:///tmp/app2mid.ipc"
#define APP2MID "ipc:///tmp/app2mid.ipc"
#define APP2MID_PUBSUB "ipc:///tmp/app2mid_pubsub.ipc"
#define APP2MID_PUBSUB "ipc:///tmp/app2mid_pubsub.ipc"
#define PLAT2MID "ipc:///tmp/plat2mid.ipc"
#define PLAT2MID "ipc:///tmp/plat2mid.ipc"
#endif
//#define GW2CCU_PIPE "tcp://%s:5555"
//#define GW2CCU_PIPE "tcp://%s:5555"
//#define GW2CCU_PUBSUB "tcp://%s:5557"
//#define GW2CCU_PUBSUB "tcp://%s:5557"
#define GW2CCU_PIPE "tcp://%s:35567"
#define GW2CCU_PIPE "tcp://%s:35567"
...
...
common/api/com_api.h
View file @
dc8cade1
...
@@ -115,6 +115,7 @@ typedef enum {
...
@@ -115,6 +115,7 @@ typedef enum {
#define MSG_SCENE_SUPPORT "sceneSupport"
#define MSG_SCENE_SUPPORT "sceneSupport"
#define MSG_SCENE_MSGID "msgId"
#define MSG_SCENE_MSGID "msgId"
#define MSG_SCENE_SCENE_NAME "name"
#define MSG_SCENE_SCENE_NAME "name"
#define MSG_SCENE_ROOM_ID "roomId"
#define MSG_SCENE_ROOM_NAME "roomName"
#define MSG_SCENE_ROOM_NAME "roomName"
#define MSG_SCENE_SCENCTYPE "sceneType"
#define MSG_SCENE_SCENCTYPE "sceneType"
#define MSG_SCENE_ENABLE "enable"
#define MSG_SCENE_ENABLE "enable"
...
...
common/api/iot.mk
View file @
dc8cade1
...
@@ -8,6 +8,9 @@ ifeq ($(CONFIG_MODEL),x86)
...
@@ -8,6 +8,9 @@ ifeq ($(CONFIG_MODEL),x86)
else
ifeq
($(CONFIG_MODEL),nx5)
else
ifeq
($(CONFIG_MODEL),nx5)
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_nx5
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_nx5
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_nx5
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_nx5
else
ifeq
($(CONFIG_MODEL),a133)
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_a133
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_a133
else
else
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev
...
...
common/curl/include/curl.h
deleted
100644 → 0
View file @
62c805fd
This source diff could not be displayed because it is too large. You can
view the blob
instead.
common/curl/include/curlver.h
deleted
100644 → 0
View file @
62c805fd
#ifndef CURLINC_CURLVER_H
#define CURLINC_CURLVER_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
/* This header file contains nothing but libcurl version info, generated by
a script at release-time. This was made its own header file in 7.11.2 */
/* This is the global package copyright */
#define LIBCURL_COPYRIGHT "1996 - 2020 Daniel Stenberg, <daniel@haxx.se>."
/* This is the version number of the libcurl package from which this header
file origins: */
#define LIBCURL_VERSION "7.72.0"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 7
#define LIBCURL_VERSION_MINOR 72
#define LIBCURL_VERSION_PATCH 0
/* This is the numeric version of the libcurl version number, meant for easier
parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will
always follow this syntax:
0xXXYYZZ
Where XX, YY and ZZ are the main version, release and patch numbers in
hexadecimal (using 8 bits each). All three numbers are always represented
using two digits. 1.2 would appear as "0x010200" while version 9.11.7
appears as "0x090b07".
This 6-digit (24 bits) hexadecimal number does not show pre-release number,
and it is always a greater number in a more recent release. It makes
comparisons with greater than and less than work.
Note: This define is the full hex number and _does not_ use the
CURL_VERSION_BITS() macro since curl's own configure script greps for it
and needs it to contain the full number.
*/
#define LIBCURL_VERSION_NUM 0x074800
/*
* This is the date and time when the full source package was created. The
* timestamp is not stored in git, as the timestamp is properly set in the
* tarballs by the maketgz script.
*
* The format of the date follows this template:
*
* "2007-11-23"
*/
#define LIBCURL_TIMESTAMP "2020-08-27"
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z))
#define CURL_AT_LEAST_VERSION(x,y,z) \
(LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z))
#endif
/* CURLINC_CURLVER_H */
common/curl/include/easy.h
deleted
100644 → 0
View file @
62c805fd
#ifndef CURLINC_EASY_H
#define CURLINC_EASY_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
#ifdef __cplusplus
extern
"C"
{
#endif
/* Flag bits in the curl_blob struct: */
#define CURL_BLOB_COPY 1
/* tell libcurl to copy the data */
#define CURL_BLOB_NOCOPY 0
/* tell libcurl to NOT copy the data */
struct
curl_blob
{
void
*
data
;
size_t
len
;
unsigned
int
flags
;
/* bit 0 is defined, the rest are reserved and should be
left zeroes */
};
CURL_EXTERN
CURL
*
curl_easy_init
(
void
);
CURL_EXTERN
CURLcode
curl_easy_setopt
(
CURL
*
curl
,
CURLoption
option
,
...);
CURL_EXTERN
CURLcode
curl_easy_perform
(
CURL
*
curl
);
CURL_EXTERN
void
curl_easy_cleanup
(
CURL
*
curl
);
/*
* NAME curl_easy_getinfo()
*
* DESCRIPTION
*
* Request internal information from the curl session with this function. The
* third argument MUST be a pointer to a long, a pointer to a char * or a
* pointer to a double (as the documentation describes elsewhere). The data
* pointed to will be filled in accordingly and can be relied upon only if the
* function returns CURLE_OK. This function is intended to get used *AFTER* a
* performed transfer, all results from this function are undefined until the
* transfer is completed.
*/
CURL_EXTERN
CURLcode
curl_easy_getinfo
(
CURL
*
curl
,
CURLINFO
info
,
...);
/*
* NAME curl_easy_duphandle()
*
* DESCRIPTION
*
* Creates a new curl session handle with the same options set for the handle
* passed in. Duplicating a handle could only be a matter of cloning data and
* options, internal state info and things like persistent connections cannot
* be transferred. It is useful in multithreaded applications when you can run
* curl_easy_duphandle() for each new thread to avoid a series of identical
* curl_easy_setopt() invokes in every thread.
*/
CURL_EXTERN
CURL
*
curl_easy_duphandle
(
CURL
*
curl
);
/*
* NAME curl_easy_reset()
*
* DESCRIPTION
*
* Re-initializes a CURL handle to the default values. This puts back the
* handle to the same state as it was in when it was just created.
*
* It does keep: live connections, the Session ID cache, the DNS cache and the
* cookies.
*/
CURL_EXTERN
void
curl_easy_reset
(
CURL
*
curl
);
/*
* NAME curl_easy_recv()
*
* DESCRIPTION
*
* Receives data from the connected socket. Use after successful
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
*/
CURL_EXTERN
CURLcode
curl_easy_recv
(
CURL
*
curl
,
void
*
buffer
,
size_t
buflen
,
size_t
*
n
);
/*
* NAME curl_easy_send()
*
* DESCRIPTION
*
* Sends data over the connected socket. Use after successful
* curl_easy_perform() with CURLOPT_CONNECT_ONLY option.
*/
CURL_EXTERN
CURLcode
curl_easy_send
(
CURL
*
curl
,
const
void
*
buffer
,
size_t
buflen
,
size_t
*
n
);
/*
* NAME curl_easy_upkeep()
*
* DESCRIPTION
*
* Performs connection upkeep for the given session handle.
*/
CURL_EXTERN
CURLcode
curl_easy_upkeep
(
CURL
*
curl
);
#ifdef __cplusplus
}
#endif
#endif
common/curl/include/mprintf.h
deleted
100644 → 0
View file @
62c805fd
#ifndef CURLINC_MPRINTF_H
#define CURLINC_MPRINTF_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
#include <stdarg.h>
#include <stdio.h>
/* needed for FILE */
#include "curl.h"
/* for CURL_EXTERN */
#ifdef __cplusplus
extern
"C"
{
#endif
CURL_EXTERN
int
curl_mprintf
(
const
char
*
format
,
...);
CURL_EXTERN
int
curl_mfprintf
(
FILE
*
fd
,
const
char
*
format
,
...);
CURL_EXTERN
int
curl_msprintf
(
char
*
buffer
,
const
char
*
format
,
...);
CURL_EXTERN
int
curl_msnprintf
(
char
*
buffer
,
size_t
maxlength
,
const
char
*
format
,
...);
CURL_EXTERN
int
curl_mvprintf
(
const
char
*
format
,
va_list
args
);
CURL_EXTERN
int
curl_mvfprintf
(
FILE
*
fd
,
const
char
*
format
,
va_list
args
);
CURL_EXTERN
int
curl_mvsprintf
(
char
*
buffer
,
const
char
*
format
,
va_list
args
);
CURL_EXTERN
int
curl_mvsnprintf
(
char
*
buffer
,
size_t
maxlength
,
const
char
*
format
,
va_list
args
);
CURL_EXTERN
char
*
curl_maprintf
(
const
char
*
format
,
...);
CURL_EXTERN
char
*
curl_mvaprintf
(
const
char
*
format
,
va_list
args
);
#ifdef __cplusplus
}
#endif
#endif
/* CURLINC_MPRINTF_H */
common/curl/include/multi.h
deleted
100644 → 0
View file @
62c805fd
#ifndef CURLINC_MULTI_H
#define CURLINC_MULTI_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
/*
This is an "external" header file. Don't give away any internals here!
GOALS
o Enable a "pull" interface. The application that uses libcurl decides where
and when to ask libcurl to get/send data.
o Enable multiple simultaneous transfers in the same thread without making it
complicated for the application.
o Enable the application to select() on its own file descriptors and curl's
file descriptors simultaneous easily.
*/
/*
* This header file should not really need to include "curl.h" since curl.h
* itself includes this file and we expect user applications to do #include
* <curl/curl.h> without the need for especially including multi.h.
*
* For some reason we added this include here at one point, and rather than to
* break existing (wrongly written) libcurl applications, we leave it as-is
* but with this warning attached.
*/
#include "curl.h"
#ifdef __cplusplus
extern
"C"
{
#endif
#if defined(BUILDING_LIBCURL) || defined(CURL_STRICTER)
typedef
struct
Curl_multi
CURLM
;
#else
typedef
void
CURLM
;
#endif
typedef
enum
{
CURLM_CALL_MULTI_PERFORM
=
-
1
,
/* please call curl_multi_perform() or
curl_multi_socket*() soon */
CURLM_OK
,
CURLM_BAD_HANDLE
,
/* the passed-in handle is not a valid CURLM handle */
CURLM_BAD_EASY_HANDLE
,
/* an easy handle was not good/valid */
CURLM_OUT_OF_MEMORY
,
/* if you ever get this, you're in deep sh*t */
CURLM_INTERNAL_ERROR
,
/* this is a libcurl bug */
CURLM_BAD_SOCKET
,
/* the passed in socket argument did not match */
CURLM_UNKNOWN_OPTION
,
/* curl_multi_setopt() with unsupported option */
CURLM_ADDED_ALREADY
,
/* an easy handle already added to a multi handle was
attempted to get added - again */
CURLM_RECURSIVE_API_CALL
,
/* an api function was called from inside a
callback */
CURLM_WAKEUP_FAILURE
,
/* wakeup is unavailable or failed */
CURLM_BAD_FUNCTION_ARGUMENT
,
/* function called with a bad parameter */
CURLM_LAST
}
CURLMcode
;
/* just to make code nicer when using curl_multi_socket() you can now check
for CURLM_CALL_MULTI_SOCKET too in the same style it works for
curl_multi_perform() and CURLM_CALL_MULTI_PERFORM */
#define CURLM_CALL_MULTI_SOCKET CURLM_CALL_MULTI_PERFORM
/* bitmask bits for CURLMOPT_PIPELINING */
#define CURLPIPE_NOTHING 0L
#define CURLPIPE_HTTP1 1L
#define CURLPIPE_MULTIPLEX 2L
typedef
enum
{
CURLMSG_NONE
,
/* first, not used */
CURLMSG_DONE
,
/* This easy handle has completed. 'result' contains
the CURLcode of the transfer */
CURLMSG_LAST
/* last, not used */
}
CURLMSG
;
struct
CURLMsg
{
CURLMSG
msg
;
/* what this message means */
CURL
*
easy_handle
;
/* the handle it concerns */
union
{
void
*
whatever
;
/* message-specific data */
CURLcode
result
;
/* return code for transfer */
}
data
;
};
typedef
struct
CURLMsg
CURLMsg
;
/* Based on poll(2) structure and values.
* We don't use pollfd and POLL* constants explicitly
* to cover platforms without poll(). */
#define CURL_WAIT_POLLIN 0x0001
#define CURL_WAIT_POLLPRI 0x0002
#define CURL_WAIT_POLLOUT 0x0004
struct
curl_waitfd
{
curl_socket_t
fd
;
short
events
;
short
revents
;
/* not supported yet */
};
/*
* Name: curl_multi_init()
*
* Desc: inititalize multi-style curl usage
*
* Returns: a new CURLM handle to use in all 'curl_multi' functions.
*/
CURL_EXTERN
CURLM
*
curl_multi_init
(
void
);
/*
* Name: curl_multi_add_handle()
*
* Desc: add a standard curl handle to the multi stack
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_add_handle
(
CURLM
*
multi_handle
,
CURL
*
curl_handle
);
/*
* Name: curl_multi_remove_handle()
*
* Desc: removes a curl handle from the multi stack again
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_remove_handle
(
CURLM
*
multi_handle
,
CURL
*
curl_handle
);
/*
* Name: curl_multi_fdset()
*
* Desc: Ask curl for its fd_set sets. The app can use these to select() or
* poll() on. We want curl_multi_perform() called as soon as one of
* them are ready.
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_fdset
(
CURLM
*
multi_handle
,
curl_fd_set
*
read_fd_set
,
curl_fd_set
*
write_fd_set
,
curl_fd_set
*
exc_fd_set
,
int
*
max_fd
);
/*
* Name: curl_multi_wait()
*
* Desc: Poll on all fds within a CURLM set as well as any
* additional fds passed to the function.
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_wait
(
CURLM
*
multi_handle
,
struct
curl_waitfd
extra_fds
[],
unsigned
int
extra_nfds
,
int
timeout_ms
,
int
*
ret
);
/*
* Name: curl_multi_poll()
*
* Desc: Poll on all fds within a CURLM set as well as any
* additional fds passed to the function.
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_poll
(
CURLM
*
multi_handle
,
struct
curl_waitfd
extra_fds
[],
unsigned
int
extra_nfds
,
int
timeout_ms
,
int
*
ret
);
/*
* Name: curl_multi_wakeup()
*
* Desc: wakes up a sleeping curl_multi_poll call.
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_wakeup
(
CURLM
*
multi_handle
);
/*
* Name: curl_multi_perform()
*
* Desc: When the app thinks there's data available for curl it calls this
* function to read/write whatever there is right now. This returns
* as soon as the reads and writes are done. This function does not
* require that there actually is data available for reading or that
* data can be written, it can be called just in case. It returns
* the number of handles that still transfer data in the second
* argument's integer-pointer.
*
* Returns: CURLMcode type, general multi error code. *NOTE* that this only
* returns errors etc regarding the whole multi stack. There might
* still have occurred problems on individual transfers even when
* this returns OK.
*/
CURL_EXTERN
CURLMcode
curl_multi_perform
(
CURLM
*
multi_handle
,
int
*
running_handles
);
/*
* Name: curl_multi_cleanup()
*
* Desc: Cleans up and removes a whole multi stack. It does not free or
* touch any individual easy handles in any way. We need to define
* in what state those handles will be if this function is called
* in the middle of a transfer.
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_cleanup
(
CURLM
*
multi_handle
);
/*
* Name: curl_multi_info_read()
*
* Desc: Ask the multi handle if there's any messages/informationals from
* the individual transfers. Messages include informationals such as
* error code from the transfer or just the fact that a transfer is
* completed. More details on these should be written down as well.
*
* Repeated calls to this function will return a new struct each
* time, until a special "end of msgs" struct is returned as a signal
* that there is no more to get at this point.
*
* The data the returned pointer points to will not survive calling
* curl_multi_cleanup().
*
* The 'CURLMsg' struct is meant to be very simple and only contain
* very basic information. If more involved information is wanted,
* we will provide the particular "transfer handle" in that struct
* and that should/could/would be used in subsequent
* curl_easy_getinfo() calls (or similar). The point being that we
* must never expose complex structs to applications, as then we'll
* undoubtably get backwards compatibility problems in the future.
*
* Returns: A pointer to a filled-in struct, or NULL if it failed or ran out
* of structs. It also writes the number of messages left in the
* queue (after this read) in the integer the second argument points
* to.
*/
CURL_EXTERN
CURLMsg
*
curl_multi_info_read
(
CURLM
*
multi_handle
,
int
*
msgs_in_queue
);
/*
* Name: curl_multi_strerror()
*
* Desc: The curl_multi_strerror function may be used to turn a CURLMcode
* value into the equivalent human readable error string. This is
* useful for printing meaningful error messages.
*
* Returns: A pointer to a null-terminated error message.
*/
CURL_EXTERN
const
char
*
curl_multi_strerror
(
CURLMcode
);
/*
* Name: curl_multi_socket() and
* curl_multi_socket_all()
*
* Desc: An alternative version of curl_multi_perform() that allows the
* application to pass in one of the file descriptors that have been
* detected to have "action" on them and let libcurl perform.
* See man page for details.
*/
#define CURL_POLL_NONE 0
#define CURL_POLL_IN 1
#define CURL_POLL_OUT 2
#define CURL_POLL_INOUT 3
#define CURL_POLL_REMOVE 4
#define CURL_SOCKET_TIMEOUT CURL_SOCKET_BAD
#define CURL_CSELECT_IN 0x01
#define CURL_CSELECT_OUT 0x02
#define CURL_CSELECT_ERR 0x04
typedef
int
(
*
curl_socket_callback
)(
CURL
*
easy
,
/* easy handle */
curl_socket_t
s
,
/* socket */
int
what
,
/* see above */
void
*
userp
,
/* private callback
pointer */
void
*
socketp
);
/* private socket
pointer */
/*
* Name: curl_multi_timer_callback
*
* Desc: Called by libcurl whenever the library detects a change in the
* maximum number of milliseconds the app is allowed to wait before
* curl_multi_socket() or curl_multi_perform() must be called
* (to allow libcurl's timed events to take place).
*
* Returns: The callback should return zero.
*/
typedef
int
(
*
curl_multi_timer_callback
)(
CURLM
*
multi
,
/* multi handle */
long
timeout_ms
,
/* see above */
void
*
userp
);
/* private callback
pointer */
CURL_EXTERN
CURLMcode
curl_multi_socket
(
CURLM
*
multi_handle
,
curl_socket_t
s
,
int
*
running_handles
);
CURL_EXTERN
CURLMcode
curl_multi_socket_action
(
CURLM
*
multi_handle
,
curl_socket_t
s
,
int
ev_bitmask
,
int
*
running_handles
);
CURL_EXTERN
CURLMcode
curl_multi_socket_all
(
CURLM
*
multi_handle
,
int
*
running_handles
);
#ifndef CURL_ALLOW_OLD_MULTI_SOCKET
/* This macro below was added in 7.16.3 to push users who recompile to use
the new curl_multi_socket_action() instead of the old curl_multi_socket()
*/
#define curl_multi_socket(x,y,z) curl_multi_socket_action(x,y,0,z)
#endif
/*
* Name: curl_multi_timeout()
*
* Desc: Returns the maximum number of milliseconds the app is allowed to
* wait before curl_multi_socket() or curl_multi_perform() must be
* called (to allow libcurl's timed events to take place).
*
* Returns: CURLM error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_timeout
(
CURLM
*
multi_handle
,
long
*
milliseconds
);
typedef
enum
{
/* This is the socket callback function pointer */
CURLOPT
(
CURLMOPT_SOCKETFUNCTION
,
CURLOPTTYPE_FUNCTIONPOINT
,
1
),
/* This is the argument passed to the socket callback */
CURLOPT
(
CURLMOPT_SOCKETDATA
,
CURLOPTTYPE_OBJECTPOINT
,
2
),
/* set to 1 to enable pipelining for this multi handle */
CURLOPT
(
CURLMOPT_PIPELINING
,
CURLOPTTYPE_LONG
,
3
),
/* This is the timer callback function pointer */
CURLOPT
(
CURLMOPT_TIMERFUNCTION
,
CURLOPTTYPE_FUNCTIONPOINT
,
4
),
/* This is the argument passed to the timer callback */
CURLOPT
(
CURLMOPT_TIMERDATA
,
CURLOPTTYPE_OBJECTPOINT
,
5
),
/* maximum number of entries in the connection cache */
CURLOPT
(
CURLMOPT_MAXCONNECTS
,
CURLOPTTYPE_LONG
,
6
),
/* maximum number of (pipelining) connections to one host */
CURLOPT
(
CURLMOPT_MAX_HOST_CONNECTIONS
,
CURLOPTTYPE_LONG
,
7
),
/* maximum number of requests in a pipeline */
CURLOPT
(
CURLMOPT_MAX_PIPELINE_LENGTH
,
CURLOPTTYPE_LONG
,
8
),
/* a connection with a content-length longer than this
will not be considered for pipelining */
CURLOPT
(
CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE
,
CURLOPTTYPE_OFF_T
,
9
),
/* a connection with a chunk length longer than this
will not be considered for pipelining */
CURLOPT
(
CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE
,
CURLOPTTYPE_OFF_T
,
10
),
/* a list of site names(+port) that are blocked from pipelining */
CURLOPT
(
CURLMOPT_PIPELINING_SITE_BL
,
CURLOPTTYPE_OBJECTPOINT
,
11
),
/* a list of server types that are blocked from pipelining */
CURLOPT
(
CURLMOPT_PIPELINING_SERVER_BL
,
CURLOPTTYPE_OBJECTPOINT
,
12
),
/* maximum number of open connections in total */
CURLOPT
(
CURLMOPT_MAX_TOTAL_CONNECTIONS
,
CURLOPTTYPE_LONG
,
13
),
/* This is the server push callback function pointer */
CURLOPT
(
CURLMOPT_PUSHFUNCTION
,
CURLOPTTYPE_FUNCTIONPOINT
,
14
),
/* This is the argument passed to the server push callback */
CURLOPT
(
CURLMOPT_PUSHDATA
,
CURLOPTTYPE_OBJECTPOINT
,
15
),
/* maximum number of concurrent streams to support on a connection */
CURLOPT
(
CURLMOPT_MAX_CONCURRENT_STREAMS
,
CURLOPTTYPE_LONG
,
16
),
CURLMOPT_LASTENTRY
/* the last unused */
}
CURLMoption
;
/*
* Name: curl_multi_setopt()
*
* Desc: Sets options for the multi handle.
*
* Returns: CURLM error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_setopt
(
CURLM
*
multi_handle
,
CURLMoption
option
,
...);
/*
* Name: curl_multi_assign()
*
* Desc: This function sets an association in the multi handle between the
* given socket and a private pointer of the application. This is
* (only) useful for curl_multi_socket uses.
*
* Returns: CURLM error code.
*/
CURL_EXTERN
CURLMcode
curl_multi_assign
(
CURLM
*
multi_handle
,
curl_socket_t
sockfd
,
void
*
sockp
);
/*
* Name: curl_push_callback
*
* Desc: This callback gets called when a new stream is being pushed by the
* server. It approves or denies the new stream. It can also decide
* to completely fail the connection.
*
* Returns: CURL_PUSH_OK, CURL_PUSH_DENY or CURL_PUSH_ERROROUT
*/
#define CURL_PUSH_OK 0
#define CURL_PUSH_DENY 1
#define CURL_PUSH_ERROROUT 2
/* added in 7.72.0 */
struct
curl_pushheaders
;
/* forward declaration only */
CURL_EXTERN
char
*
curl_pushheader_bynum
(
struct
curl_pushheaders
*
h
,
size_t
num
);
CURL_EXTERN
char
*
curl_pushheader_byname
(
struct
curl_pushheaders
*
h
,
const
char
*
name
);
typedef
int
(
*
curl_push_callback
)(
CURL
*
parent
,
CURL
*
easy
,
size_t
num_headers
,
struct
curl_pushheaders
*
headers
,
void
*
userp
);
#ifdef __cplusplus
}
/* end of extern "C" */
#endif
#endif
common/curl/include/stdcheaders.h
deleted
100644 → 0
View file @
62c805fd
#ifndef CURLINC_STDCHEADERS_H
#define CURLINC_STDCHEADERS_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
#include <sys/types.h>
size_t
fread
(
void
*
,
size_t
,
size_t
,
FILE
*
);
size_t
fwrite
(
const
void
*
,
size_t
,
size_t
,
FILE
*
);
int
strcasecmp
(
const
char
*
,
const
char
*
);
int
strncasecmp
(
const
char
*
,
const
char
*
,
size_t
);
#endif
/* CURLINC_STDCHEADERS_H */
common/curl/include/system.h
deleted
100644 → 0
View file @
62c805fd
#ifndef CURLINC_SYSTEM_H
#define CURLINC_SYSTEM_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
/*
* Try to keep one section per platform, compiler and architecture, otherwise,
* if an existing section is reused for a different one and later on the
* original is adjusted, probably the piggybacking one can be adversely
* changed.
*
* In order to differentiate between platforms/compilers/architectures use
* only compiler built in predefined preprocessor symbols.
*
* curl_off_t
* ----------
*
* For any given platform/compiler curl_off_t must be typedef'ed to a 64-bit
* wide signed integral data type. The width of this data type must remain
* constant and independent of any possible large file support settings.
*
* As an exception to the above, curl_off_t shall be typedef'ed to a 32-bit
* wide signed integral data type if there is no 64-bit type.
*
* As a general rule, curl_off_t shall not be mapped to off_t. This rule shall
* only be violated if off_t is the only 64-bit data type available and the
* size of off_t is independent of large file support settings. Keep your
* build on the safe side avoiding an off_t gating. If you have a 64-bit
* off_t then take for sure that another 64-bit data type exists, dig deeper
* and you will find it.
*
*/
#if defined(__DJGPP__) || defined(__GO32__)
# if defined(__DJGPP__) && (__DJGPP__ > 1)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__SALFORDC__)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__BORLANDC__)
# if (__BORLANDC__ < 0x520)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# else
# define CURL_TYPEOF_CURL_OFF_T __int64
# define CURL_FORMAT_CURL_OFF_T "I64d"
# define CURL_FORMAT_CURL_OFF_TU "I64u"
# define CURL_SUFFIX_CURL_OFF_T i64
# define CURL_SUFFIX_CURL_OFF_TU ui64
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__TURBOC__)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__WATCOMC__)
# if defined(__386__)
# define CURL_TYPEOF_CURL_OFF_T __int64
# define CURL_FORMAT_CURL_OFF_T "I64d"
# define CURL_FORMAT_CURL_OFF_TU "I64u"
# define CURL_SUFFIX_CURL_OFF_T i64
# define CURL_SUFFIX_CURL_OFF_TU ui64
# else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__POCC__)
# if (__POCC__ < 280)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# elif defined(_MSC_VER)
# define CURL_TYPEOF_CURL_OFF_T __int64
# define CURL_FORMAT_CURL_OFF_T "I64d"
# define CURL_FORMAT_CURL_OFF_TU "I64u"
# define CURL_SUFFIX_CURL_OFF_T i64
# define CURL_SUFFIX_CURL_OFF_TU ui64
# else
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__LCC__)
# if defined(__e2k__)
/* MCST eLbrus C Compiler */
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
# else
/* Local (or Little) C Compiler */
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T int
# endif
#elif defined(__SYMBIAN32__)
# if defined(__EABI__)
/* Treat all ARM compilers equally */
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# elif defined(__CW32__)
# pragma longlong on
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# elif defined(__VC32__)
# define CURL_TYPEOF_CURL_OFF_T __int64
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
#elif defined(__MWERKS__)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(_WIN32_WCE)
# define CURL_TYPEOF_CURL_OFF_T __int64
# define CURL_FORMAT_CURL_OFF_T "I64d"
# define CURL_FORMAT_CURL_OFF_TU "I64u"
# define CURL_SUFFIX_CURL_OFF_T i64
# define CURL_SUFFIX_CURL_OFF_TU ui64
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__MINGW32__)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "I64d"
# define CURL_FORMAT_CURL_OFF_TU "I64u"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_WS2TCPIP_H 1
#elif defined(__VMS)
# if defined(__VAX)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# else
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T unsigned int
#elif defined(__OS400__)
# if defined(__ILEC400__)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
# endif
#elif defined(__MVS__)
# if defined(__IBMC__) || defined(__IBMCPP__)
# if defined(_ILP32)
# elif defined(_LP64)
# endif
# if defined(_LONG_LONG)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# elif defined(_LP64)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
# endif
#elif defined(__370__)
# if defined(__IBMC__) || defined(__IBMCPP__)
# if defined(_ILP32)
# elif defined(_LP64)
# endif
# if defined(_LONG_LONG)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# elif defined(_LP64)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
# endif
#elif defined(TPF)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__TINYC__)
/* also known as tcc */
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
/* Oracle Solaris Studio */
# if !defined(__LP64) && (defined(__ILP32) || \
defined(__i386) || \
defined(__sparcv8) || \
defined(__sparcv8plus))
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# elif defined(__LP64) || \
defined(__amd64) || defined(__sparcv9)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
#elif defined(__xlc__)
/* IBM xlc compiler */
# if !defined(_LP64)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
#elif defined(FreeRTOS)
/* Life on FreeRTOS */
#if (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
(defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
#else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_FREERTOS_SOCKETS_H 1
# define CURL_TYPEOF_CURL_SOCKLEN_T uint32_t
# define CURL_AVOID_SYS_TYPES_H 1
# define CURL_AVOID_SYS_SOCKET_H 1
#elif defined(MICRIUM)
#if (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
(defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
#else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T CPU_INT32S
# define CURL_AVOID_SYS_TYPES_H 1
# define CURL_AVOID_SYS_SOCKET_H 1
# define CURL_AVOID_SYS_TIME_H 1
/* ===================================== */
/* KEEP MSVC THE PENULTIMATE ENTRY */
/* ===================================== */
#elif defined(_MSC_VER)
# if (_MSC_VER >= 900) && (_INTEGRAL_MAX_BITS >= 64)
# define CURL_TYPEOF_CURL_OFF_T __int64
# define CURL_FORMAT_CURL_OFF_T "I64d"
# define CURL_FORMAT_CURL_OFF_TU "I64u"
# define CURL_SUFFIX_CURL_OFF_T i64
# define CURL_SUFFIX_CURL_OFF_TU ui64
# else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T int
/* ===================================== */
/* KEEP GENERIC GCC THE LAST ENTRY */
/* ===================================== */
#elif defined(__GNUC__) && !defined(_SCO_DS)
# if !defined(__LP64__) && \
(defined(__ILP32__) || defined(__i386__) || defined(__hppa__) || \
defined(__ppc__) || defined(__powerpc__) || defined(__arm__) || \
defined(__sparc__) || defined(__mips__) || defined(__sh__) || \
defined(__XTENSA__) || \
(defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
(defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L))
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
# elif defined(__LP64__) || \
defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
defined(__e2k__) || \
(defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \
(defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L)
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
#else
/* generic "safe guess" on old 32 bit style */
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#endif
#ifdef _AIX
/* AIX needs <sys/poll.h> */
#define CURL_PULL_SYS_POLL_H
#endif
/* CURL_PULL_WS2TCPIP_H is defined above when inclusion of header file */
/* ws2tcpip.h is required here to properly make type definitions below. */
#ifdef CURL_PULL_WS2TCPIP_H
# include <winsock2.h>
# include <windows.h>
# include <ws2tcpip.h>
#endif
/* CURL_PULL_SYS_TYPES_H is defined above when inclusion of header file */
/* sys/types.h is required here to properly make type definitions below. */
#ifdef CURL_PULL_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef CURL_FREERTOS_SOCKETS_H
# include <FreeRTOS.h>
# include <FreeRTOS_Sockets.h>
#include <stdint.h>
#include <stddef.h>
/* for the base type etc */
#include "portmacro.h"
#define curl_fd_set_typedefed
typedef
SocketSet_t
curl_fd_set
;
#define curl_struct_sockaddr freertos_sockaddr
#define curl_setsockopt(a,b,c,d,e) FreeRTOS_setsockopt(a,b,c,d,e)
#define curl_connect(a,b,c) FreeRTOS_connect(a,b,c)
#define curl_bind(a,b,c) FreeRTOS_bind(a,b,c)
#define curl_recv(a,b,c,d) FreeRTOS_recv(a,b,c,d)
#define curl_socket(a,b,c) FreeRTOS_socket(a,b,c)
/* not quite socket-style API */
#define CURL_FD_SET(a,b,c) FreeRTOS_FD_SET(a,b,c)
/* struct sockaddr "fix" */
#define sa_family sin_family
/* use our private pollfd struct alternative */
#define curl_pollfd curl_waitfd
#elif defined(MICRIUM)
#include <net/include/net_bsd.h>
/* make use of the types from net_bsd.h */
typedef
_size_t
size_t
;
typedef
_time_t
time_t
;
#define curl_fd_set_typedefed
typedef
struct
fd_set
curl_fd_set
;
#endif
/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */
/* sys/socket.h is required here to properly make type definitions below. */
#ifdef CURL_PULL_SYS_SOCKET_H
# include <sys/socket.h>
#endif
/* CURL_PULL_SYS_POLL_H is defined above when inclusion of header file */
/* sys/poll.h is required here to properly make type definitions below. */
#ifdef CURL_PULL_SYS_POLL_H
# include <sys/poll.h>
#endif
/* Data type definition of curl_socklen_t. */
#ifdef CURL_TYPEOF_CURL_SOCKLEN_T
typedef
CURL_TYPEOF_CURL_SOCKLEN_T
curl_socklen_t
;
#endif
/* Data type definition of curl_off_t. */
#ifdef CURL_TYPEOF_CURL_OFF_T
typedef
CURL_TYPEOF_CURL_OFF_T
curl_off_t
;
#endif
/*
* CURL_ISOCPP and CURL_OFF_T_C definitions are done here in order to allow
* these to be visible and exported by the external libcurl interface API,
* while also making them visible to the library internals, simply including
* curl_setup.h, without actually needing to include curl.h internally.
* If some day this section would grow big enough, all this should be moved
* to its own header file.
*/
/*
* Figure out if we can use the ## preprocessor operator, which is supported
* by ISO/ANSI C and C++. Some compilers support it without setting __STDC__
* or __cplusplus so we need to carefully check for them too.
*/
#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus) || \
defined(__HP_aCC) || defined(__BORLANDC__) || defined(__LCC__) || \
defined(__POCC__) || defined(__SALFORDC__) || defined(__HIGHC__) || \
defined(__ILEC400__)
/* This compiler is believed to have an ISO compatible preprocessor */
#define CURL_ISOCPP
#else
/* This compiler is believed NOT to have an ISO compatible preprocessor */
#undef CURL_ISOCPP
#endif
/*
* For the standard systems
*/
#ifndef curl_struct_sockaddr
#define curl_struct_sockaddr sockaddr
#endif
#ifndef curl_fd_set_typedefed
#define curl_fd_set_typedefed
typedef
fd_set
curl_fd_set
;
#endif
#ifndef curl_pollfd
#define curl_pollfd pollfd
#endif
#ifndef curl_setsockopt
#define curl_setsockopt(a,b,c,d,e) setsockopt(a,b,c,d,e)
#endif
#ifndef curl_bind
#define curl_bind(a,b,c) bind(a,b,c)
#endif
#ifndef curl_connect
#define curl_connect(a,b,c) connect(a,b,c)
#endif
#ifndef curl_recv
#define curl_recv(a,b,c,d) recv(a,b,c,d)
#endif
#ifndef curl_socket
#define curl_socket(a,b,c) socket(a,b,c)
#endif
#ifndef CURL_FD_SET
#define CURL_FD_SET(a,b,c) FD_SET(a,b)
#endif
/*
* Macros for minimum-width signed and unsigned curl_off_t integer constants.
*/
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551)
# define CURLINC_OFF_T_C_HLPR2(x) x
# define CURLINC_OFF_T_C_HLPR1(x) CURLINC_OFF_T_C_HLPR2(x)
# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T)
# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU)
#else
# ifdef CURL_ISOCPP
# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix
# else
# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val
/**/
Suffix
# endif
# define CURLINC_OFF_T_C_HLPR1(Val,Suffix) CURLINC_OFF_T_C_HLPR2(Val,Suffix)
# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T)
# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU)
#endif
#endif
/* CURLINC_SYSTEM_H */
common/curl/include/typecheck-gcc.h
deleted
100644 → 0
View file @
62c805fd
#ifndef CURLINC_TYPECHECK_GCC_H
#define CURLINC_TYPECHECK_GCC_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
/* wraps curl_easy_setopt() with typechecking */
/* To add a new kind of warning, add an
* if(curlcheck_sometype_option(_curl_opt))
* if(!curlcheck_sometype(value))
* _curl_easy_setopt_err_sometype();
* block and define curlcheck_sometype_option, curlcheck_sometype and
* _curl_easy_setopt_err_sometype below
*
* NOTE: We use two nested 'if' statements here instead of the && operator, in
* order to work around gcc bug #32061. It affects only gcc 4.3.x/4.4.x
* when compiling with -Wlogical-op.
*
* To add an option that uses the same type as an existing option, you'll just
* need to extend the appropriate _curl_*_option macro
*/
#define curl_easy_setopt(handle, option, value) \
__extension__({ \
__typeof__(option) _curl_opt = option; \
if(__builtin_constant_p(_curl_opt)) { \
if(curlcheck_long_option(_curl_opt)) \
if(!curlcheck_long(value)) \
_curl_easy_setopt_err_long(); \
if(curlcheck_off_t_option(_curl_opt)) \
if(!curlcheck_off_t(value)) \
_curl_easy_setopt_err_curl_off_t(); \
if(curlcheck_string_option(_curl_opt)) \
if(!curlcheck_string(value)) \
_curl_easy_setopt_err_string(); \
if(curlcheck_write_cb_option(_curl_opt)) \
if(!curlcheck_write_cb(value)) \
_curl_easy_setopt_err_write_callback(); \
if((_curl_opt) == CURLOPT_RESOLVER_START_FUNCTION) \
if(!curlcheck_resolver_start_callback(value)) \
_curl_easy_setopt_err_resolver_start_callback(); \
if((_curl_opt) == CURLOPT_READFUNCTION) \
if(!curlcheck_read_cb(value)) \
_curl_easy_setopt_err_read_cb(); \
if((_curl_opt) == CURLOPT_IOCTLFUNCTION) \
if(!curlcheck_ioctl_cb(value)) \
_curl_easy_setopt_err_ioctl_cb(); \
if((_curl_opt) == CURLOPT_SOCKOPTFUNCTION) \
if(!curlcheck_sockopt_cb(value)) \
_curl_easy_setopt_err_sockopt_cb(); \
if((_curl_opt) == CURLOPT_OPENSOCKETFUNCTION) \
if(!curlcheck_opensocket_cb(value)) \
_curl_easy_setopt_err_opensocket_cb(); \
if((_curl_opt) == CURLOPT_PROGRESSFUNCTION) \
if(!curlcheck_progress_cb(value)) \
_curl_easy_setopt_err_progress_cb(); \
if((_curl_opt) == CURLOPT_DEBUGFUNCTION) \
if(!curlcheck_debug_cb(value)) \
_curl_easy_setopt_err_debug_cb(); \
if((_curl_opt) == CURLOPT_SSL_CTX_FUNCTION) \
if(!curlcheck_ssl_ctx_cb(value)) \
_curl_easy_setopt_err_ssl_ctx_cb(); \
if(curlcheck_conv_cb_option(_curl_opt)) \
if(!curlcheck_conv_cb(value)) \
_curl_easy_setopt_err_conv_cb(); \
if((_curl_opt) == CURLOPT_SEEKFUNCTION) \
if(!curlcheck_seek_cb(value)) \
_curl_easy_setopt_err_seek_cb(); \
if(curlcheck_cb_data_option(_curl_opt)) \
if(!curlcheck_cb_data(value)) \
_curl_easy_setopt_err_cb_data(); \
if((_curl_opt) == CURLOPT_ERRORBUFFER) \
if(!curlcheck_error_buffer(value)) \
_curl_easy_setopt_err_error_buffer(); \
if((_curl_opt) == CURLOPT_STDERR) \
if(!curlcheck_FILE(value)) \
_curl_easy_setopt_err_FILE(); \
if(curlcheck_postfields_option(_curl_opt)) \
if(!curlcheck_postfields(value)) \
_curl_easy_setopt_err_postfields(); \
if((_curl_opt) == CURLOPT_HTTPPOST) \
if(!curlcheck_arr((value), struct curl_httppost)) \
_curl_easy_setopt_err_curl_httpost(); \
if((_curl_opt) == CURLOPT_MIMEPOST) \
if(!curlcheck_ptr((value), curl_mime)) \
_curl_easy_setopt_err_curl_mimepost(); \
if(curlcheck_slist_option(_curl_opt)) \
if(!curlcheck_arr((value), struct curl_slist)) \
_curl_easy_setopt_err_curl_slist(); \
if((_curl_opt) == CURLOPT_SHARE) \
if(!curlcheck_ptr((value), CURLSH)) \
_curl_easy_setopt_err_CURLSH(); \
} \
curl_easy_setopt(handle, _curl_opt, value); \
})
/* wraps curl_easy_getinfo() with typechecking */
#define curl_easy_getinfo(handle, info, arg) \
__extension__({ \
__typeof__(info) _curl_info = info; \
if(__builtin_constant_p(_curl_info)) { \
if(curlcheck_string_info(_curl_info)) \
if(!curlcheck_arr((arg), char *)) \
_curl_easy_getinfo_err_string(); \
if(curlcheck_long_info(_curl_info)) \
if(!curlcheck_arr((arg), long)) \
_curl_easy_getinfo_err_long(); \
if(curlcheck_double_info(_curl_info)) \
if(!curlcheck_arr((arg), double)) \
_curl_easy_getinfo_err_double(); \
if(curlcheck_slist_info(_curl_info)) \
if(!curlcheck_arr((arg), struct curl_slist *)) \
_curl_easy_getinfo_err_curl_slist(); \
if(curlcheck_tlssessioninfo_info(_curl_info)) \
if(!curlcheck_arr((arg), struct curl_tlssessioninfo *)) \
_curl_easy_getinfo_err_curl_tlssesssioninfo(); \
if(curlcheck_certinfo_info(_curl_info)) \
if(!curlcheck_arr((arg), struct curl_certinfo *)) \
_curl_easy_getinfo_err_curl_certinfo(); \
if(curlcheck_socket_info(_curl_info)) \
if(!curlcheck_arr((arg), curl_socket_t)) \
_curl_easy_getinfo_err_curl_socket(); \
if(curlcheck_off_t_info(_curl_info)) \
if(!curlcheck_arr((arg), curl_off_t)) \
_curl_easy_getinfo_err_curl_off_t(); \
} \
curl_easy_getinfo(handle, _curl_info, arg); \
})
/*
* For now, just make sure that the functions are called with three arguments
*/
#define curl_share_setopt(share,opt,param) curl_share_setopt(share,opt,param)
#define curl_multi_setopt(handle,opt,param) curl_multi_setopt(handle,opt,param)
/* the actual warnings, triggered by calling the _curl_easy_setopt_err*
* functions */
/* To define a new warning, use _CURL_WARNING(identifier, "message") */
#define CURLWARNING(id, message) \
static void __attribute__((__warning__(message))) \
__attribute__((__unused__)) __attribute__((__noinline__)) \
id(void) { __asm__(""); }
CURLWARNING
(
_curl_easy_setopt_err_long
,
"curl_easy_setopt expects a long argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_curl_off_t
,
"curl_easy_setopt expects a curl_off_t argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_string
,
"curl_easy_setopt expects a "
"string ('char *' or char[]) argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_write_callback
,
"curl_easy_setopt expects a curl_write_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_resolver_start_callback
,
"curl_easy_setopt expects a "
"curl_resolver_start_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_read_cb
,
"curl_easy_setopt expects a curl_read_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_ioctl_cb
,
"curl_easy_setopt expects a curl_ioctl_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_sockopt_cb
,
"curl_easy_setopt expects a curl_sockopt_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_opensocket_cb
,
"curl_easy_setopt expects a "
"curl_opensocket_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_progress_cb
,
"curl_easy_setopt expects a curl_progress_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_debug_cb
,
"curl_easy_setopt expects a curl_debug_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_ssl_ctx_cb
,
"curl_easy_setopt expects a curl_ssl_ctx_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_conv_cb
,
"curl_easy_setopt expects a curl_conv_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_seek_cb
,
"curl_easy_setopt expects a curl_seek_callback argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_cb_data
,
"curl_easy_setopt expects a "
"private data pointer as argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_error_buffer
,
"curl_easy_setopt expects a "
"char buffer of CURL_ERROR_SIZE as argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_FILE
,
"curl_easy_setopt expects a 'FILE *' argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_postfields
,
"curl_easy_setopt expects a 'void *' or 'char *' argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_curl_httpost
,
"curl_easy_setopt expects a 'struct curl_httppost *' "
"argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_curl_mimepost
,
"curl_easy_setopt expects a 'curl_mime *' "
"argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_curl_slist
,
"curl_easy_setopt expects a 'struct curl_slist *' argument for this option"
)
CURLWARNING
(
_curl_easy_setopt_err_CURLSH
,
"curl_easy_setopt expects a CURLSH* argument for this option"
)
CURLWARNING
(
_curl_easy_getinfo_err_string
,
"curl_easy_getinfo expects a pointer to 'char *' for this info"
)
CURLWARNING
(
_curl_easy_getinfo_err_long
,
"curl_easy_getinfo expects a pointer to long for this info"
)
CURLWARNING
(
_curl_easy_getinfo_err_double
,
"curl_easy_getinfo expects a pointer to double for this info"
)
CURLWARNING
(
_curl_easy_getinfo_err_curl_slist
,
"curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info"
)
CURLWARNING
(
_curl_easy_getinfo_err_curl_tlssesssioninfo
,
"curl_easy_getinfo expects a pointer to "
"'struct curl_tlssessioninfo *' for this info"
)
CURLWARNING
(
_curl_easy_getinfo_err_curl_certinfo
,
"curl_easy_getinfo expects a pointer to "
"'struct curl_certinfo *' for this info"
)
CURLWARNING
(
_curl_easy_getinfo_err_curl_socket
,
"curl_easy_getinfo expects a pointer to curl_socket_t for this info"
)
CURLWARNING
(
_curl_easy_getinfo_err_curl_off_t
,
"curl_easy_getinfo expects a pointer to curl_off_t for this info"
)
/* groups of curl_easy_setops options that take the same type of argument */
/* To add a new option to one of the groups, just add
* (option) == CURLOPT_SOMETHING
* to the or-expression. If the option takes a long or curl_off_t, you don't
* have to do anything
*/
/* evaluates to true if option takes a long argument */
#define curlcheck_long_option(option) \
(0 < (option) && (option) < CURLOPTTYPE_OBJECTPOINT)
#define curlcheck_off_t_option(option) \
(((option) > CURLOPTTYPE_OFF_T) && ((option) < CURLOPTTYPE_BLOB))
/* evaluates to true if option takes a char* argument */
#define curlcheck_string_option(option) \
((option) == CURLOPT_ABSTRACT_UNIX_SOCKET || \
(option) == CURLOPT_ACCEPT_ENCODING || \
(option) == CURLOPT_ALTSVC || \
(option) == CURLOPT_CAINFO || \
(option) == CURLOPT_CAPATH || \
(option) == CURLOPT_COOKIE || \
(option) == CURLOPT_COOKIEFILE || \
(option) == CURLOPT_COOKIEJAR || \
(option) == CURLOPT_COOKIELIST || \
(option) == CURLOPT_CRLFILE || \
(option) == CURLOPT_CUSTOMREQUEST || \
(option) == CURLOPT_DEFAULT_PROTOCOL || \
(option) == CURLOPT_DNS_INTERFACE || \
(option) == CURLOPT_DNS_LOCAL_IP4 || \
(option) == CURLOPT_DNS_LOCAL_IP6 || \
(option) == CURLOPT_DNS_SERVERS || \
(option) == CURLOPT_DOH_URL || \
(option) == CURLOPT_EGDSOCKET || \
(option) == CURLOPT_FTPPORT || \
(option) == CURLOPT_FTP_ACCOUNT || \
(option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \
(option) == CURLOPT_INTERFACE || \
(option) == CURLOPT_ISSUERCERT || \
(option) == CURLOPT_KEYPASSWD || \
(option) == CURLOPT_KRBLEVEL || \
(option) == CURLOPT_LOGIN_OPTIONS || \
(option) == CURLOPT_MAIL_AUTH || \
(option) == CURLOPT_MAIL_FROM || \
(option) == CURLOPT_NETRC_FILE || \
(option) == CURLOPT_NOPROXY || \
(option) == CURLOPT_PASSWORD || \
(option) == CURLOPT_PINNEDPUBLICKEY || \
(option) == CURLOPT_PRE_PROXY || \
(option) == CURLOPT_PROXY || \
(option) == CURLOPT_PROXYPASSWORD || \
(option) == CURLOPT_PROXYUSERNAME || \
(option) == CURLOPT_PROXYUSERPWD || \
(option) == CURLOPT_PROXY_CAINFO || \
(option) == CURLOPT_PROXY_CAPATH || \
(option) == CURLOPT_PROXY_CRLFILE || \
(option) == CURLOPT_PROXY_KEYPASSWD || \
(option) == CURLOPT_PROXY_PINNEDPUBLICKEY || \
(option) == CURLOPT_PROXY_SERVICE_NAME || \
(option) == CURLOPT_PROXY_SSLCERT || \
(option) == CURLOPT_PROXY_SSLCERTTYPE || \
(option) == CURLOPT_PROXY_SSLKEY || \
(option) == CURLOPT_PROXY_SSLKEYTYPE || \
(option) == CURLOPT_PROXY_SSL_CIPHER_LIST || \
(option) == CURLOPT_PROXY_TLS13_CIPHERS || \
(option) == CURLOPT_PROXY_TLSAUTH_PASSWORD || \
(option) == CURLOPT_PROXY_TLSAUTH_TYPE || \
(option) == CURLOPT_PROXY_TLSAUTH_USERNAME || \
(option) == CURLOPT_RANDOM_FILE || \
(option) == CURLOPT_RANGE || \
(option) == CURLOPT_REFERER || \
(option) == CURLOPT_REQUEST_TARGET || \
(option) == CURLOPT_RTSP_SESSION_ID || \
(option) == CURLOPT_RTSP_STREAM_URI || \
(option) == CURLOPT_RTSP_TRANSPORT || \
(option) == CURLOPT_SASL_AUTHZID || \
(option) == CURLOPT_SERVICE_NAME || \
(option) == CURLOPT_SOCKS5_GSSAPI_SERVICE || \
(option) == CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 || \
(option) == CURLOPT_SSH_KNOWNHOSTS || \
(option) == CURLOPT_SSH_PRIVATE_KEYFILE || \
(option) == CURLOPT_SSH_PUBLIC_KEYFILE || \
(option) == CURLOPT_SSLCERT || \
(option) == CURLOPT_SSLCERTTYPE || \
(option) == CURLOPT_SSLENGINE || \
(option) == CURLOPT_SSLKEY || \
(option) == CURLOPT_SSLKEYTYPE || \
(option) == CURLOPT_SSL_CIPHER_LIST || \
(option) == CURLOPT_TLS13_CIPHERS || \
(option) == CURLOPT_TLSAUTH_PASSWORD || \
(option) == CURLOPT_TLSAUTH_TYPE || \
(option) == CURLOPT_TLSAUTH_USERNAME || \
(option) == CURLOPT_UNIX_SOCKET_PATH || \
(option) == CURLOPT_URL || \
(option) == CURLOPT_USERAGENT || \
(option) == CURLOPT_USERNAME || \
(option) == CURLOPT_USERPWD || \
(option) == CURLOPT_XOAUTH2_BEARER || \
0)
/* evaluates to true if option takes a curl_write_callback argument */
#define curlcheck_write_cb_option(option) \
((option) == CURLOPT_HEADERFUNCTION || \
(option) == CURLOPT_WRITEFUNCTION)
/* evaluates to true if option takes a curl_conv_callback argument */
#define curlcheck_conv_cb_option(option) \
((option) == CURLOPT_CONV_TO_NETWORK_FUNCTION || \
(option) == CURLOPT_CONV_FROM_NETWORK_FUNCTION || \
(option) == CURLOPT_CONV_FROM_UTF8_FUNCTION)
/* evaluates to true if option takes a data argument to pass to a callback */
#define curlcheck_cb_data_option(option) \
((option) == CURLOPT_CHUNK_DATA || \
(option) == CURLOPT_CLOSESOCKETDATA || \
(option) == CURLOPT_DEBUGDATA || \
(option) == CURLOPT_FNMATCH_DATA || \
(option) == CURLOPT_HEADERDATA || \
(option) == CURLOPT_INTERLEAVEDATA || \
(option) == CURLOPT_IOCTLDATA || \
(option) == CURLOPT_OPENSOCKETDATA || \
(option) == CURLOPT_PRIVATE || \
(option) == CURLOPT_PROGRESSDATA || \
(option) == CURLOPT_READDATA || \
(option) == CURLOPT_SEEKDATA || \
(option) == CURLOPT_SOCKOPTDATA || \
(option) == CURLOPT_SSH_KEYDATA || \
(option) == CURLOPT_SSL_CTX_DATA || \
(option) == CURLOPT_WRITEDATA || \
(option) == CURLOPT_RESOLVER_START_DATA || \
(option) == CURLOPT_TRAILERDATA || \
0)
/* evaluates to true if option takes a POST data argument (void* or char*) */
#define curlcheck_postfields_option(option) \
((option) == CURLOPT_POSTFIELDS || \
(option) == CURLOPT_COPYPOSTFIELDS || \
0)
/* evaluates to true if option takes a struct curl_slist * argument */
#define curlcheck_slist_option(option) \
((option) == CURLOPT_HTTP200ALIASES || \
(option) == CURLOPT_HTTPHEADER || \
(option) == CURLOPT_MAIL_RCPT || \
(option) == CURLOPT_POSTQUOTE || \
(option) == CURLOPT_PREQUOTE || \
(option) == CURLOPT_PROXYHEADER || \
(option) == CURLOPT_QUOTE || \
(option) == CURLOPT_RESOLVE || \
(option) == CURLOPT_TELNETOPTIONS || \
(option) == CURLOPT_CONNECT_TO || \
0)
/* groups of curl_easy_getinfo infos that take the same type of argument */
/* evaluates to true if info expects a pointer to char * argument */
#define curlcheck_string_info(info) \
(CURLINFO_STRING < (info) && (info) < CURLINFO_LONG && \
(info) != CURLINFO_PRIVATE)
/* evaluates to true if info expects a pointer to long argument */
#define curlcheck_long_info(info) \
(CURLINFO_LONG < (info) && (info) < CURLINFO_DOUBLE)
/* evaluates to true if info expects a pointer to double argument */
#define curlcheck_double_info(info) \
(CURLINFO_DOUBLE < (info) && (info) < CURLINFO_SLIST)
/* true if info expects a pointer to struct curl_slist * argument */
#define curlcheck_slist_info(info) \
(((info) == CURLINFO_SSL_ENGINES) || ((info) == CURLINFO_COOKIELIST))
/* true if info expects a pointer to struct curl_tlssessioninfo * argument */
#define curlcheck_tlssessioninfo_info(info) \
(((info) == CURLINFO_TLS_SSL_PTR) || ((info) == CURLINFO_TLS_SESSION))
/* true if info expects a pointer to struct curl_certinfo * argument */
#define curlcheck_certinfo_info(info) ((info) == CURLINFO_CERTINFO)
/* true if info expects a pointer to struct curl_socket_t argument */
#define curlcheck_socket_info(info) \
(CURLINFO_SOCKET < (info) && (info) < CURLINFO_OFF_T)
/* true if info expects a pointer to curl_off_t argument */
#define curlcheck_off_t_info(info) \
(CURLINFO_OFF_T < (info))
/* typecheck helpers -- check whether given expression has requested type*/
/* For pointers, you can use the curlcheck_ptr/curlcheck_arr macros,
* otherwise define a new macro. Search for __builtin_types_compatible_p
* in the GCC manual.
* NOTE: these macros MUST NOT EVALUATE their arguments! The argument is
* the actual expression passed to the curl_easy_setopt macro. This
* means that you can only apply the sizeof and __typeof__ operators, no
* == or whatsoever.
*/
/* XXX: should evaluate to true if expr is a pointer */
#define curlcheck_any_ptr(expr) \
(sizeof(expr) == sizeof(void *))
/* evaluates to true if expr is NULL */
/* XXX: must not evaluate expr, so this check is not accurate */
#define curlcheck_NULL(expr) \
(__builtin_types_compatible_p(__typeof__(expr), __typeof__(NULL)))
/* evaluates to true if expr is type*, const type* or NULL */
#define curlcheck_ptr(expr, type) \
(curlcheck_NULL(expr) || \
__builtin_types_compatible_p(__typeof__(expr), type *) || \
__builtin_types_compatible_p(__typeof__(expr), const type *))
/* evaluates to true if expr is one of type[], type*, NULL or const type* */
#define curlcheck_arr(expr, type) \
(curlcheck_ptr((expr), type) || \
__builtin_types_compatible_p(__typeof__(expr), type []))
/* evaluates to true if expr is a string */
#define curlcheck_string(expr) \
(curlcheck_arr((expr), char) || \
curlcheck_arr((expr), signed char) || \
curlcheck_arr((expr), unsigned char))
/* evaluates to true if expr is a long (no matter the signedness)
* XXX: for now, int is also accepted (and therefore short and char, which
* are promoted to int when passed to a variadic function) */
#define curlcheck_long(expr) \
(__builtin_types_compatible_p(__typeof__(expr), long) || \
__builtin_types_compatible_p(__typeof__(expr), signed long) || \
__builtin_types_compatible_p(__typeof__(expr), unsigned long) || \
__builtin_types_compatible_p(__typeof__(expr), int) || \
__builtin_types_compatible_p(__typeof__(expr), signed int) || \
__builtin_types_compatible_p(__typeof__(expr), unsigned int) || \
__builtin_types_compatible_p(__typeof__(expr), short) || \
__builtin_types_compatible_p(__typeof__(expr), signed short) || \
__builtin_types_compatible_p(__typeof__(expr), unsigned short) || \
__builtin_types_compatible_p(__typeof__(expr), char) || \
__builtin_types_compatible_p(__typeof__(expr), signed char) || \
__builtin_types_compatible_p(__typeof__(expr), unsigned char))
/* evaluates to true if expr is of type curl_off_t */
#define curlcheck_off_t(expr) \
(__builtin_types_compatible_p(__typeof__(expr), curl_off_t))
/* evaluates to true if expr is abuffer suitable for CURLOPT_ERRORBUFFER */
/* XXX: also check size of an char[] array? */
#define curlcheck_error_buffer(expr) \
(curlcheck_NULL(expr) || \
__builtin_types_compatible_p(__typeof__(expr), char *) || \
__builtin_types_compatible_p(__typeof__(expr), char[]))
/* evaluates to true if expr is of type (const) void* or (const) FILE* */
#if 0
#define curlcheck_cb_data(expr) \
(curlcheck_ptr((expr), void) || \
curlcheck_ptr((expr), FILE))
#else
/* be less strict */
#define curlcheck_cb_data(expr) \
curlcheck_any_ptr(expr)
#endif
/* evaluates to true if expr is of type FILE* */
#define curlcheck_FILE(expr) \
(curlcheck_NULL(expr) || \
(__builtin_types_compatible_p(__typeof__(expr), FILE *)))
/* evaluates to true if expr can be passed as POST data (void* or char*) */
#define curlcheck_postfields(expr) \
(curlcheck_ptr((expr), void) || \
curlcheck_arr((expr), char) || \
curlcheck_arr((expr), unsigned char))
/* helper: __builtin_types_compatible_p distinguishes between functions and
* function pointers, hide it */
#define curlcheck_cb_compatible(func, type) \
(__builtin_types_compatible_p(__typeof__(func), type) || \
__builtin_types_compatible_p(__typeof__(func) *, type))
/* evaluates to true if expr is of type curl_resolver_start_callback */
#define curlcheck_resolver_start_callback(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_resolver_start_callback))
/* evaluates to true if expr is of type curl_read_callback or "similar" */
#define curlcheck_read_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), __typeof__(fread) *) || \
curlcheck_cb_compatible((expr), curl_read_callback) || \
curlcheck_cb_compatible((expr), _curl_read_callback1) || \
curlcheck_cb_compatible((expr), _curl_read_callback2) || \
curlcheck_cb_compatible((expr), _curl_read_callback3) || \
curlcheck_cb_compatible((expr), _curl_read_callback4) || \
curlcheck_cb_compatible((expr), _curl_read_callback5) || \
curlcheck_cb_compatible((expr), _curl_read_callback6))
typedef
size_t
(
*
_curl_read_callback1
)(
char
*
,
size_t
,
size_t
,
void
*
);
typedef
size_t
(
*
_curl_read_callback2
)(
char
*
,
size_t
,
size_t
,
const
void
*
);
typedef
size_t
(
*
_curl_read_callback3
)(
char
*
,
size_t
,
size_t
,
FILE
*
);
typedef
size_t
(
*
_curl_read_callback4
)(
void
*
,
size_t
,
size_t
,
void
*
);
typedef
size_t
(
*
_curl_read_callback5
)(
void
*
,
size_t
,
size_t
,
const
void
*
);
typedef
size_t
(
*
_curl_read_callback6
)(
void
*
,
size_t
,
size_t
,
FILE
*
);
/* evaluates to true if expr is of type curl_write_callback or "similar" */
#define curlcheck_write_cb(expr) \
(curlcheck_read_cb(expr) || \
curlcheck_cb_compatible((expr), __typeof__(fwrite) *) || \
curlcheck_cb_compatible((expr), curl_write_callback) || \
curlcheck_cb_compatible((expr), _curl_write_callback1) || \
curlcheck_cb_compatible((expr), _curl_write_callback2) || \
curlcheck_cb_compatible((expr), _curl_write_callback3) || \
curlcheck_cb_compatible((expr), _curl_write_callback4) || \
curlcheck_cb_compatible((expr), _curl_write_callback5) || \
curlcheck_cb_compatible((expr), _curl_write_callback6))
typedef
size_t
(
*
_curl_write_callback1
)(
const
char
*
,
size_t
,
size_t
,
void
*
);
typedef
size_t
(
*
_curl_write_callback2
)(
const
char
*
,
size_t
,
size_t
,
const
void
*
);
typedef
size_t
(
*
_curl_write_callback3
)(
const
char
*
,
size_t
,
size_t
,
FILE
*
);
typedef
size_t
(
*
_curl_write_callback4
)(
const
void
*
,
size_t
,
size_t
,
void
*
);
typedef
size_t
(
*
_curl_write_callback5
)(
const
void
*
,
size_t
,
size_t
,
const
void
*
);
typedef
size_t
(
*
_curl_write_callback6
)(
const
void
*
,
size_t
,
size_t
,
FILE
*
);
/* evaluates to true if expr is of type curl_ioctl_callback or "similar" */
#define curlcheck_ioctl_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_ioctl_callback) || \
curlcheck_cb_compatible((expr), _curl_ioctl_callback1) || \
curlcheck_cb_compatible((expr), _curl_ioctl_callback2) || \
curlcheck_cb_compatible((expr), _curl_ioctl_callback3) || \
curlcheck_cb_compatible((expr), _curl_ioctl_callback4))
typedef
curlioerr
(
*
_curl_ioctl_callback1
)(
CURL
*
,
int
,
void
*
);
typedef
curlioerr
(
*
_curl_ioctl_callback2
)(
CURL
*
,
int
,
const
void
*
);
typedef
curlioerr
(
*
_curl_ioctl_callback3
)(
CURL
*
,
curliocmd
,
void
*
);
typedef
curlioerr
(
*
_curl_ioctl_callback4
)(
CURL
*
,
curliocmd
,
const
void
*
);
/* evaluates to true if expr is of type curl_sockopt_callback or "similar" */
#define curlcheck_sockopt_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_sockopt_callback) || \
curlcheck_cb_compatible((expr), _curl_sockopt_callback1) || \
curlcheck_cb_compatible((expr), _curl_sockopt_callback2))
typedef
int
(
*
_curl_sockopt_callback1
)(
void
*
,
curl_socket_t
,
curlsocktype
);
typedef
int
(
*
_curl_sockopt_callback2
)(
const
void
*
,
curl_socket_t
,
curlsocktype
);
/* evaluates to true if expr is of type curl_opensocket_callback or
"similar" */
#define curlcheck_opensocket_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_opensocket_callback) || \
curlcheck_cb_compatible((expr), _curl_opensocket_callback1) || \
curlcheck_cb_compatible((expr), _curl_opensocket_callback2) || \
curlcheck_cb_compatible((expr), _curl_opensocket_callback3) || \
curlcheck_cb_compatible((expr), _curl_opensocket_callback4))
typedef
curl_socket_t
(
*
_curl_opensocket_callback1
)
(
void
*
,
curlsocktype
,
struct
curl_sockaddr
*
);
typedef
curl_socket_t
(
*
_curl_opensocket_callback2
)
(
void
*
,
curlsocktype
,
const
struct
curl_sockaddr
*
);
typedef
curl_socket_t
(
*
_curl_opensocket_callback3
)
(
const
void
*
,
curlsocktype
,
struct
curl_sockaddr
*
);
typedef
curl_socket_t
(
*
_curl_opensocket_callback4
)
(
const
void
*
,
curlsocktype
,
const
struct
curl_sockaddr
*
);
/* evaluates to true if expr is of type curl_progress_callback or "similar" */
#define curlcheck_progress_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_progress_callback) || \
curlcheck_cb_compatible((expr), _curl_progress_callback1) || \
curlcheck_cb_compatible((expr), _curl_progress_callback2))
typedef
int
(
*
_curl_progress_callback1
)(
void
*
,
double
,
double
,
double
,
double
);
typedef
int
(
*
_curl_progress_callback2
)(
const
void
*
,
double
,
double
,
double
,
double
);
/* evaluates to true if expr is of type curl_debug_callback or "similar" */
#define curlcheck_debug_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_debug_callback) || \
curlcheck_cb_compatible((expr), _curl_debug_callback1) || \
curlcheck_cb_compatible((expr), _curl_debug_callback2) || \
curlcheck_cb_compatible((expr), _curl_debug_callback3) || \
curlcheck_cb_compatible((expr), _curl_debug_callback4) || \
curlcheck_cb_compatible((expr), _curl_debug_callback5) || \
curlcheck_cb_compatible((expr), _curl_debug_callback6) || \
curlcheck_cb_compatible((expr), _curl_debug_callback7) || \
curlcheck_cb_compatible((expr), _curl_debug_callback8))
typedef
int
(
*
_curl_debug_callback1
)
(
CURL
*
,
curl_infotype
,
char
*
,
size_t
,
void
*
);
typedef
int
(
*
_curl_debug_callback2
)
(
CURL
*
,
curl_infotype
,
char
*
,
size_t
,
const
void
*
);
typedef
int
(
*
_curl_debug_callback3
)
(
CURL
*
,
curl_infotype
,
const
char
*
,
size_t
,
void
*
);
typedef
int
(
*
_curl_debug_callback4
)
(
CURL
*
,
curl_infotype
,
const
char
*
,
size_t
,
const
void
*
);
typedef
int
(
*
_curl_debug_callback5
)
(
CURL
*
,
curl_infotype
,
unsigned
char
*
,
size_t
,
void
*
);
typedef
int
(
*
_curl_debug_callback6
)
(
CURL
*
,
curl_infotype
,
unsigned
char
*
,
size_t
,
const
void
*
);
typedef
int
(
*
_curl_debug_callback7
)
(
CURL
*
,
curl_infotype
,
const
unsigned
char
*
,
size_t
,
void
*
);
typedef
int
(
*
_curl_debug_callback8
)
(
CURL
*
,
curl_infotype
,
const
unsigned
char
*
,
size_t
,
const
void
*
);
/* evaluates to true if expr is of type curl_ssl_ctx_callback or "similar" */
/* this is getting even messier... */
#define curlcheck_ssl_ctx_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_ssl_ctx_callback) || \
curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback1) || \
curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback2) || \
curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback3) || \
curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback4) || \
curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback5) || \
curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback6) || \
curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback7) || \
curlcheck_cb_compatible((expr), _curl_ssl_ctx_callback8))
typedef
CURLcode
(
*
_curl_ssl_ctx_callback1
)(
CURL
*
,
void
*
,
void
*
);
typedef
CURLcode
(
*
_curl_ssl_ctx_callback2
)(
CURL
*
,
void
*
,
const
void
*
);
typedef
CURLcode
(
*
_curl_ssl_ctx_callback3
)(
CURL
*
,
const
void
*
,
void
*
);
typedef
CURLcode
(
*
_curl_ssl_ctx_callback4
)(
CURL
*
,
const
void
*
,
const
void
*
);
#ifdef HEADER_SSL_H
/* hack: if we included OpenSSL's ssl.h, we know about SSL_CTX
* this will of course break if we're included before OpenSSL headers...
*/
typedef
CURLcode
(
*
_curl_ssl_ctx_callback5
)(
CURL
*
,
SSL_CTX
,
void
*
);
typedef
CURLcode
(
*
_curl_ssl_ctx_callback6
)(
CURL
*
,
SSL_CTX
,
const
void
*
);
typedef
CURLcode
(
*
_curl_ssl_ctx_callback7
)(
CURL
*
,
const
SSL_CTX
,
void
*
);
typedef
CURLcode
(
*
_curl_ssl_ctx_callback8
)(
CURL
*
,
const
SSL_CTX
,
const
void
*
);
#else
typedef
_curl_ssl_ctx_callback1
_curl_ssl_ctx_callback5
;
typedef
_curl_ssl_ctx_callback1
_curl_ssl_ctx_callback6
;
typedef
_curl_ssl_ctx_callback1
_curl_ssl_ctx_callback7
;
typedef
_curl_ssl_ctx_callback1
_curl_ssl_ctx_callback8
;
#endif
/* evaluates to true if expr is of type curl_conv_callback or "similar" */
#define curlcheck_conv_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_conv_callback) || \
curlcheck_cb_compatible((expr), _curl_conv_callback1) || \
curlcheck_cb_compatible((expr), _curl_conv_callback2) || \
curlcheck_cb_compatible((expr), _curl_conv_callback3) || \
curlcheck_cb_compatible((expr), _curl_conv_callback4))
typedef
CURLcode
(
*
_curl_conv_callback1
)(
char
*
,
size_t
length
);
typedef
CURLcode
(
*
_curl_conv_callback2
)(
const
char
*
,
size_t
length
);
typedef
CURLcode
(
*
_curl_conv_callback3
)(
void
*
,
size_t
length
);
typedef
CURLcode
(
*
_curl_conv_callback4
)(
const
void
*
,
size_t
length
);
/* evaluates to true if expr is of type curl_seek_callback or "similar" */
#define curlcheck_seek_cb(expr) \
(curlcheck_NULL(expr) || \
curlcheck_cb_compatible((expr), curl_seek_callback) || \
curlcheck_cb_compatible((expr), _curl_seek_callback1) || \
curlcheck_cb_compatible((expr), _curl_seek_callback2))
typedef
CURLcode
(
*
_curl_seek_callback1
)(
void
*
,
curl_off_t
,
int
);
typedef
CURLcode
(
*
_curl_seek_callback2
)(
const
void
*
,
curl_off_t
,
int
);
#endif
/* CURLINC_TYPECHECK_GCC_H */
common/curl/include/urlapi.h
deleted
100644 → 0
View file @
62c805fd
#ifndef CURLINC_URLAPI_H
#define CURLINC_URLAPI_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
* / __| | | | |_) | |
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 2018 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at https://curl.haxx.se/docs/copyright.html.
*
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
* copies of the Software, and permit persons to whom the Software is
* furnished to do so, under the terms of the COPYING file.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
***************************************************************************/
#include "curl.h"
#ifdef __cplusplus
extern
"C"
{
#endif
/* the error codes for the URL API */
typedef
enum
{
CURLUE_OK
,
CURLUE_BAD_HANDLE
,
/* 1 */
CURLUE_BAD_PARTPOINTER
,
/* 2 */
CURLUE_MALFORMED_INPUT
,
/* 3 */
CURLUE_BAD_PORT_NUMBER
,
/* 4 */
CURLUE_UNSUPPORTED_SCHEME
,
/* 5 */
CURLUE_URLDECODE
,
/* 6 */
CURLUE_OUT_OF_MEMORY
,
/* 7 */
CURLUE_USER_NOT_ALLOWED
,
/* 8 */
CURLUE_UNKNOWN_PART
,
/* 9 */
CURLUE_NO_SCHEME
,
/* 10 */
CURLUE_NO_USER
,
/* 11 */
CURLUE_NO_PASSWORD
,
/* 12 */
CURLUE_NO_OPTIONS
,
/* 13 */
CURLUE_NO_HOST
,
/* 14 */
CURLUE_NO_PORT
,
/* 15 */
CURLUE_NO_QUERY
,
/* 16 */
CURLUE_NO_FRAGMENT
/* 17 */
}
CURLUcode
;
typedef
enum
{
CURLUPART_URL
,
CURLUPART_SCHEME
,
CURLUPART_USER
,
CURLUPART_PASSWORD
,
CURLUPART_OPTIONS
,
CURLUPART_HOST
,
CURLUPART_PORT
,
CURLUPART_PATH
,
CURLUPART_QUERY
,
CURLUPART_FRAGMENT
,
CURLUPART_ZONEID
/* added in 7.65.0 */
}
CURLUPart
;
#define CURLU_DEFAULT_PORT (1<<0)
/* return default port number */
#define CURLU_NO_DEFAULT_PORT (1<<1)
/* act as if no port number was set,
if the port number matches the
default for the scheme */
#define CURLU_DEFAULT_SCHEME (1<<2)
/* return default scheme if
missing */
#define CURLU_NON_SUPPORT_SCHEME (1<<3)
/* allow non-supported scheme */
#define CURLU_PATH_AS_IS (1<<4)
/* leave dot sequences */
#define CURLU_DISALLOW_USER (1<<5)
/* no user+password allowed */
#define CURLU_URLDECODE (1<<6)
/* URL decode on get */
#define CURLU_URLENCODE (1<<7)
/* URL encode on set */
#define CURLU_APPENDQUERY (1<<8)
/* append a form style part */
#define CURLU_GUESS_SCHEME (1<<9)
/* legacy curl-style guessing */
#define CURLU_NO_AUTHORITY (1<<10)
/* Allow empty authority when the
scheme is unknown. */
typedef
struct
Curl_URL
CURLU
;
/*
* curl_url() creates a new CURLU handle and returns a pointer to it.
* Must be freed with curl_url_cleanup().
*/
CURL_EXTERN
CURLU
*
curl_url
(
void
);
/*
* curl_url_cleanup() frees the CURLU handle and related resources used for
* the URL parsing. It will not free strings previously returned with the URL
* API.
*/
CURL_EXTERN
void
curl_url_cleanup
(
CURLU
*
handle
);
/*
* curl_url_dup() duplicates a CURLU handle and returns a new copy. The new
* handle must also be freed with curl_url_cleanup().
*/
CURL_EXTERN
CURLU
*
curl_url_dup
(
CURLU
*
in
);
/*
* curl_url_get() extracts a specific part of the URL from a CURLU
* handle. Returns error code. The returned pointer MUST be freed with
* curl_free() afterwards.
*/
CURL_EXTERN
CURLUcode
curl_url_get
(
CURLU
*
handle
,
CURLUPart
what
,
char
**
part
,
unsigned
int
flags
);
/*
* curl_url_set() sets a specific part of the URL in a CURLU handle. Returns
* error code. The passed in string will be copied. Passing a NULL instead of
* a part string, clears that part.
*/
CURL_EXTERN
CURLUcode
curl_url_set
(
CURLU
*
handle
,
CURLUPart
what
,
const
char
*
part
,
unsigned
int
flags
);
#ifdef __cplusplus
}
/* end of extern "C" */
#endif
#endif
/* CURLINC_URLAPI_H */
common/hal/HAL_OS_linux.c
View file @
dc8cade1
...
@@ -371,7 +371,11 @@ void HAL_ThreadDelete(_IN_ void *thread_handle)
...
@@ -371,7 +371,11 @@ void HAL_ThreadDelete(_IN_ void *thread_handle)
pthread_exit
(
0
);
pthread_exit
(
0
);
}
else
{
}
else
{
/*main thread delete child thread*/
/*main thread delete child thread*/
#ifdef CONFIG_A133_PLATFORM
pthread_kill
((
pthread_t
)
thread_handle
,
SIGALRM
);
#else
pthread_cancel
((
pthread_t
)
thread_handle
);
pthread_cancel
((
pthread_t
)
thread_handle
);
#endif
pthread_join
((
pthread_t
)
thread_handle
,
0
);
pthread_join
((
pthread_t
)
thread_handle
,
0
);
}
}
}
}
...
...
common/hal/HAL_TCP_linux.c
View file @
dc8cade1
...
@@ -55,7 +55,11 @@ uintptr_t HAL_TCP_Establish(const char *host, uint16_t port)
...
@@ -55,7 +55,11 @@ uintptr_t HAL_TCP_Establish(const char *host, uint16_t port)
hints
.
ai_family
=
AF_INET
;
/* only IPv4 */
hints
.
ai_family
=
AF_INET
;
/* only IPv4 */
hints
.
ai_socktype
=
SOCK_STREAM
;
hints
.
ai_socktype
=
SOCK_STREAM
;
#ifdef CONFIG_A133_PLATFORM
hints
.
ai_protocol
=
0
;
#else
hints
.
ai_protocol
=
IPPROTO_TCP
;
hints
.
ai_protocol
=
IPPROTO_TCP
;
#endif
sprintf
(
service
,
"%u"
,
port
);
sprintf
(
service
,
"%u"
,
port
);
while
(
dns_retry
++
<
8
)
{
while
(
dns_retry
++
<
8
)
{
...
...
common/hal/kk_product.h
View file @
dc8cade1
...
@@ -29,11 +29,31 @@
...
@@ -29,11 +29,31 @@
#define SN_ADDR_LEN (32+1)
#define SN_ADDR_LEN (32+1)
#define PRODUCT_TPYE "kk"
#define PRODUCT_TPYE "kk"
#define CCU_LAN "eth0"
#define KK_CCU_ID "CCU_77771"
#define KK_GW_PRODUCTID "gateway_2"
#define KK_GW_PRODUCTID "gateway_2"
#define KK_CCU_RANDOM "0000000000"
#define KK_CCU_RANDOM "0000000000"
#define KK_CCU_NAME "NEW_CCU"
#define KK_CCU_NAME "NEW_CCU"
#ifdef CONFIG_A133_PLATFORM
#define KK_DEVICESECRET_PATH "/data/local/kk/kk_deviceSecret.txt"
#define KK_TOKEN_PATH "/data/local/kk/kk_token.txt"
#define KK_DEVICE_MAP_FILE_PATH "/data/local/kk/map/device_%s.json"
#define GET_CCUID_CMD "getprop ro.ccuinfo"
#define GET_KEY_CMD "getprop ro.ccuinfo"
#define KK_DB_FILE "/data/local/kk/etc/kk_database.db"
#define TSL_SUBDEVICE_PATH_FILE "/data/local/kk/tsl/product_%s.json"
#define TSL_GATEWAY_PATH_FILE "/data/local/kk/tsl/gateway_%s.json"
#define TSL_CCU_PATH_FILE "/data/local/kk/tsl/ccu_%s.json"
#define TSL_SCENE_PATH_FILE "/data/local/kk/tsl/ccu_%s_scene.json"
#define OTA_IMG_PATH "/data/local/OTA/"
#define OTA_IMG_FILE "/data/local/OTA/app_squashfs.img"
#define OTA_IMG_FILE_MD5 "/data/local/OTA/app_squashfs.img.md5"
#define KK_CONFIG_FILE_PATH "/data/local/kk/kk_cloud_conf.json"
#define KK_DEFAULT_CONFIG_FILE_PATH "/data/local/kk/cloud_default_config.json"
#define KK_AUTH_CONFIG_FILE_PATH "/data/local/kk/auth_conf.json"
#else
#define KK_DEVICESECRET_PATH "/data/kk/kk_deviceSecret.txt"
#define KK_TOKEN_PATH "/data/kk/kk_token.txt"
#define KK_DEVICE_MAP_FILE_PATH "/data/kk/map/device_%s.json"
#define KK_DEVICE_MAP_FILE_PATH "/data/kk/map/device_%s.json"
#define GET_CCUID_CMD "fw_printenv uuid -n"
#define GET_CCUID_CMD "fw_printenv uuid -n"
#define GET_KEY_CMD "fw_printenv key -n"
#define GET_KEY_CMD "fw_printenv key -n"
...
@@ -46,11 +66,11 @@
...
@@ -46,11 +66,11 @@
#define OTA_IMG_PATH "/data/OTA/"
#define OTA_IMG_PATH "/data/OTA/"
#define OTA_IMG_FILE "/data/OTA/app_squashfs.img"
#define OTA_IMG_FILE "/data/OTA/app_squashfs.img"
#define OTA_IMG_FILE_MD5 "/data/OTA/app_squashfs.img.md5"
#define OTA_IMG_FILE_MD5 "/data/OTA/app_squashfs.img.md5"
#define KK_DEVICESECRET_PATH "/data/kk/kk_deviceSecret.txt"
#define KK_TOKEN_PATH "/data/kk/kk_token.txt"
#define KK_CONFIG_FILE_PATH "/data/kk/kk_cloud_conf.json"
#define KK_CONFIG_FILE_PATH "/data/kk/kk_cloud_conf.json"
#define KK_DEFAULT_CONFIG_FILE_PATH "/app/ccuApps/config/cloud_default_config.json"
#define KK_DEFAULT_CONFIG_FILE_PATH "/app/ccuApps/config/cloud_default_config.json"
#define KK_AUTH_CONFIG_FILE_PATH "/tmp/auth_conf.json"
#define KK_AUTH_CONFIG_FILE_PATH "/tmp/auth_conf.json"
#endif
enum
{
enum
{
DEVICE_OFFLINE
=
0
,
DEVICE_OFFLINE
=
0
,
DEVICE_ONLINE
,
DEVICE_ONLINE
,
...
...
midware/midware/dm/dm_ota.c
View file @
dc8cade1
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
#include "cJSON.h"
#include "cJSON.h"
#include "kk_dm_api.h"
#include "kk_dm_api.h"
#include "kk_dm_msg.h"
#include "kk_dm_msg.h"
#include
<curl/curl.h>
#include
"../../common/curl/include/curl/curl.h"
#include "com_api.h"
#include "com_api.h"
#include "kk_log.h"
#include "kk_log.h"
#include "kk_hal.h"
#include "kk_hal.h"
...
...
midware/midware/dm/kk_dm_mng.c
View file @
dc8cade1
...
@@ -597,6 +597,30 @@ static void _dm_mgr_destroy_devlist(void)
...
@@ -597,6 +597,30 @@ static void _dm_mgr_destroy_devlist(void)
char
s_pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
char
s_pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
static
int
kk_pid_init
(
void
)
static
int
kk_pid_init
(
void
)
{
{
#ifdef CONFIG_A133_PLATFORM
uint8_t
data
[
128
]
=
{
0
};
int
data_len
=
0
;
char
*
pstart
=
NULL
;
char
*
pEnd
=
NULL
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
data
,
sizeof
(
data
),
&
data_len
);
printf
(
"---GET_CCUID_CMD:%s
\n
"
,
data
);
if
(
data_len
>
0
&&
data_len
<=
128
){
pstart
=
data
;
pEnd
=
strstr
(
data
,
"pid_"
);
if
(
pstart
!=
NULL
&&
pEnd
!=
NULL
){
memcpy
(
s_pid
,
pEnd
+
4
,
data_len
-
1
-
(
pEnd
-
pstart
+
4
));
INFO_PRINT
(
"kk_cloud_pid_init s_pid:%s
\n
"
,
s_pid
);
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"KK_Ccuid_init get ccuid error
\n
"
);
return
-
1
;
}
}
else
{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT
(
"KK_Ccuid_init get ccuid error
\n
"
);
return
-
1
;
}
#else
char
pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
char
pid
[
PRODUCT_CODE_LEN
]
=
{
0
};
int
pid_len
=
0
;
int
pid_len
=
0
;
HAL_Execel_cmd
(
GET_PRODUCTID_CMD
,(
char
*
)
pid
,
sizeof
(
pid
),
&
pid_len
);
HAL_Execel_cmd
(
GET_PRODUCTID_CMD
,(
char
*
)
pid
,
sizeof
(
pid
),
&
pid_len
);
...
@@ -606,6 +630,7 @@ static int kk_pid_init(void)
...
@@ -606,6 +630,7 @@ static int kk_pid_init(void)
}
else
{
}
else
{
return
-
1
;
return
-
1
;
}
}
#endif
return
0
;
return
0
;
}
}
int
kk_get_pid
(
char
*
productId
)
int
kk_get_pid
(
char
*
productId
)
...
...
midware/midware/dm/kk_dm_msg.h
View file @
dc8cade1
...
@@ -60,15 +60,15 @@ typedef struct {
...
@@ -60,15 +60,15 @@ typedef struct {
#define KK_THING_SERVICE_REBOOT "/thing/service/reboot"
#define KK_THING_SERVICE_REBOOT "/thing/service/reboot"
#define KK_THING_SERVICE_ADDROOM "/thing/service/addRoom"
#define KK_THING_SERVICE_ADDROOM "/thing/service/addRoom"
#define KK_THING_SERVICE_ADDROOM_REPLY "/thing/service/addRoom_reply"
#define KK_THING_SERVICE_ADDROOM_REPLY "/thing/service/addRoom_reply"
#define KK_THING_SERVICE_UPDATEROOM "/thing/service/updateRoom"
#define KK_THING_SERVICE_UPDATEROOM "/thing/service/updateRoom
Name
"
#define KK_THING_SERVICE_UPDATEROOM_REPLY "/thing/service/updateRoom_reply"
#define KK_THING_SERVICE_UPDATEROOM_REPLY "/thing/service/updateRoom
Name
_reply"
#define KK_THING_SERVICE_DELETEROOM "/thing/service/deleteRoom"
#define KK_THING_SERVICE_DELETEROOM "/thing/service/deleteRoom"
#define KK_THING_SERVICE_DELETEROOM_REPLY "/thing/service/deleteRoom_reply"
#define KK_THING_SERVICE_DELETEROOM_REPLY "/thing/service/deleteRoom_reply"
#define KK_THING_SERVICE_ADDDEVICETOROOM "/thing/service/addDeviceToRoom"
#define KK_THING_SERVICE_ADDDEVICETOROOM "/thing/service/addDeviceToRoom"
#define KK_THING_SERVICE_ADDDEVICETOROOM_REPLY "/thing/service/addDeviceToRoom_reply"
#define KK_THING_SERVICE_ADDDEVICETOROOM_REPLY "/thing/service/addDeviceToRoom_reply"
#define KK_THING_SERVICE_REMOVEDEVICEFROMROOM "/thing/service/removeDeviceFromRoom"
#define KK_THING_SERVICE_REMOVEDEVICEFROMROOM "/thing/service/removeDeviceFromRoom"
#define KK_THING_SERVICE_REMOVEDEVICEFROMROOM_REPLY "/thing/service/removeDeviceFromRoom_reply"
#define KK_THING_SERVICE_REMOVEDEVICEFROMROOM_REPLY "/thing/service/removeDeviceFromRoom_reply"
#define KK_THING_SERVICE_EXECUTEROOM "/thing/service/executeRoom"
#define KK_THING_SERVICE_SETLOCALTIMER "/thing/service/setLocalTimer"
#define KK_THING_SERVICE_SETLOCALTIMER "/thing/service/setLocalTimer"
#define KK_THING_SERVICE_GETLOCALTIMER "/thing/service/getLocalTimer"
#define KK_THING_SERVICE_GETLOCALTIMER "/thing/service/getLocalTimer"
#define KK_THING_SERVICE_SETCOUNTDOWN "/thing/service/setCountDown"
#define KK_THING_SERVICE_SETCOUNTDOWN "/thing/service/setCountDown"
...
@@ -103,8 +103,8 @@ typedef struct {
...
@@ -103,8 +103,8 @@ typedef struct {
#define KK_THING_SERVICE_GETFLOOR_REPLY "/thing/service/getAllFloors_reply"
#define KK_THING_SERVICE_GETFLOOR_REPLY "/thing/service/getAllFloors_reply"
#define KK_THING_SERVICE_SYNCINFO_REPLY "/thing/service/syncinfo_reply"
#define KK_THING_SERVICE_SYNCINFO_REPLY "/thing/service/syncinfo_reply"
#define KK_THING_SERVICE_SYNCINFOPUSH_REPLY "/thing/service/syncinfopush_reply"
#define KK_THING_SERVICE_SYNCINFOPUSH_REPLY "/thing/service/syncinfopush_reply"
#define KK_THING_SERVICE_ADDFLOORS "/thing/service/addFloor
s
"
#define KK_THING_SERVICE_ADDFLOORS "/thing/service/addFloor"
#define KK_THING_SERVICE_ADDFLOORS_REPLY "/thing/service/addFloor
s
_reply"
#define KK_THING_SERVICE_ADDFLOORS_REPLY "/thing/service/addFloor_reply"
#define KK_THING_EVENT_MESSAGE "/thing/event/"
#define KK_THING_EVENT_MESSAGE "/thing/event/"
#define KK_THING_SERVICE_GETGUARDSENSORS "/thing/service/getGuardSensors"
#define KK_THING_SERVICE_GETGUARDSENSORS "/thing/service/getGuardSensors"
#define KK_THING_EVENT_POST "/post"
#define KK_THING_EVENT_POST "/post"
...
@@ -116,10 +116,10 @@ typedef struct {
...
@@ -116,10 +116,10 @@ typedef struct {
#define KK_THING_SERVICE_HISTORYALARM_REPLY "/thing/service/historyAlarm_reply"
#define KK_THING_SERVICE_HISTORYALARM_REPLY "/thing/service/historyAlarm_reply"
#define KK_THING_SERVICE_DEL_HISTORYALARM "/thing/service/delAlarm"
#define KK_THING_SERVICE_DEL_HISTORYALARM "/thing/service/delAlarm"
#define KK_THING_SERVICE_DEL_HISTORYALARM_REPLY "/thing/service/delAlarm_reply"
#define KK_THING_SERVICE_DEL_HISTORYALARM_REPLY "/thing/service/delAlarm_reply"
#define KK_THING_SERVICE_DELETEFLOORS "/thing/service/deleteFloor
s
"
#define KK_THING_SERVICE_DELETEFLOORS "/thing/service/deleteFloor"
#define KK_THING_SERVICE_DELETEFLOORS_REPLY "/thing/service/deleteFloor
s
_reply"
#define KK_THING_SERVICE_DELETEFLOORS_REPLY "/thing/service/deleteFloor_reply"
#define KK_THING_SERVICE_UPDATEFLOORS "/thing/service/
updateFloors
"
#define KK_THING_SERVICE_UPDATEFLOORS "/thing/service/
modifyFloor
"
#define KK_THING_SERVICE_UPDATEFLOORS_REPLY "/thing/service/
updateFloors
_reply"
#define KK_THING_SERVICE_UPDATEFLOORS_REPLY "/thing/service/
modifyFloor
_reply"
#define KK_THING_SERVICE_CLIENTREPORT "/thing/service/clientReport"
#define KK_THING_SERVICE_CLIENTREPORT "/thing/service/clientReport"
#define KK_THING_SERVICE_CLIENTREPORT_REPLY "/thing/service/clientReport_reply"
#define KK_THING_SERVICE_CLIENTREPORT_REPLY "/thing/service/clientReport_reply"
#define KK_THING_SERVICE_SPECIALDEVTOROOM "/thing/service/addSpecialDeviceToRoom"
#define KK_THING_SERVICE_SPECIALDEVTOROOM "/thing/service/addSpecialDeviceToRoom"
...
...
midware/midware/dm/kk_linkkit.c
View file @
dc8cade1
...
@@ -744,8 +744,8 @@ static int kk_service_executeDNDMode_handle(cJSON *params)
...
@@ -744,8 +744,8 @@ static int kk_service_executeDNDMode_handle(cJSON *params)
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
cJSON
*
roomId
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ROOM_CCUROOMID
);
cJSON
*
roomId
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ROOM_CCUROOMID
);
if
(
roomId
==
NULL
||
roomId
->
type
!=
cJSON_Number
){
if
(
roomId
==
NULL
){
ERROR_PRINT
(
"
DATA ERROR
!!!
\n
"
);
ERROR_PRINT
(
"
DND DATA ERROR
!!!
\n
"
);
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
if
(
roomId
->
type
==
cJSON_Number
){
if
(
roomId
->
type
==
cJSON_Number
){
...
@@ -873,14 +873,8 @@ static int kk_service_addFloor_reply(cJSON *root,cJSON *msgId,char *floorId,char
...
@@ -873,14 +873,8 @@ static int kk_service_addFloor_reply(cJSON *root,cJSON *msgId,char *floorId,char
cJSON_AddStringToObject
(
payload
,
"code"
,
"0"
);
cJSON_AddStringToObject
(
payload
,
"code"
,
"0"
);
cJSON_AddStringToObject
(
payload
,
"msgId"
,
msgId
->
valuestring
);
cJSON_AddStringToObject
(
payload
,
"msgId"
,
msgId
->
valuestring
);
cJSON
*
paramInfo
=
cJSON_CreateObject
();
cJSON
*
paramInfo
=
cJSON_CreateObject
();
cJSON
*
floorIdsAry
=
cJSON_CreateArray
();
cJSON_AddStringToObject
(
paramInfo
,
"floorId"
,
floorId
);
cJSON_AddStringToObject
(
paramInfo
,
"name"
,
name
);
cJSON
*
Item
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
Item
,
"floorId"
,
floorId
);
cJSON_AddStringToObject
(
Item
,
"name"
,
name
);
cJSON_AddItemToObject
(
Item
,
"rooms"
,
kk_get_roomids_by_floorId
(
floorId
));
cJSON_AddItemToArray
(
floorIdsAry
,
Item
);
cJSON_AddItemToObject
(
paramInfo
,
"floors"
,
floorIdsAry
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
char
*
payload11
=
cJSON_Print
(
payload
);
char
*
payload11
=
cJSON_Print
(
payload
);
printf
(
"------------------------------>payload11:%s
\n
"
,
payload11
);
printf
(
"------------------------------>payload11:%s
\n
"
,
payload11
);
...
@@ -1306,53 +1300,6 @@ static int kk_service_getScreenInfo_handle(cJSON *inforoot,cJSON *param,cJSON *m
...
@@ -1306,53 +1300,6 @@ static int kk_service_getScreenInfo_handle(cJSON *inforoot,cJSON *param,cJSON *m
cJSON_Delete
(
info
);
cJSON_Delete
(
info
);
return
res
;
return
res
;
}
}
/************************************************************
*功能描述:批量执行房间设备处理
*输入参数:params:云端下发数据,包含房间号,productCode等
*输出参数:无
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
static
int
kk_service_executeRoom_handle
(
cJSON
*
params
)
{
int
res
=
0
;
kk_dev_list_t
*
pList
=
NULL
;
dm_mgr_dev_node_t
*
search_node
=
NULL
;
if
(
params
==
NULL
){
return
INVALID_PARAMETER
;
}
cJSON
*
roomId
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ROOM_CCUROOMID
);
if
(
roomId
==
NULL
){
return
FAIL_RETURN
;
}
cJSON
*
productCodeStr
=
cJSON_GetObjectItem
(
params
,
MSG_PRODUCT_TYPE_STR
);
if
(
productCodeStr
==
NULL
){
return
FAIL_RETURN
;
}
pList
=
kk_get_room_deviceCode
(
roomId
->
valuestring
);
if
(
pList
!=
NULL
){
while
(
pList
!=
NULL
){
res
=
dm_mgr_get_device_by_devicecode
(
pList
->
deviceCode
,
&
search_node
);
if
(
res
!=
SUCCESS_RETURN
)
{
pList
=
pList
->
next
;
continue
;
}
if
(
strcmp
(
search_node
->
productCode
,
productCodeStr
->
valuestring
)
==
0
){
cJSON
*
action
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ROOM_ACTION
);
if
(
action
!=
NULL
){
kk_service_execute_action
(
action
,
search_node
);
}
}
pList
=
pList
->
next
;
}
}
kk_free_room_dev_list
();
return
SUCCESS_RETURN
;
}
/************************************************************
/************************************************************
*功能描述:添加场景处理
*功能描述:添加场景处理
*输入参数:params:云端下发数据,包含场景名称,场景类型,场景使能等
*输入参数:params:云端下发数据,包含场景名称,场景类型,场景使能等
...
@@ -2019,11 +1966,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
...
@@ -2019,11 +1966,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
//kk_service_addDeviceToRoom_reply(info_root,msgId,1);
//kk_service_addDeviceToRoom_reply(info_root,msgId,1);
kk_service_common_reply
(
info_root
,
msgId
,
KK_THING_SERVICE_REMOVEDEVICEFROMROOM_REPLY
);
kk_service_common_reply
(
info_root
,
msgId
,
KK_THING_SERVICE_REMOVEDEVICEFROMROOM_REPLY
);
}
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_EXECUTEROOM
)
==
0
){
INFO_PRINT
(
" executeroom
\n
"
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
kk_service_executeRoom_handle
(
paramStr
);
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_ADDSCENC
)
==
0
){
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_ADDSCENC
)
==
0
){
INFO_PRINT
(
" add scene
\n
"
);
INFO_PRINT
(
" add scene
\n
"
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
...
...
midware/midware/iot.mk
View file @
dc8cade1
...
@@ -22,6 +22,10 @@ else ifeq ($(CONFIG_MODEL),nx5)
...
@@ -22,6 +22,10 @@ else ifeq ($(CONFIG_MODEL),nx5)
else
ifeq
($(CONFIG_MODEL),8197)
else
ifeq
($(CONFIG_MODEL),8197)
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_8197
-lubacktrace
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_8197
-lubacktrace
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_8197
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_8197
else
ifeq
($(CONFIG_MODEL),a133)
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg_a133
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev_a133
LDFLAGS
+=
-L
$(TOP_DIR)
/common/curl
-lcurl_a133
else
else
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg
-lanl
LDFLAGS
+=
-L
$(TOP_DIR)
/common/nanomsg
-lnanomsg
-lanl
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev
LDFLAGS
+=
-L
$(TOP_DIR)
/common/ev
-lev
...
...
midware/midware/midware.c
View file @
dc8cade1
...
@@ -102,6 +102,29 @@ static int _setDevice_Code(_IN_ char *device_code,int len)
...
@@ -102,6 +102,29 @@ static int _setDevice_Code(_IN_ char *device_code,int len)
}
}
static
int
HAL_Ccuid_init
(
void
)
static
int
HAL_Ccuid_init
(
void
)
{
{
#ifdef CONFIG_A133_PLATFORM
uint8_t
data
[
128
]
=
{
0
};
int
data_len
=
0
;
uint8_t
uuid
[
32
]
=
{
0
};
char
*
pstart
=
NULL
;
char
*
pEnd
=
NULL
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
data
,
sizeof
(
data
),
&
data_len
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
data
);
if
(
data_len
>
0
&&
data_len
<=
128
){
pstart
=
data
;
pEnd
=
strstr
(
data
,
"-"
);
if
(
pstart
!=
NULL
&&
pEnd
!=
NULL
){
printf
(
"-------123---------------------
\n
"
);
memcpy
(
uuid
,
pstart
,
pEnd
-
pstart
);
_setDevice_Code
(
uuid
,
pEnd
-
pstart
);
}
else
{
return
-
1
;
}
}
else
{
return
-
1
;
}
#else
char
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
char
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
char
ccuidTmp
[
DEVICE_CODE_LEN
]
=
{
0
};
char
ccuidTmp
[
DEVICE_CODE_LEN
]
=
{
0
};
int
ccuid_len
=
0
;
int
ccuid_len
=
0
;
...
@@ -114,6 +137,7 @@ static int HAL_Ccuid_init(void)
...
@@ -114,6 +137,7 @@ static int HAL_Ccuid_init(void)
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
return
-
1
;
return
-
1
;
}
}
#endif
return
0
;
return
0
;
}
}
/************************************************************
/************************************************************
...
@@ -1334,7 +1358,11 @@ void *udp_dispatch_yield(void *args){
...
@@ -1334,7 +1358,11 @@ void *udp_dispatch_yield(void *args){
memset
(
host_ip
,
0
,
sizeof
(
host_ip
));
memset
(
host_ip
,
0
,
sizeof
(
host_ip
));
memset
(
mac
,
0
,
sizeof
(
mac
));
memset
(
mac
,
0
,
sizeof
(
mac
));
memset
(
szOut
,
0
,
sizeof
(
szOut
));
memset
(
szOut
,
0
,
sizeof
(
szOut
));
#ifdef CONFIG_A133_PLATFORM
HAL_Get_IP
(
host_ip
,
"eth0"
);
#else
HAL_Get_IP
(
host_ip
,
NULL
);
HAL_Get_IP
(
host_ip
,
NULL
);
#endif
HAL_Get_ccuid
(
device_code
);
HAL_Get_ccuid
(
device_code
);
// printf("[%s][%d]inet_ntoa(from.sin_addr):%s\n",__FUNCTION__,__LINE__,inet_ntoa(from.sin_addr));
// printf("[%s][%d]inet_ntoa(from.sin_addr):%s\n",__FUNCTION__,__LINE__,inet_ntoa(from.sin_addr));
// printf("[%s][%d]host_ip:%s\n",__FUNCTION__,__LINE__,host_ip);
// printf("[%s][%d]host_ip:%s\n",__FUNCTION__,__LINE__,host_ip);
...
@@ -1398,7 +1426,11 @@ void *ccu_property_monitor(void *args)
...
@@ -1398,7 +1426,11 @@ void *ccu_property_monitor(void *args)
dm_mgr_search_dev_by_devid
(
KK_DM_DEVICE_CCU_DEVICEID
,
&
node
);
dm_mgr_search_dev_by_devid
(
KK_DM_DEVICE_CCU_DEVICEID
,
&
node
);
//dm_mgr_update_timestamp_by_devicecode(node->deviceCode,HAL_GetTime());
//dm_mgr_update_timestamp_by_devicecode(node->deviceCode,HAL_GetTime());
node
->
timestamp
=
HAL_Uptimes
();
node
->
timestamp
=
HAL_Uptimes
();
#ifdef CONFIG_A133_PLATFORM
HAL_Get_IP
(
s_IP
,
"eth0"
);
#else
HAL_Get_IP
(
s_IP
,
NULL
);
HAL_Get_IP
(
s_IP
,
NULL
);
#endif
res
=
kk_tsl_get_value
(
kk_tsl_get_property_value
,
node
->
dev_shadow
,
KK_TSL_CCU_WANIP_IDENTIFIER
,
s_IP_TSL
,
NULL
);
res
=
kk_tsl_get_value
(
kk_tsl_get_property_value
,
node
->
dev_shadow
,
KK_TSL_CCU_WANIP_IDENTIFIER
,
s_IP_TSL
,
NULL
);
if
(
res
!=
SUCCESS_RETURN
){
if
(
res
!=
SUCCESS_RETURN
){
ERROR_PRINT
(
"kk_tsl_get_value Failed
\n
"
);
ERROR_PRINT
(
"kk_tsl_get_value Failed
\n
"
);
...
...
midware/midware/scene/kk_scene_handle.c
View file @
dc8cade1
...
@@ -1372,9 +1372,9 @@ int kk_scene_parse_addscene(const cJSON* args,char *sceneId,int isUpdate,const c
...
@@ -1372,9 +1372,9 @@ int kk_scene_parse_addscene(const cJSON* args,char *sceneId,int isUpdate,const c
//多合一面板绑定的时候可能不带roomid
//多合一面板绑定的时候可能不带roomid
if
(
room_id
!=
NULL
){
if
(
room_id
!=
NULL
){
char
roomIdStr
[
32
]
=
{
0
};
//
char roomIdStr[32] = {0};
snprintf
(
roomIdStr
,
32
,
"%d"
,
room_id
->
valueint
);
//snprintf(roomIdStr,32,"%d",room_id->valuestring
);
res
=
kk_scene_insert_scene_info
(
room
IdStr
,
name
->
valuestring
,
sceneType
->
valueint
,
enable
->
valueint
,
sceneId
);
res
=
kk_scene_insert_scene_info
(
room
_id
->
valuestring
,
name
->
valuestring
,
sceneType
->
valueint
,
enable
->
valueint
,
sceneId
);
}
else
{
}
else
{
res
=
kk_scene_insert_scene_info
(
"-1"
,
name
->
valuestring
,
sceneType
->
valueint
,
enable
->
valueint
,
sceneId
);
res
=
kk_scene_insert_scene_info
(
"-1"
,
name
->
valuestring
,
sceneType
->
valueint
,
enable
->
valueint
,
sceneId
);
}
}
...
...
tools/board/config.linux.nx5
View file @
dc8cade1
...
@@ -19,6 +19,7 @@ CONFIG_ENV_CFLAGS += \
...
@@ -19,6 +19,7 @@ CONFIG_ENV_CFLAGS += \
-DCONFIG_GUIDER_AUTH_TIMEOUT=500 \
-DCONFIG_GUIDER_AUTH_TIMEOUT=500 \
-DCONFIG_MQTT_RX_MAXLEN=5000 \
-DCONFIG_MQTT_RX_MAXLEN=5000 \
-DCONFIG_MBEDTLS_DEBUG_LEVEL=0 \
-DCONFIG_MBEDTLS_DEBUG_LEVEL=0 \
-DCONFIG_NX5_PLATFORM \
CONFIG_ENV_CFLAGS += -rdynamic
CONFIG_ENV_CFLAGS += -rdynamic
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment