Fix polarssl
Change-Id: I4b461ce72f7e828c689f1190dec78bea40f60d50
diff --git a/mbtk/Make.defines b/mbtk/Make.defines
index bb6556a..0b5f1fe 100755
--- a/mbtk/Make.defines
+++ b/mbtk/Make.defines
@@ -56,6 +56,10 @@
-UDEBUG \
-D_FORTIFY_SOURCE=2 \
-D_GNU_SOURCE
+
+ifeq ($(BUILD_PLATFORM), gcc-4.9)
+DEFINE += -DMBTK_POLARSSL_SUPPORT
+endif
LIB_DIR = \
-L$(OUT_DIR)/lib
diff --git a/mbtk/include/mbtk/mbtk_sock2.h b/mbtk/include/mbtk/mbtk_sock2.h
index 3dfaad1..52d75cc 100755
--- a/mbtk/include/mbtk/mbtk_sock2.h
+++ b/mbtk/include/mbtk/mbtk_sock2.h
@@ -107,6 +107,7 @@
mbtk_sock_cb_func sock_cb;
} mbtk_init_info;
+#ifdef MBTK_POLARSSL_SUPPORT
#define DFL_SERVER_NAME "asr"
#define DFL_SERVER_ADDR NULL
#define DFL_SERVER_PORT 4433
@@ -134,6 +135,7 @@
#define DFL_RECO_DELAY 0
#define DFL_TICKETS SSL_SESSION_TICKETS_ENABLED
#define DFL_ALPN_STRING NULL
+#endif
/*************************************************************
Variables:local,extern
diff --git a/mbtk/mbtk_lib/inc/mbtk_sock_internal.h b/mbtk/mbtk_lib/inc/mbtk_sock_internal.h
index e0cbaa0..4ee7125 100755
--- a/mbtk/mbtk_lib/inc/mbtk_sock_internal.h
+++ b/mbtk/mbtk_lib/inc/mbtk_sock_internal.h
@@ -9,6 +9,7 @@
typedef struct {
int fd;
mbtk_sock_type type; // socket type:TCP or UDP
+#ifdef MBTK_POLARSSL_SUPPORT
entropy_context* entropy;
ctr_drbg_context* ctr_drbg;
ssl_context *ssl;
@@ -16,6 +17,7 @@
x509_crt *cacert;
x509_crt *clicert;
pk_context* pkey;
+#endif
} mbtk_sock_inter_info_s;
typedef struct {
diff --git a/mbtk/mbtk_lib/src/mbtk_sock2.c b/mbtk/mbtk_lib/src/mbtk_sock2.c
index bb1ddb8..0e65992 100755
--- a/mbtk/mbtk_lib/src/mbtk_sock2.c
+++ b/mbtk/mbtk_lib/src/mbtk_sock2.c
@@ -10,6 +10,8 @@
#include <sys/time.h>
#include <fcntl.h>
#include <netdb.h>
+
+#ifdef MBTK_POLARSSL_SUPPORT
#include <polarssl/net.h>
#include <polarssl/ssl.h>
#include <polarssl/entropy.h>
@@ -19,6 +21,9 @@
#include <polarssl/error.h>
#include <polarssl/debug.h>
#include <polarssl/config.h>
+#else
+
+#endif
#include <sys/ioctl.h>
#ifdef LOG_TAG
@@ -272,7 +277,8 @@
return handle;
}
-static int mbtk_ssl_init(int fd ,bool ingnore_cert,mbtk_sock_inter_info_s* inter_info)
+#ifdef MBTK_POLARSSL_SUPPORT
+static int mbtk_polarssl_open(int fd ,bool ingnore_cert,mbtk_sock_inter_info_s* inter_info)
{
LOGE("8\n");
int ret = 0, len, tail_len, i, written, frags;
@@ -477,7 +483,7 @@
return 0;
}
-int mbtk_ssl_close(mbtk_sock_inter_info_s *inter_info)
+static int mbtk_polarssl_close(mbtk_sock_inter_info_s *inter_info)
{
if (inter_info == NULL)
{
@@ -512,6 +518,24 @@
return 0;
}
+static int mbtk_polarssl_write( ssl_context *ssl, const unsigned char *buf, size_t len )
+{
+ return ssl_write(ssl, buf, len);
+}
+
+static int mbtk_polarssl_read( ssl_context *ssl, unsigned char *buf, size_t len )
+{
+ return ssl_read(ssl, buf, len);
+}
+
+#else
+
+
+
+
+
+#endif
+
extern mbtk_sock_session mbtk_sock_open(mbtk_sock_handle handle,mbtk_sock_info *info,
unsigned int timeout,
int *mbtk_errno)
@@ -703,11 +727,14 @@
}
#endif
if(info->is_support_ssl){
- if(mbtk_ssl_init(mbtk_sock[handle]->inter_infos[index_free].fd,info->ingnore_cert,&mbtk_sock[handle]->inter_infos[index_free]) == -1){
+#ifdef MBTK_POLARSSL_SUPPORT
+ if(mbtk_polarssl_open(mbtk_sock[handle]->inter_infos[index_free].fd,info->ingnore_cert,&mbtk_sock[handle]->inter_infos[index_free]) == -1){
LOGE("mbtk_openssl_init fail");
goto result_fail_with_close;
}
+#else
+#endif
}
*mbtk_errno = MBTK_SOCK_SUCCESS;
@@ -736,7 +763,11 @@
break;
}
}
- return mbtk_ssl_init(mbtk_sock[handle]->inter_infos[index_free].fd,ingnore_cert,&mbtk_sock[handle]->inter_infos[index_free]);
+#ifdef MBTK_POLARSSL_SUPPORT
+ return mbtk_polarssl_open(mbtk_sock[handle]->inter_infos[index_free].fd,ingnore_cert,&mbtk_sock[handle]->inter_infos[index_free]);
+#else
+ return 0;
+#endif
}
extern int mbtk_ssl_close_func(mbtk_sock_handle handle ,bool ingnore_cert,mbtk_sock_session fd)
{
@@ -751,9 +782,14 @@
break;
}
}
+
+#ifdef MBTK_POLARSSL_SUPPORT
if(mbtk_sock[handle]->inter_infos[index_free].ssl!=NULL);
printf("\nmbtk_sock[handle]->inter_infos[index_free].ssl not empty\n");
- return mbtk_ssl_close(&mbtk_sock[handle]->inter_infos[index_free]);
+ return mbtk_polarssl_close(&mbtk_sock[handle]->inter_infos[index_free]);
+#else
+ return 0;
+#endif
}
extern int mbtk_sock_write(mbtk_sock_handle handle,mbtk_sock_session session,
@@ -800,9 +836,13 @@
unsigned int count = 0;
if(mbtk_sock[handle]->infos[index].type == MBTK_SOCK_TCP) {
while(count < buf_len){
- if(mbtk_sock[handle]->infos[index].is_support_ssl)
- len = ssl_write(inter_info->ssl,(char*)buffer + count,buf_len - count);
- else
+ if(mbtk_sock[handle]->infos[index].is_support_ssl) {
+#ifdef MBTK_POLARSSL_SUPPORT
+ len = mbtk_polarssl_write(inter_info->ssl,(char*)buffer + count,buf_len - count);
+#else
+
+#endif
+ } else
len = write(inter_info->fd,(char*)buffer + count,buf_len - count);
if(len < 0){
if(errno == EWOULDBLOCK){
@@ -904,9 +944,13 @@
memset(buffer,0x0,buf_len);
while(count < buf_len){
try_count++;
- if(mbtk_sock[handle]->infos[index].is_support_ssl)
- len = ssl_read(inter_info->ssl,(char*)buffer + count,buf_len - count);
- else
+ if(mbtk_sock[handle]->infos[index].is_support_ssl) {
+#ifdef MBTK_POLARSSL_SUPPORT
+ len = mbtk_polarssl_read(inter_info->ssl,(char*)buffer + count,buf_len - count);
+#else
+
+#endif
+ } else
len = read(inter_info->fd,(char*)buffer + count,buf_len - count);
if(len < 0){
if(errno == EWOULDBLOCK){
@@ -1075,11 +1119,13 @@
memset(buffer,0x0,buf_len);
while(count < buf_len){
try_count++;
- if( inter_info->ssl == NULL)
- printf("\ninter_info->ssl == NULL\n");
- if(mbtk_sock[handle]->infos[index].is_support_ssl)
- len = ssl_read(inter_info->ssl,(char*)buffer + count,buf_len - count);
- else
+ if(mbtk_sock[handle]->infos[index].is_support_ssl) {
+#ifdef MBTK_POLARSSL_SUPPORT
+ len = mbtk_polarssl_read(inter_info->ssl,(char*)buffer + count,buf_len - count);
+#else
+
+#endif
+ } else
len = read(inter_info->fd,(char*)buffer + count,buf_len - count);
*read_line_count = len;
if(len < 0){
@@ -1249,9 +1295,13 @@
if(mbtk_sock[handle]->infos[index].type == MBTK_SOCK_TCP) {
memset(buffer,0x0,buf_len);
while(read_count < buf_len) {
- if(mbtk_sock[handle]->infos[index].is_support_ssl)
+ if(mbtk_sock[handle]->infos[index].is_support_ssl) {
+#ifdef MBTK_POLARSSL_SUPPORT
len = ssl_read(inter_info->ssl,(char*)buffer + read_count,buf_len - read_count);
- else
+#else
+
+#endif
+ } else
len = read(inter_info->fd,(char*)buffer + read_count,buf_len - read_count);
if(len > 0) {
@@ -1335,9 +1385,13 @@
if(mbtk_sock[handle]->infos[index].type == MBTK_SOCK_TCP) {
TCP_READ_AGAIN:
memset(buffer,0x0,buf_len);
- if(mbtk_sock[handle]->infos[index].is_support_ssl)
+ if(mbtk_sock[handle]->infos[index].is_support_ssl) {
+#ifdef MBTK_POLARSSL_SUPPORT
len = ssl_read(inter_info->ssl,(char*)buffer,buf_len);
- else
+#else
+
+#endif
+ } else
len = read(inter_info->fd,(char*)buffer,buf_len);
if(len < 0){
if(errno == EWOULDBLOCK){
@@ -1430,11 +1484,15 @@
}
if(mbtk_sock[handle]->infos[index].is_support_ssl){
- if(mbtk_ssl_close(inter_info)== -1)
+#ifdef MBTK_POLARSSL_SUPPORT
+ if(mbtk_polarssl_close(inter_info)== -1)
{
LOGE("close ssl fail");
return -1;
}
+#else
+
+#endif
}
*mbtk_errno = MBTK_SOCK_SUCCESS;