Working ...
FossilOrigin-Name: 0b484bb6111d188fefc9543e9c09e9b4e1e15aac6877dc4d23d48163f9d22f26
This commit is contained in:
		| @ -1,5 +1,5 @@ | |||||||
| #ifndef __WTPLIST_H | #ifndef __WTPLIST_H | ||||||
| #define __WPTLIST_H | #define __WTPLIST_H | ||||||
|  |  | ||||||
| #include <sys/socket.h> | #include <sys/socket.h> | ||||||
|  |  | ||||||
|  | |||||||
| @ -18,6 +18,9 @@ | |||||||
|  |  | ||||||
| #include "capwap.h" | #include "capwap.h" | ||||||
| #include "lwapp.h" | #include "lwapp.h" | ||||||
|  |  | ||||||
|  |  | ||||||
|  | #include "string.h" //tube | ||||||
| /* | /* | ||||||
| static void cwmsg_addelem_image_data(struct cwmsg *cwmsg, struct image_data *data) | static void cwmsg_addelem_image_data(struct cwmsg *cwmsg, struct image_data *data) | ||||||
| { | { | ||||||
| @ -36,7 +39,8 @@ int conn_prepare_image_data_request(struct conn * conn, struct image_data * data | |||||||
|  |  | ||||||
|  |  | ||||||
| 		 | 		 | ||||||
|  | //uint8_t buf[1024]; | ||||||
|  | //memset(buf,0xff,1024); | ||||||
|  |  | ||||||
|  |  | ||||||
| 		uint8_t type=3; | 		uint8_t type=3; | ||||||
| @ -51,6 +55,7 @@ int conn_prepare_image_data_request(struct conn * conn, struct image_data * data | |||||||
| 			&checksum,2, | 			&checksum,2, | ||||||
| //			d, sizeof(d) | //			d, sizeof(d) | ||||||
| 			data->data, data->len | 			data->data, data->len | ||||||
|  | //			buf,1024 | ||||||
| 		); | 		); | ||||||
|  |  | ||||||
|  |  | ||||||
|  | |||||||
| @ -38,10 +38,10 @@ void cwmsg_addelem_ac_descriptor(struct cwmsg *msg,struct ac_info * acinfo) | |||||||
| 	len+=4; | 	len+=4; | ||||||
| 	*((uint32_t*)(acd+len))=htonl((1<<16)|sublen); | 	*((uint32_t*)(acd+len))=htonl((1<<16)|sublen); | ||||||
| 	len+=4; | 	len+=4; | ||||||
| 	*(acd+len)=7; len++; | 	*(acd+len)=5; len++; | ||||||
| 	*(acd+len)=4; len++; | 	*(acd+len)=0; len++; | ||||||
| 	*(acd+len)=1; len++; |  | ||||||
| 	*(acd+len)=72; len++; | 	*(acd+len)=72; len++; | ||||||
|  | 	*(acd+len)=71; len++; | ||||||
| 	*(acd+len)=5; len++; | 	*(acd+len)=5; len++; | ||||||
| 	*(acd+len)=6; len++; | 	*(acd+len)=6; len++; | ||||||
| 	*(acd+len)=7; len++; | 	*(acd+len)=7; len++; | ||||||
|  | |||||||
| @ -30,9 +30,7 @@ struct eparm{ | |||||||
|  |  | ||||||
| static int readelem(void * eparm,int type,uint8_t* msgelem,int len) | static int readelem(void * eparm,int type,uint8_t* msgelem,int len) | ||||||
| { | { | ||||||
|  |  | ||||||
| 	struct eparm * e = (struct eparm*)eparm; | 	struct eparm * e = (struct eparm*)eparm; | ||||||
| //	cw_dbg(DBG_CW_MSGELEM,"Reading conf staus req msgelem, type=%d - %s ,len=%d\n",type,cw_msgelemtostr(type),len); |  | ||||||
| 	cw_dbg_msgelem(CWMSG_CONFIGURATION_STATUS_REQUEST, type, msgelem,len); | 	cw_dbg_msgelem(CWMSG_CONFIGURATION_STATUS_REQUEST, type, msgelem,len); | ||||||
|  |  | ||||||
| 	/* mandatory elements */ | 	/* mandatory elements */ | ||||||
|  | |||||||
| @ -23,11 +23,11 @@ | |||||||
|  * elements with opcode 3 - used by Cisco also in CAPWAP |  * elements with opcode 3 - used by Cisco also in CAPWAP | ||||||
|  * (But it's not always correct, the real algo might be another) |  * (But it's not always correct, the real algo might be another) | ||||||
|  */ |  */ | ||||||
| uint16_t lw_checksum(uint8_t * d, int len) | uint16_t lw1_checksum(uint8_t * d, int len) | ||||||
| { | { | ||||||
| 	int i; | 	int i; | ||||||
| //	uint32_t cs = 0xffff; | //      uint32_t cs = 0xffff; | ||||||
| 	if (len==0) | 	if (len == 0) | ||||||
| 		return 0xffff; | 		return 0xffff; | ||||||
|  |  | ||||||
| 	uint32_t cs = 0; | 	uint32_t cs = 0; | ||||||
| @ -41,9 +41,28 @@ uint16_t lw_checksum(uint8_t * d, int len) | |||||||
| 		cs += cs >> 16; | 		cs += cs >> 16; | ||||||
| 		cs &= 0xffff; | 		cs &= 0xffff; | ||||||
| 	} | 	} | ||||||
| 	return (uint16_t) cs&0xffff; | 	return (uint16_t) cs & 0xffff; | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | uint16_t lw_checksum(uint8_t * d, int len) | ||||||
|  | { | ||||||
|  | 	int i; | ||||||
|  | //      uint32_t cs = 0xffff; | ||||||
|  | 	if (len == 0) | ||||||
|  | 		return 0xffff; | ||||||
|  |  | ||||||
|  | 	uint32_t cs = 0x0; | ||||||
|  | 	for (i = 0; i < len; i += 2) { | ||||||
|  | 		cs += (cs >> 16); | ||||||
|  | 		cs &= 0xffff; | ||||||
|  | 		uint16_t w = d[i] << 8; | ||||||
|  |  | ||||||
|  | 		if (i + 1 < len) | ||||||
|  | 			w |= d[i + 1]; | ||||||
|  |  | ||||||
|  | 		cs += w ^= 0xffff; | ||||||
|  | 	} | ||||||
|  | 	cs += (cs >> 16); | ||||||
|  | 	return (uint16_t) cs & 0xffff; | ||||||
|  | } | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user