代码拉取完成,页面将自动刷新
同步操作将从 邵温财/TCP协议栈 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#include "utils.h"
u16_t chksum(u16_t sum, const u8_t *data, u16_t len)
{
u16_t t;
const u8_t *dataptr;
const u8_t *last_byte;
dataptr = data;
last_byte = data + len - 1;
while(dataptr < last_byte)
{ /* At least two more bytes */
t = (dataptr[0] << 8) + dataptr[1];
sum += t;
if(sum < t)
{
sum++; /* carry */
}
dataptr += 2;
}
if(dataptr == last_byte)
{
t = (dataptr[0] << 8) + 0;
sum += t;
if(sum < t)
{
sum++; /* carry */
}
}
/* Return sum in host byte order. */
return sum;
}
char *uip_ntoa(uip_ipaddr_t addr, char *buf, int buflen)
{
u32_t s_addr;
char inv[3];
char *rp;
u8_t *ap;
u8_t rem;
u8_t n;
u8_t i;
int len = 0;
s_addr = *(u32_t *)addr;
rp = buf;
ap = (u8_t *) &s_addr;
for (n = 0; n < 4; n++)
{
i = 0;
do
{
rem = *ap % (u8_t) 10;
*ap /= (u8_t) 10;
inv[i++] = (char) ('0' + rem);
} while (*ap);
while (i--)
{
if (len++ >= buflen)
{
return NULL;
}
*rp++ = inv[i];
}
if (len++ >= buflen)
{
return NULL;
}
*rp++ = '.';
ap++;
}
*--rp = 0;
return buf;
}
u8_t uip_aton(const char *addrstr, u8_t *ipaddr)
{
u8_t tmp;
char c;
u8_t i, j;
tmp = 0;
for(i = 0; i < 4; ++i)
{
j = 0;
do
{
c = *addrstr;
++j;
if(j > 4)
{
return 0;
}
if(c == '.' || c == 0)
{
*ipaddr = tmp;
++ipaddr;
tmp = 0;
}
else if(c >= '0' && c <= '9')
{
tmp = (tmp * 10) + (c - '0');
}
else
{
return 0;
}
++addrstr;
} while(c != '.' && c != 0);
}
return 1;
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。