zte's code,first commit
Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/lib/libwlan_interface/interface_util.c b/ap/lib/libwlan_interface/interface_util.c
new file mode 100755
index 0000000..7546e13
--- /dev/null
+++ b/ap/lib/libwlan_interface/interface_util.c
@@ -0,0 +1,210 @@
+#include <softap_api.h>
+#include <errno.h>
+#include <wifi.h>
+#include "wlan_interface.h"
+
+/*char to hex*/
+char c2x(char c)
+{
+ if ((c >= '0') && (c <= '9'))
+ {
+ return c - '0';
+ }
+ if ((c >= 'a') && (c <= 'f'))
+ {
+ return (c - 'a') + 10;
+ }
+ if ((c >= 'A') && (c <= 'F'))
+ {
+ return (c - 'A') + 10;
+ }
+ return 0;
+}
+
+/*string to hex*/
+unsigned char s2x(char *s)
+{
+ int i;
+ char str[3];
+ unsigned char result;
+
+
+ for (i = 0; i < 3; i++)
+ {
+ str[i] = *s++;
+ if (str[i] == '\0')
+ {
+ break;
+ }
+ }
+
+ result = 0;
+ for (i = 0; i < 3; i++)
+ {
+ if (str[i] == '\0')
+ {
+ break;
+ }
+ result = (unsigned char)( c2x(str[i]) + (result << 4));
+ }
+
+ return result;
+}
+
+//cov
+__attribute__((visibility("hidden")))
+void base64_encode(const char* data, int data_len, char* encode, int encode_len)
+{
+ //int data_len = strlen(data);
+ int prepare = 0;
+ int ret_len;
+ int temp = 0;
+ char *ret = NULL;
+ char *f = NULL;
+ int tmp = 0;
+ char changed[4];
+ int i = 0;
+ const char base[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
+
+ if(data == NULL)
+ {
+ return;
+ }
+ if(encode == NULL)
+ {
+ return;
+ }
+ if(data_len == 0)
+ {
+ return;
+ }
+ ret_len = data_len / 3;
+ temp = data_len % 3;
+ if (temp > 0)
+ {
+ ret_len += 1;
+ }
+ ret_len = ret_len*4 + 1;
+ ret = (char *)malloc(ret_len);
+
+ if (ret == NULL)
+ {
+ printf("No enough memory.\n");
+ return;
+ }
+ memset(ret, 0, ret_len);
+ f = ret;
+ while (tmp < data_len)
+ {
+ temp = 0;
+ prepare = 0;
+ memset(changed, '\0', 4);
+ while (temp < 3)
+ {
+ //printf("tmp = %d\n", tmp);
+ if (tmp >= data_len)
+ {
+ break;
+ }
+ prepare = ((prepare << 8) | (data[tmp] & 0xFF));
+ tmp++;
+ temp++;
+ }
+ prepare = (prepare<<((3-temp)*8));
+ //printf("before for : temp = %d, prepare = %d\n", temp, prepare);
+ for (i = 0; i < 4 ;i++ )
+ {
+ if (temp < i)
+ {
+ changed[i] = 0x40;
+ }
+ else
+ {
+ changed[i] = (prepare>>((3-i)*6)) & 0x3F;
+ }
+ *f = base[changed[i]];
+ //printf("%.2X", changed[i]);
+ f++;
+ }
+ }
+ *f = '\0';
+ strncpy(encode, ret, encode_len - 1);
+ free(ret); //cov
+}
+
+static int get_msg_qid(int module_id)
+{
+ int msg_qid=-1;
+ printf("module_id = %d\n",module_id);
+AGAIN:
+ msg_qid = msgget(module_id,0);
+
+ if(msg_qid == -1)
+ {
+ printf("[%s] fail,module_id=%d, errno=%d\n", __FUNCTION__, module_id, errno);
+
+ goto AGAIN;
+ }
+
+ return msg_qid;
+
+}
+#if 0 //kw 3
+int pipecmd(const char *cmd, char *result)
+{
+ FILE *pp = NULL;
+ int tmp_len = 0;
+ char tmp[128]={0};
+
+ if (cmd == NULL)
+ {
+ return -1;
+ }
+
+ pp = popen(cmd, "r"); //½¨Á¢¹ÜµÀ
+ if (!pp)
+ {
+ return -1;
+ }
+
+ if (result != NULL)
+ {
+ while (fgets(tmp, sizeof(tmp), pp) != NULL)
+ {
+ tmp_len = strlen(tmp);
+ if (tmp_len > 0)
+ {
+ if (tmp[tmp_len - 1] == '\n')
+ {
+ tmp[tmp_len - 1] = '\0'; //È¥³ý»»Ðзû
+ }
+
+ strncpy(result,tmp,tmp_len);
+ printf("[%s]pcmd:tmp = %s\n",__FUNCTION__, tmp);
+ }
+ }
+ }
+ pclose(pp); //¹Ø±Õ¹ÜµÀ
+ return 0;
+}
+#endif
+#ifdef __NO_WIFI__
+void zte_get_wifi_sta_list(RT_802_11_MAC_TABLE *staList)
+{
+ printf("[%s]WIFI function closed\n", __FUNCTION__);
+}
+
+int zte_wlan_capture_sta_num()
+{
+ printf("[%s]WIFI function closed\n", __FUNCTION__);
+ return 0;
+}
+
+int get_channel()
+{
+ printf("[%s]WIFI function closed\n", __FUNCTION__);
+ return 1;
+}
+
+#endif
+