-
Notifications
You must be signed in to change notification settings - Fork 29
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
110 changed files
with
16,966 additions
and
539 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
if(CONFIG_MDNS_NETWORKING_SOCKET) | ||
set(MDNS_NETWORKING "mdns_networking_socket.c") | ||
else() | ||
set(MDNS_NETWORKING "mdns_networking_lwip.c") | ||
endif() | ||
|
||
idf_build_get_property(target IDF_TARGET) | ||
if(${target} STREQUAL "linux") | ||
set(dependencies esp_system_protocols_linux) | ||
set(srcs "mdns.c" ${MDNS_NETWORKING}) | ||
else() | ||
set(dependencies lwip console esp_netif) | ||
set(private_dependencies esp_timer) | ||
set(srcs "mdns.c" ${MDNS_NETWORKING} "mdns_console.c") | ||
endif() | ||
|
||
idf_component_register( | ||
SRCS ${srcs} | ||
INCLUDE_DIRS "include" | ||
PRIV_INCLUDE_DIRS "private_include" | ||
REQUIRES ${dependencies} | ||
PRIV_REQUIRES ${private_dependencies}) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,93 @@ | ||
menu "mDNS" | ||
|
||
config MDNS_MAX_SERVICES | ||
int "Max number of services" | ||
range 1 64 | ||
default 10 | ||
help | ||
Services take up a certain amount of memory, and allowing fewer | ||
services to be open at the same time conserves memory. Specify | ||
the maximum amount of services here. The valid value is from 1 | ||
to 64. | ||
|
||
config MDNS_TASK_PRIORITY | ||
int "mDNS task priority" | ||
range 1 255 | ||
default 1 | ||
help | ||
Allows setting mDNS task priority. Please do not set the task priority | ||
higher than priorities of system tasks. Compile time warning/error | ||
would be emitted if the chosen task priority were too high. | ||
|
||
config MDNS_TASK_STACK_SIZE | ||
int "mDNS task stack size" | ||
default 4096 | ||
help | ||
Allows setting mDNS task stacksize. | ||
|
||
choice MDNS_TASK_AFFINITY | ||
prompt "mDNS task affinity" | ||
default MDNS_TASK_AFFINITY_CPU0 | ||
help | ||
Allows setting mDNS tasks affinity, i.e. whether the task is pinned to | ||
CPU0, pinned to CPU1, or allowed to run on any CPU. | ||
|
||
config MDNS_TASK_AFFINITY_NO_AFFINITY | ||
bool "No affinity" | ||
config MDNS_TASK_AFFINITY_CPU0 | ||
bool "CPU0" | ||
config MDNS_TASK_AFFINITY_CPU1 | ||
bool "CPU1" | ||
depends on !FREERTOS_UNICORE | ||
|
||
endchoice | ||
|
||
config MDNS_TASK_AFFINITY | ||
hex | ||
default FREERTOS_NO_AFFINITY if MDNS_TASK_AFFINITY_NO_AFFINITY | ||
default 0x0 if MDNS_TASK_AFFINITY_CPU0 | ||
default 0x1 if MDNS_TASK_AFFINITY_CPU1 | ||
|
||
config MDNS_SERVICE_ADD_TIMEOUT_MS | ||
int "mDNS adding service timeout (ms)" | ||
range 10 30000 | ||
default 2000 | ||
help | ||
Configures timeout for adding a new mDNS service. Adding a service | ||
fails if could not be completed within this time. | ||
|
||
config MDNS_STRICT_MODE | ||
bool "mDNS strict mode" | ||
default "n" | ||
help | ||
Configures strict mode. Set this to 1 for the mDNS library to strictly follow the RFC6762: | ||
Currently the only strict feature: Do not repeat original questions in response packets | ||
(defined in RFC6762 sec. 6). | ||
Default configuration is 0, i.e. non-strict mode, since some implementations, | ||
such as lwIP mdns resolver (used by standard POSIX API like getaddrinfo, gethostbyname) | ||
could not correctly resolve advertised names. | ||
|
||
config MDNS_TIMER_PERIOD_MS | ||
int "mDNS timer period (ms)" | ||
range 10 10000 | ||
default 100 | ||
help | ||
Configures period of mDNS timer, which periodically transmits packets | ||
and schedules mDNS searches. | ||
|
||
config MDNS_NETWORKING_SOCKET | ||
bool "Use BSD sockets for mdns networking" | ||
default n | ||
help | ||
Enables optional mdns networking implementation using BSD sockets | ||
in UDP multicast mode. | ||
This option creates a new thread to serve receiving packets (TODO). | ||
This option uses additional N sockets, where N is number of interfaces. | ||
|
||
config MDNS_MULTIPLE_INSTANCE | ||
bool "Multiple instances under the same service type" | ||
default y | ||
help | ||
Enables adding multiple service instances under the same service type. | ||
|
||
endmenu |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
ifdef CONFIG_MDNS_NETWORKING_SOCKET | ||
COMPONENT_OBJEXCLUDE := mdns_networking_lwip.o | ||
else | ||
COMPONENT_OBJEXCLUDE := mdns_networking_socket.o | ||
endif | ||
COMPONENT_ADD_INCLUDEDIRS := include | ||
COMPONENT_PRIV_INCLUDEDIRS := private_include |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
cmake_minimum_required(VERSION 3.5) | ||
|
||
include($ENV{IDF_PATH}/tools/cmake/project.cmake) | ||
set(COMPONENTS main) | ||
project(mdns_host) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
# Setup dummy network interfaces | ||
``` | ||
sudo ip link add eth2 type dummy | ||
sudo ip addr add 192.168.1.200/24 dev eth2 | ||
sudo ip link set eth2 up | ||
sudo ifconfig eth2 multicast | ||
``` | ||
|
||
# Dig on a specified interface | ||
|
||
``` | ||
dig +short -b 192.168.1.200 -p 5353 @224.0.0.251 myesp.local | ||
``` | ||
|
||
# Run avahi to browse services | ||
|
||
Avahi needs the netif to have the "multicast" flag set | ||
|
||
```bash | ||
david@david-comp:~/esp/idf (feature/mdns_networking_socket)$ avahi-browse -a -r -p | ||
+;eth2;IPv6;myesp-service2;Web Site;local | ||
+;eth2;IPv4;myesp-service2;Web Site;local | ||
=;eth2;IPv6;myesp-service2;Web Site;local;myesp.local;192.168.1.200;80;"board=esp32" "u=user" "p=password" | ||
=;eth2;IPv4;myesp-service2;Web Site;local;myesp.local;192.168.1.200;80;"board=esp32" "u=user" "p=password" | ||
``` |
3 changes: 3 additions & 0 deletions
3
components/mdns/host_test/components/esp_event_mock/CMakeLists.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
idf_component_register(SRCS esp_event_mock.c | ||
INCLUDE_DIRS include | ||
REQUIRES esp_system_protocols_linux) |
29 changes: 29 additions & 0 deletions
29
components/mdns/host_test/components/esp_event_mock/esp_event_mock.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
// Copyright 2021 Espressif Systems (Shanghai) PTE LTD | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
|
||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
#include "esp_err.h" | ||
#include "esp_event.h" | ||
|
||
const char * WIFI_EVENT = "WIFI_EVENT"; | ||
const char * IP_EVENT = "IP_EVENT"; | ||
|
||
esp_err_t esp_event_handler_register(const char * event_base, int32_t event_id, void* event_handler, void* event_handler_arg) | ||
{ | ||
return ESP_OK; | ||
} | ||
|
||
esp_err_t esp_event_handler_unregister(const char * event_base, int32_t event_id, void* event_handler) | ||
{ | ||
return ESP_OK; | ||
} |
32 changes: 32 additions & 0 deletions
32
components/mdns/host_test/components/esp_event_mock/include/esp_event.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
// Copyright 2021 Espressif Systems (Shanghai) PTE LTD | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
|
||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
#pragma once | ||
|
||
#include "stdbool.h" | ||
#include "esp_err.h" | ||
#include "esp_event_base.h" | ||
#include "bsd_strings.h" | ||
|
||
#define ESP_EVENT_DECLARE_BASE(x) | ||
#define ESP_EVENT_ANY_ID (-1) | ||
|
||
typedef void * esp_event_base_t; | ||
typedef void * system_event_t; | ||
|
||
const char* WIFI_EVENT; | ||
const char* IP_EVENT; | ||
|
||
esp_err_t esp_event_handler_register(const char * event_base, int32_t event_id, void* event_handler, void* event_handler_arg); | ||
|
||
esp_err_t esp_event_handler_unregister(const char * event_base, int32_t event_id, void* event_handler); |
21 changes: 21 additions & 0 deletions
21
components/mdns/host_test/components/esp_event_mock/include/esp_event_base.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
// Copyright 2021 Espressif Systems (Shanghai) PTE LTD | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
|
||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
#pragma once | ||
|
||
typedef enum { | ||
WIFI_EVENT_STA_CONNECTED, /**< ESP32 station connected to AP */ | ||
WIFI_EVENT_STA_DISCONNECTED, /**< ESP32 station disconnected from AP */ | ||
WIFI_EVENT_AP_START, /**< ESP32 soft-AP start */ | ||
WIFI_EVENT_AP_STOP, /**< ESP32 soft-AP stop */ | ||
} mdns_used_event_t; |
3 changes: 3 additions & 0 deletions
3
components/mdns/host_test/components/esp_netif_linux/CMakeLists.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
idf_component_register(SRCS esp_netif_linux.c | ||
INCLUDE_DIRS include | ||
REQUIRES esp_system_protocols_linux) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
menu "LWIP-MOCK-CONFIG" | ||
|
||
config LWIP_IPV6 | ||
bool "Enable IPv6" | ||
default true | ||
help | ||
Enable/disable IPv6 | ||
|
||
endmenu |
Oops, something went wrong.