コード例 #1
0
ファイル: dot11_inline.c プロジェクト: 7u83/actube
int dot11_put_supported_rates(uint8_t *dst, float *basic, float *rates){
	uint8_t *d = dst+2;
	while(*basic != 0.0){
		*d++ = 0x80 | dot11_float2rate(*basic);
		basic++;
	}
	while(*rates != 0.0){
		*d++ = dot11_float2rate(*rates);
		rates++;
	}
	*(dst)=DOT11_ELEM_SUPPORTED_RATES;
	*(dst+1) = d-(dst+2);

	return d-dst;
}
コード例 #2
0
static struct mbag_item *  from_str(const char *src)
{
	mbag_item_t * item = mbag_item_new(CAPWAP80211_TYPE_RATESET);
	if (!item)
		return NULL;

	if (strlen(src)==0)
		return 0;

	uint8_t rates[64];
	int nrates =0;

	const char *s = src;

	while (*s!=0){
		while (*s==' ') 
			s++;
		int m=0;
		if(*s=='*'){
			m=0x80;
			s++;
		}
		else{
			m=0;
		}
	
		float val;
		int n=sscanf(s,"%f",&val);
		if (n!=1)
			break;
		
		int r = dot11_float2rate(val) | m;

		rates[nrates++]=r;


		while (*s!=0 && *s!=' ')
			s++;

	}

	uint8_t *data = malloc(nrates+1);
	*data=nrates;
	memcpy(data+1,rates,nrates);

	item->data=data;


	return item;
}