示例#1
0
bool MsgDataMrg::check_pkg_len(unsigned int pkg_len)
{
    if (pkg_len < get_header_len() ||
        pkg_len > (XY_MAXBUFF_LEN - get_header_len()))
    {
    	return false;
    }
	return true;
}
示例#2
0
文件: wimax.c 项目: dark-ray/madwimax
static int read_tap()
{
	unsigned char buf[MAX_PACKET_LEN];
	int hlen = get_header_len();
	int r;
	int len;

	r = tap_read(tap_fd, buf + hlen, MAX_PACKET_LEN - hlen);

	if (r < 0)
	{
		wmlog_msg(1, "Error while reading from TAP interface");
		return r;
	}

	if (r == 0)
	{
		return 0;
	}
	
	stat_speed_out_mbit += r;

	len = fill_data_packet_header(buf, r);
	wmlog_dumphexasc(4, buf, len, "Outgoing packet:");
	r = set_data(buf, len);

	return r;
}
示例#3
0
/*
 *  读出协议头
 */
int MsgDataMrg::read_head(char * buff)
{
	int offset = 0;

	//unsigned int pkg_len = 0;
	offset += ReadInt(buff + offset, head.len, 1);
	offset += ReadInt(buff + offset, head.cmd, 1);
	offset += ReadInt(buff + offset, head.sn, 1);
    //offset += ReadBuf(buff + offset, head.uid, UID_SIZE);
    offset += ReadInt(buff + offset, head.uid, 1);
    offset += ReadInt(buff + offset, head.opt, 1);
	offset += ReadInt(buff + offset, head.crc, 1);
	offset += ReadInt(buff + offset, head.ver_no,1);
	//offset += ReadBuf(buff + offset, head.ext, 24);

	//PkgLen = LenCombo >> 8;
	//HeadLen = LenCombo << 24 >> 24;

	return get_header_len();
}
示例#4
0
bool MsgDataMrg::check_head_len(unsigned int len)
{
	return get_header_len() > len ? false : true;
}