|
|
@@ -13,6 +13,7 @@
|
|
|
#include <netinet/in.h> // struct sockaddr_in, struct ip_mreq, INADDR_ANY, IPPROTO_IP, also include <sys/socket.h>
|
|
|
#include <arpa/inet.h> // inet_aton, inet_ntop, inet_addr, also include <netinet/in.h>
|
|
|
#include <netdev.h>
|
|
|
+#include <rtthread.h>
|
|
|
#include "lssdp.h"
|
|
|
|
|
|
#ifndef _SIZEOF_ADDR_IFREQ
|
|
|
@@ -21,10 +22,18 @@
|
|
|
|
|
|
/** Definition **/
|
|
|
#define LSSDP_BUFFER_LEN 512
|
|
|
+
|
|
|
+#if defined(LSSDP_ENABLE_DEBUG_MESSAGES)
|
|
|
#define lssdp_debug(fmt, agrs...) lssdp_log(LSSDP_LOG_DEBUG, __LINE__, __func__, fmt, ##agrs)
|
|
|
#define lssdp_info(fmt, agrs...) lssdp_log(LSSDP_LOG_INFO, __LINE__, __func__, fmt, ##agrs)
|
|
|
#define lssdp_warn(fmt, agrs...) lssdp_log(LSSDP_LOG_WARN, __LINE__, __func__, fmt, ##agrs)
|
|
|
#define lssdp_error(fmt, agrs...) lssdp_log(LSSDP_LOG_ERROR, __LINE__, __func__, fmt, ##agrs)
|
|
|
+#else
|
|
|
+#define lssdp_debug(fmt, agrs...)
|
|
|
+#define lssdp_info(fmt, agrs...)
|
|
|
+#define lssdp_warn(fmt, agrs...)
|
|
|
+#define lssdp_error(fmt, agrs...)
|
|
|
+#endif
|
|
|
|
|
|
/** Struct: lssdp_packet **/
|
|
|
typedef struct lssdp_packet {
|
|
|
@@ -105,13 +114,14 @@ int lssdp_network_interface_update(lssdp_ctx * lssdp) {
|
|
|
// 2. reset lssdp->interface
|
|
|
lssdp->interface_num = 0;
|
|
|
memset(lssdp->interface, 0, SIZE_OF_INTERFACE_LIST);
|
|
|
-
|
|
|
+
|
|
|
// 3. get ifconfig
|
|
|
+ rt_thread_mdelay(5000); // Wait for the default network initialization is successful
|
|
|
extern struct netdev *netdev_default;
|
|
|
while(netdev_default == NULL)
|
|
|
{
|
|
|
- rt_thread_mdelay(2000);
|
|
|
lssdp_error("Can't find default net device, please check the network driver.\r\n");
|
|
|
+ rt_thread_mdelay(2000);
|
|
|
}
|
|
|
|
|
|
if(netdev_default != NULL)
|
|
|
@@ -731,7 +741,6 @@ static int parse_field_line(const char * data, size_t start, size_t end, lssdp_p
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
// 2. get field, field_len
|
|
|
size_t i = start;
|
|
|
size_t j = colon - 1;
|
|
|
@@ -741,7 +750,6 @@ static int parse_field_line(const char * data, size_t start, size_t end, lssdp_p
|
|
|
const char * field = &data[i];
|
|
|
size_t field_len = j - i + 1;
|
|
|
|
|
|
-
|
|
|
// 3. get value, value_len
|
|
|
i = colon + 1;
|
|
|
j = end;
|