-
Notifications
You must be signed in to change notification settings - Fork 103
Open
Description
-
Describe the bug
https下载文件中,协议中,Range:设置范围是不是应该从0开始,而不是从1开始,该文件是:ota_https.c,版本号是:
SHA-1:1d90ab9bb4cdcb654d16fbdd5f039c13a9f6c48e -
To Reproduce
Steps to reproduce the behavior:- step 1 http_makerequest函数原型实现如下,是设置了range从1开始,导致云端会从ota文件的第二字节开始返回,而不是实际的第一字节:
static int http_makerequest(http_section_t *section)
{
int ret;
ret = snprintf((char *)section->cache,CONFIG_HTTPS_DOWNLOADING_BLKLEN,CN_OTA_HTTPS_REQ_FMT,section->url_re,
section->bearer,section->host,section->port,section->offset + 1, section->offset + section->len); ///< start from 1
return ret;
}
这样的话云端返回数据第一字节就已经不匹配了
- step 1 http_makerequest函数原型实现如下,是设置了range从1开始,导致云端会从ota文件的第二字节开始返回,而不是实际的第一字节:
-
Expected behavior
正常应该是从ota文件第一字节开始传输,而不是从第二字节传输,http文件下载协议是range字段设置是从0开始的,不是从1开始 -
Current behavior
当前表现,云端会直接从发ota文件第二字节数据,最后数据少发送1字节,并且超时(因为实际接收字节数与期望接收字节数不一致) -
Please tell us about your environment:
- LiteOS Version: iot_link
- Chip Architecture:ARM
- Board: NO
- SHA-1:1d90ab9bb4cdcb654d16fbdd5f039c13a9f6c48e
-
Other information (当前经过修改后代码如下,设置range从0开始后,云端返回数据就正常,但没有对section->len进行判断(如果为0,那该range字段应该是错误的):)
static int http_makerequest(http_section_t *section)
{
int ret;
ret = snprintf((char *)section->cache,CONFIG_HTTPS_DOWNLOADING_BLKLEN,CN_OTA_HTTPS_REQ_FMT,section->url_re,\
section->bearer,section->host,section->port,section->offset , section->offset + section->len -1); ///< start from 1
return ret;
}
Metadata
Metadata
Assignees
Labels
No labels