blob: 7546e13ff9a5016e5cda1cf71f605dd0c40be288 [file] [log] [blame]
#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