Просмотр исходного кода

Merge pull request #15 from RT-Thread-packages-by-SummerGift/master

【修复】:因为更新而无法使用的 Bug
朱天龙 (Armink) 6 лет назад
Родитель
Сommit
08f4d63cd1

+ 5 - 1
README.md

@@ -94,7 +94,11 @@ RT-Thread online packages  --->
 * Azure 工作原理,请参考 [工作原理](docs/principle.md) 。
 * Azure 工作原理,请参考 [工作原理](docs/principle.md) 。
 * 更多**详细介绍文档**位于 [`/docs`](/docs) 文件夹下,**使用软件包进行开发前请务必查看**。
 * 更多**详细介绍文档**位于 [`/docs`](/docs) 文件夹下,**使用软件包进行开发前请务必查看**。
 
 
-## 4、联系方式 & 感谢
+## 4、注意事项
+
+* azure  软件包编译时请使用较为完整的 libc 库,请不要勾选 MDK 中的 `Use Microlib` 选项
+
+## 5、联系方式 & 感谢
 
 
 * 维护:RT-Thread 开发团队
 * 维护:RT-Thread 开发团队
 * 主页:https://github.com/RT-Thread-packages/
 * 主页:https://github.com/RT-Thread-packages/

+ 1 - 1
azure-port/pal/inc/socket_async_os.h

@@ -14,4 +14,4 @@
 #include "lwip/sockets.h"
 #include "lwip/sockets.h"
 #include "lwip/netdb.h"
 #include "lwip/netdb.h"
 
 
-#endif // SOCKET_ASYNC_OS_H
+#endif // SOCKET_ASYNC_OS_H

+ 4 - 6
azure-port/pal/src/azure_platform.c

@@ -16,16 +16,14 @@
 int platform_init(void)
 int platform_init(void)
 {
 {
     time_t result = ntp_sync_to_rtc(NETUTILS_NTP_HOSTNAME);
     time_t result = ntp_sync_to_rtc(NETUTILS_NTP_HOSTNAME);
-    
+
     if (result > 0)
     if (result > 0)
     {
     {
-        rt_kprintf("\nntp init\n");
+        rt_kprintf("ntp init successful.\n");
         return RT_EOK;
         return RT_EOK;
+    }
 
 
-    }else if( result == 0)
-    {
-        return RT_ERROR;
-    }   
+    return -RT_ERROR;
 }
 }
 
 
 const IO_INTERFACE_DESCRIPTION* platform_get_default_tlsio(void)
 const IO_INTERFACE_DESCRIPTION* platform_get_default_tlsio(void)

+ 14 - 59
azure-port/pal/src/socketio_berkeley.c

@@ -248,19 +248,12 @@ static int add_pending_io(SOCKET_IO_INSTANCE* socket_io_instance, const unsigned
     return result;
     return result;
 }
 }
 
 
-static STATIC_VAR_UNUSED void signal_callback(int signum)
-{
-    AZURE_UNREFERENCED_PARAMETER(signum);
-    LogError("Socket received signal %d.", signum);
-}
-
 static int lookup_address_and_initiate_socket_connection(SOCKET_IO_INSTANCE* socket_io_instance) 
 static int lookup_address_and_initiate_socket_connection(SOCKET_IO_INSTANCE* socket_io_instance) 
 {
 {
     int result;
     int result;
     int err;
     int err;
 
 
     struct addrinfo addrInfoHintIp;
     struct addrinfo addrInfoHintIp;
-//    struct sockaddr_un addrInfoUn;
     struct sockaddr* connect_addr;
     struct sockaddr* connect_addr;
     socklen_t connect_addr_len;
     socklen_t connect_addr_len;
     struct addrinfo* addrInfoIp = NULL;
     struct addrinfo* addrInfoIp = NULL;
@@ -287,36 +280,9 @@ static int lookup_address_and_initiate_socket_connection(SOCKET_IO_INSTANCE* soc
             result = 0;
             result = 0;
         }
         }
     }
     }
-//    else
-//    {
-//        if (strlen(socket_io_instance->hostname) + 1 > sizeof(addrInfoUn.sun_path))
-//        {
-//            LogError("Hostname %s is too long for a unix socket (max len = %d)", socket_io_instance->hostname, sizeof(addrInfoUn.sun_path));
-//            result = __FAILURE__;
-//        }
-//        else
-//        {
-//            memset(&addrInfoUn, 0, sizeof(addrInfoUn));
-//            addrInfoUn.sun_family = AF_INET;
-//            strncpy(addrInfoUn.sun_path, socket_io_instance->hostname, sizeof(addrInfoUn.sun_path) - 1);
-//            
-//            connect_addr = (struct sockaddr*)&addrInfoUn;
-//            connect_addr_len = sizeof(addrInfoUn);
-//            result = 0;
-//        }
-//    }
     
     
     if (result == 0)
     if (result == 0)
     {
     {
-        int flags;
-
-        if ((-1 == (flags = fcntl(socket_io_instance->socket, F_GETFL, 0))) ||
-            (fcntl(socket_io_instance->socket, F_SETFL, flags | O_NONBLOCK) == -1))
-        {
-            LogError("Failure: fcntl failure.");
-            result = __FAILURE__;
-        }
-        else
         {
         {
             err = connect(socket_io_instance->socket, connect_addr, connect_addr_len);      
             err = connect(socket_io_instance->socket, connect_addr, connect_addr_len);      
             if ((err != 0) && (errno != EINPROGRESS))
             if ((err != 0) && (errno != EINPROGRESS))
@@ -344,16 +310,16 @@ static int wait_for_connection(SOCKET_IO_INSTANCE* socket_io_instance)
 
 
     fd_set fdset;
     fd_set fdset;
     struct timeval tv;
     struct timeval tv;
-    
+
     FD_ZERO(&fdset);
     FD_ZERO(&fdset);
     FD_SET(socket_io_instance->socket, &fdset);
     FD_SET(socket_io_instance->socket, &fdset);
     tv.tv_sec = CONNECT_TIMEOUT;
     tv.tv_sec = CONNECT_TIMEOUT;
     tv.tv_usec = 0;
     tv.tv_usec = 0;
-    
+
     do
     do
     {
     {
         retval = select(socket_io_instance->socket + 1, NULL, &fdset, NULL, &tv);
         retval = select(socket_io_instance->socket + 1, NULL, &fdset, NULL, &tv);
-    
+
         if (retval < 0)
         if (retval < 0)
         {
         {
             select_errno = errno;
             select_errno = errno;
@@ -401,7 +367,7 @@ static void destroy_network_interface_descriptions(NETWORK_INTERFACE_DESCRIPTION
         {
         {
             destroy_network_interface_descriptions(nid->next);
             destroy_network_interface_descriptions(nid->next);
         }
         }
-    
+
         if (nid->name != NULL)
         if (nid->name != NULL)
         {
         {
             free(nid->name);
             free(nid->name);
@@ -411,7 +377,7 @@ static void destroy_network_interface_descriptions(NETWORK_INTERFACE_DESCRIPTION
         {
         {
             free(nid->mac_address);
             free(nid->mac_address);
         }
         }
-        
+
         if (nid->ip_address != NULL)
         if (nid->ip_address != NULL)
         {
         {
             free(nid->ip_address);
             free(nid->ip_address);
@@ -424,7 +390,7 @@ static void destroy_network_interface_descriptions(NETWORK_INTERFACE_DESCRIPTION
 static NETWORK_INTERFACE_DESCRIPTION* create_network_interface_description(struct ifreq *ifr, NETWORK_INTERFACE_DESCRIPTION* previous_nid)
 static NETWORK_INTERFACE_DESCRIPTION* create_network_interface_description(struct ifreq *ifr, NETWORK_INTERFACE_DESCRIPTION* previous_nid)
 {
 {
     NETWORK_INTERFACE_DESCRIPTION* result;
     NETWORK_INTERFACE_DESCRIPTION* result;
-    
+
     if ((result = (NETWORK_INTERFACE_DESCRIPTION*)malloc(sizeof(NETWORK_INTERFACE_DESCRIPTION))) == NULL)
     if ((result = (NETWORK_INTERFACE_DESCRIPTION*)malloc(sizeof(NETWORK_INTERFACE_DESCRIPTION))) == NULL)
     {
     {
         LogError("Failed allocating NETWORK_INTERFACE_DESCRIPTION");
         LogError("Failed allocating NETWORK_INTERFACE_DESCRIPTION");
@@ -486,7 +452,7 @@ static NETWORK_INTERFACE_DESCRIPTION* create_network_interface_description(struc
             }
             }
         }
         }
     }
     }
-    
+
     return result;
     return result;
 }
 }
 
 
@@ -506,14 +472,14 @@ static int get_network_interface_descriptions(int socket, NETWORK_INTERFACE_DESC
         LogError("ioctl failed querying socket (SIOCGIFCONF, errno=%s)", errno);
         LogError("ioctl failed querying socket (SIOCGIFCONF, errno=%s)", errno);
         result = __FAILURE__;
         result = __FAILURE__;
     }
     }
-    else 
+    else
     {
     {
         NETWORK_INTERFACE_DESCRIPTION* root_nid = NULL;
         NETWORK_INTERFACE_DESCRIPTION* root_nid = NULL;
         NETWORK_INTERFACE_DESCRIPTION* new_nid = NULL;
         NETWORK_INTERFACE_DESCRIPTION* new_nid = NULL;
 
 
         struct ifreq* it = ifc.ifc_req;
         struct ifreq* it = ifc.ifc_req;
         const struct ifreq* const end = it + (ifc.ifc_len / sizeof(struct ifreq));
         const struct ifreq* const end = it + (ifc.ifc_len / sizeof(struct ifreq));
-        
+
         result = 0;
         result = 0;
 
 
         for (; it != end; ++it)
         for (; it != end; ++it)
@@ -742,18 +708,14 @@ int socketio_open(CONCRETE_IO_HANDLE socket_io, ON_IO_OPEN_COMPLETE on_io_open_c
         }
         }
         else
         else
         {
         {
-            //socket_io_instance->socket = socket (socket_io_instance->address_type == ADDRESS_TYPE_IP ? AF_INET : AF_UNIX, SOCK_STREAM, 0);
-            socket_io_instance->socket = socket ( AF_INET, SOCK_STREAM , 0);
+            socket_io_instance->socket = socket (socket_io_instance->address_type == ADDRESS_TYPE_IP ? AF_INET : AF_INET, SOCK_STREAM, 0);
             
             
-            //rt_kprintf("line:%d file:%s. the socket_io_instance->socket is %d.==========================>\n",__LINE__,__FILE__,socket_io_instance->socket);
-                    
-            if (socket_io_instance->socket > SOCKET_SUCCESS)
-            {
+            if (socket_io_instance->socket > SOCKET_SUCCESS){
                 struct timeval timeout = {1, 0};
                 struct timeval timeout = {1, 0};
                 int result_setopt = setsockopt(socket_io_instance->socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval));
                 int result_setopt = setsockopt(socket_io_instance->socket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval));
-                //rt_kprintf("line:%d file:%s. the result_setopt is %d.==========================>\n",__LINE__,__FILE__,result_setopt);
+//                rt_kprintf("line:%d file:%s. the result_setopt is %d.\n",__LINE__,__FILE__,result_setopt);
             }
             }
-            
+
             if (socket_io_instance->socket < SOCKET_SUCCESS)
             if (socket_io_instance->socket < SOCKET_SUCCESS)
             {
             {
                 LogError("Failure: socket create failure %d.", socket_io_instance->socket);
                 LogError("Failure: socket create failure %d.", socket_io_instance->socket);
@@ -1011,19 +973,12 @@ void socketio_dowork(CONCRETE_IO_HANDLE socket_io)
                     // Do not log error here due to this is probably the socket being closed on the other end
                     // Do not log error here due to this is probably the socket being closed on the other end
                     indicate_error(socket_io_instance);
                     indicate_error(socket_io_instance);
                 }
                 }
-#if defined(__GNUC__)
                 else if (received < 0 && errno != EAGAIN)
                 else if (received < 0 && errno != EAGAIN)
                 {
                 {
                     LogError("Socketio_Failure: Receiving data from endpoint: errno=%d.", errno);
                     LogError("Socketio_Failure: Receiving data from endpoint: errno=%d.", errno);
                     indicate_error(socket_io_instance);
                     indicate_error(socket_io_instance);
                 }
                 }
-#else
-                else if (received < 0 && rt_get_errno() != EAGAIN)
-                {
-                    LogError("Socketio_Failure: Receiving data from endpoint: errno=%d.", rt_get_errno());
-                    indicate_error(socket_io_instance);
-                }
-#endif
+
             } while (received > 0 && socket_io_instance->io_state == IO_STATE_OPEN);
             } while (received > 0 && socket_io_instance->io_state == IO_STATE_OPEN);
         }
         }
     }
     }

+ 1 - 1
azure/c-utility/inc/azure_c_shared_utility/tls_config.h

@@ -7,4 +7,4 @@
 //#define USE_WOLF_SSL
 //#define USE_WOLF_SSL
 #define USE_MBED_TLS
 #define USE_MBED_TLS
 
 
-#endif // __TLS_CONFIG_H__
+#endif // __TLS_CONFIG_H__