From b106d56a23b7435e8b699366dc2c79c759e00b1a Mon Sep 17 00:00:00 2001
From: "7u83@mail.ru" <7u83@mail.ru@noemail.net>
Date: Thu, 14 Aug 2014 21:18:55 +0000
Subject: [PATCH] Fixed a missing net to host conversion Added a warn message
for non-standard RIDs.
FossilOrigin-Name: 62c3f41ea3abd9794cb63947befdb71709c61e91b2c6b94c4236f06d19ce5759
---
src/capwap/wtpinfo_readelem_wtp_radio_info.c | 28 +++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/src/capwap/wtpinfo_readelem_wtp_radio_info.c b/src/capwap/wtpinfo_readelem_wtp_radio_info.c
index c315569d..25f2aaf2 100644
--- a/src/capwap/wtpinfo_readelem_wtp_radio_info.c
+++ b/src/capwap/wtpinfo_readelem_wtp_radio_info.c
@@ -1,3 +1,23 @@
+/*
+ This file is part of libcapwap.
+
+ libcapwap is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ libcapwap is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Foobar. If not, see .
+
+*/
+
+#include
+
#include "wtpinfo.h"
#include "capwap_ieee80211.h"
@@ -14,9 +34,15 @@ int wtpinfo_readelem_wtp_radio_info(struct wtpinfo * wtpinfo,int type,uint8_t *m
return -1;
}
+ if (*msgelem <1 || *msgelem>31){
+ cw_dbg(DBG_CW_RFC,"Non-standard conform radio id, val=%d (must be between 1 to 31, See RFC 5415");
+ }
+
+
int rid=*msgelem & 0x1f;
+
wtpinfo->radioinfo[rid].rid=rid;
- wtpinfo->radioinfo[rid].type=*(uint32_t*)(msgelem+4);
+ wtpinfo->radioinfo[rid].type=ntohl(*(uint32_t*)(msgelem+1));
return 1;
}