Commit Graph

218 Commits

Author SHA1 Message Date
Guo Jia Cheng
139bf4af64 Merge branch 'feature/add-mdns-result-attributes' into 'master'
mdns: add more mdns result attributes

See merge request espressif/esp-idf!14674
2021-08-23 09:28:19 +00:00
David Cermak
fc7e2d9e90 mdns: Add host test using linux target 2021-08-17 18:39:40 +08:00
David Cermak
73dfe84bf2 mdns: Implement mdns_networking using BSD sockets
And use only if configured. By default we still use lwip raw (low-level) API
2021-08-17 18:39:40 +08:00
Jiacheng Guo
986603cf07 mdns: add notification callback for async APIs 2021-08-17 16:53:37 +08:00
Jiacheng Guo
76ec76c12c mdns: add more mdns result attributes 2021-08-11 19:02:05 +08:00
Jiacheng Guo
5e98772eaf mdns: fix crash when adding services without hostname set 2021-07-29 10:45:10 +08:00
David Cermak
619235c2ee mdns: Fix fuzzer IDF-mock layer
Removed lwip dependencies
Simplified the mocks for esp32 and esp-netif
2021-07-01 15:45:05 +02:00
David Cermak
54e329444a mdns: Clean the main mdns module from lwip dependencies
* Reduced number of include paths
* Abstract the internals of mdns packet (specifics defined in
mdns_networking.c)
* Use ESP_IP addresses instead of lwip addresses
2021-07-01 15:01:39 +02:00
David Čermák
6661d01a64 Merge branch 'feature/mdns_query_async' into 'master'
mdns: Add asynchronous query API

See merge request espressif/esp-idf!13988
2021-07-01 12:28:54 +00:00
David Čermák
68f33b75de Merge branch 'bugfix/mdns_fuzzer_crashes' into 'master'
mdns: Fix null dereferences reported by fuzzer tests

See merge request espressif/esp-idf!14153
2021-07-01 10:46:55 +00:00
David Cermak
d81482d699 mdns: Add asynchronous query API
Closes https://github.com/espressif/esp-idf/issues/7090
2021-06-30 17:20:30 +04:00
Jiacheng Guo
2386113972 mdns: return ESP_OK rather than ERR_OK in API functions 2021-06-29 17:35:45 +08:00
Jiacheng Guo
0baee93211 mdns: fix memory leak in mdns_free when adding delegated hostnames 2021-06-29 17:35:45 +08:00
David Cermak
4a2e72677c mdns: Fix crashes reported by the fuzzer tests 2021-06-25 08:34:39 +02:00
David Cermak
dae803335e mdns/fuzzer: Fix non-instrumentation test to reproduce fuzzer issues
Regression from 7d76245173 skipped reading the packet causing issues when locally reproducing crashed found by the fuzzer
2021-06-25 08:33:38 +02:00
David Cermak
f167238fac mdns: Support for One-Shot mDNS queries 2021-06-24 07:05:00 +02:00
David Čermák
3452c5f194 Merge branch 'feature/mdns-value-len' into 'master'
mdns: allow explicit txt value length

See merge request espressif/esp-idf!13981
2021-06-23 14:53:48 +00:00
David Čermák
4d604ee6d2 Merge branch 'bugfix/remove_unstable_network_tests' into 'master'
CI: Move mqtt publish tests from regular pipeline to weekend tests

Closes IDFCI-653

See merge request espressif/esp-idf!13891
2021-06-17 07:04:51 +00:00
Jiacheng Guo
b4e0088b68 mdns: allow explicit txt value length 2021-06-16 17:47:07 +08:00
David Cermak
79ba738626 mdns: Fix crashes reported by the fuzzer 2021-06-11 16:53:06 +02:00
David Cermak
7d76245173 mdns: Minor correction of the test code 2021-06-11 16:53:06 +02:00
David Cermak
14099fe15e mdns: Fix fuzzer from miss-interpreting adding services as timeouts 2021-06-11 16:53:06 +02:00
Jiacheng Guo
a4f263948c mdns: fix test script delayed response 2021-06-04 10:44:36 +08:00
Jiacheng Guo
e6135552d2 mdns: fix wrong SRV/PTR record handling 2021-06-04 10:44:36 +08:00
Jiacheng Guo
439b31d065 mdns: fix wrong service hostname after mangling 2021-06-04 10:44:36 +08:00
Jiacheng Guo
7bbb72d865 mdns: fix empty address change announce packets 2021-06-04 10:44:36 +08:00
Jiacheng Guo
d2a5d25984 mdns: fix mdns probe/reply behavior
* send correct hostnames when probing.
* add test for mdns host delegation.
2021-06-04 10:44:36 +08:00
Jiacheng Guo
2d34352f3d mdns: make delegate host address a list
Also adds unit test and doc string for new apis.
2021-06-04 10:44:36 +08:00
Jiacheng Guo
2174693096 mdns: add remove delegate host api 2021-06-04 10:44:36 +08:00
Jiacheng Guo
401ff56cc1 mdns: add mdns delegation
This allows publishing mdns services for other devices.
2021-06-04 10:44:36 +08:00
Jiacheng Guo
5f244c86f2 mdns: fix memory free issue when repeating the query in reply
The repeated query will be copied in the next event loop while the
memory is freed instantly. Delay the free to fix this issue.
2021-06-04 10:44:36 +08:00
Suren Gabrielyan
03de74a728 mdns: Fix of crash when wifi interface get deleted and mdns receives the packets
Closes https://github.com/espressif/esp-idf/issues/6973
2021-06-02 13:43:54 +00:00
Suren Gabrielyan
53c18a85db Docs: Added README.md for lwip fuzzer tests
Closes IDFCI-540
2021-05-18 17:52:07 +04:00
David Cermak
5cce919cbe mdns: Fixed the ip header TTL to be correctly set to 255
Defined in https://tools.ietf.org/html/rfc6762#section-11: All Multicast DNS responses (including responses sent via unicast)
   SHOULD be sent with IP TTL set to 255
2021-04-12 13:24:19 +00:00
David Cermak
34049454df mdns: Fix parsing answers with questions when instance name not set
mdns resolver didn't correctly resolved queries when host name wasn't
assigned. Fixed by allowing processing also if some answer present
(non-strict mode)

Closes https://github.com/espressif/esp-idf/issues/6598
2021-04-12 13:24:19 +00:00
David Cermak
b649603a0d mdns: Fix the resolver to correctly parse it's own non-strict answers
The resolver was able to respond correctly, but would also resolve its
own queries and cause issues with BCT 1.5.2, specifically
* MULTIPLE QUESTIONS - DUPLICATE SUPPRESSION
* MULTIPLE QUESTIONS - DISTRIBUTED DUPLICATE SUPPRESSION
tests failed.
2021-04-12 13:24:19 +00:00
suren.gabrielyan
0eee31546d mdns: Add MDNS_STRICT_MODE config option
Strict mode was hardcoded in private header file, but it's useful for
users to enable/disable it depending on the mdns library they are using.
e.g. Avahi might not resolve the non-strict answers.
2021-04-12 13:24:19 +00:00
Renz Bagaporo
39cf818838 freertos: common config header 2021-03-22 12:19:03 +08:00
suren.gabrielyan
55716945a9 mdns: Removed freeRTOS dependancies from fuzzer tests 2021-03-11 08:57:36 +00:00
suren.gabrielyan
9f8d2b944d mDNS: Updated APIs description and shows the warning when hostname contains domain name during the query
Closes https://github.com/espressif/esp-idf/issues/6590
2021-03-10 13:38:13 +00:00
yuanjm
da58235a0e components: Use CONFIG_LWIP_IPV6 to strip IPv6 function in components 2021-02-23 18:26:03 +08:00
suren.gabrielyan
2b9d2c06f5 mdns: add bound check when setting interface as duplicate
Closes IDF-2787

Partially addresses https://github.com/espressif/esp-idf/issues/6440
2021-02-15 06:43:51 +00:00
suren.gabrielyan
be0ae1ebbb mDNS: Fix of text length calculation when detecting a collision 2021-01-18 12:54:27 +00:00
Angus Gratton
9769be3fde Merge branch 'bugfix/fix_sign_compare' into 'master'
global: fix sign-compare warnings for system level components

See merge request espressif/esp-idf!11252
2021-01-13 12:45:05 +08:00
David Čermák
76f6dd6214 lwip: Moved default SNTP API to esp_sntp.h
and make sntp.h in port folders of lwip component obsoleted
2021-01-13 10:28:34 +08:00
morris
753a929525 global: fix sign-compare warnings 2021-01-12 14:05:08 +08:00
David Cermak
0693e172de mdns: Allow resolve its own non-strict answers
the mDNS responder should not repeat questions when replying, however resolvers
must ignore these questions field if they are present. esp-idf mDNS
library does include questions in answering packets (thus not strictly
following the RFC6762) so the resolver did not correctly resolved
another instance host name.

Closes https://github.com/espressif/esp-idf/issues/6190
2020-12-29 13:18:00 +00:00
suren.gabrielyan
f33772c960 mDNS: Fix of collision detection during txt length calculation
Closes https://github.com/espressif/esp-idf/issues/6114
2020-12-18 15:38:30 +00:00
Angus Gratton
5228d9f9ce esp32c3: Apply one-liner/small changes for ESP32-C3 2020-12-01 10:58:50 +11:00
morris
b7ecccd901 test: fix several test build error 2020-11-16 13:30:49 +08:00
Angus Gratton
87e13baaf1 freertos: Add RISC-V port
Changes come from internal branch commit a6723fc
2020-11-13 07:49:11 +11:00
David Cermak
7ac97616c1 mdns: Fix wrong mdns source address if lwIP IPv6 zones disabled
The struct definition of ip6_addr_t in lwip and esp_ip6_addr_t
differs since zone could be possibly disabled in lwip. Using memcpy to copy the
address will cause wrong source address. Copy the entries manually
instead.

Merges https://github.com/espressif/esp-idf/pull/6055
2020-11-11 11:56:44 +00:00
Angus Gratton
66fb5a29bb Whitespace: Automated whitespace fixes (large commit)
Apply the pre-commit hook whitespace fixes to all files in the repo.

(Line endings, blank lines at end of file, trailing whitespace)
2020-11-11 07:36:35 +00:00
Angus Gratton
98a0cc783f test_compile_fuzzers: Fix include paths for host build
Regression in 988be69466, need to add
esp_hw_support component include dir here.
2020-11-05 16:30:07 +11:00
Anton Maklakov
b5b2738644 Merge branch 'test/ci_fuzzer_precheck' into 'master'
CI: Add a test to pre-check fuzzer tests compilation before weekly run

See merge request espressif/esp-idf!10332
2020-11-04 12:22:53 +08:00
Renz Bagaporo
79887fdc6c soc: descriptive part occupy whole component 2020-10-28 07:21:29 +08:00
suren.gabrielyan
637f5c0a68 CI: Add a test to pre-check fuzzer tests compilation before weekly run 2020-10-20 13:57:00 +00:00
Mahavir Jain
20af94ff53 Coredump config option rename throughout IDF 2020-09-30 20:22:27 +05:30
suren.gabrielyan
a43c06a592 mdns, dns, dhcp, dhcps: update fuzzer test to work in CI
Closes: IDF-1861 and IDF-1990
2020-09-10 18:17:30 +00:00
Ivan Grokhotkov
b6467257b9 Merge branch 'feature/cmock_component' into 'master'
cmock as component replacing unity

See merge request espressif/esp-idf!9859
2020-09-10 16:06:20 +08:00
David Cermak
bcfa36db8f mdns: Support queries in responses in mDNS non-strict mode
By default adds original queries to responses in order to be resolved by some resolvers, such as lwIP mdns library. This functionality however is discouraged by the RFC6762, so it could be disabled in menuconfig if MDNS_STRICT_MODE configured

Closes https://github.com/espressif/esp-idf/issues/5521
2020-09-02 11:12:08 +02:00
David Cermak
f62e321d87 mdns: Fix include query ID in reponses
Closes https://github.com/espressif/esp-idf/issues/5574
2020-09-02 11:12:08 +02:00
Jakob Hasse
20c068ef3b cmock: added cmock as component
* changing dependencies from unity->cmock
* added component.mk and Makefile.projbuild
* ignore test dir in gen_esp_err_to_name.py
* added some brief introduction of CMock in IDF
2020-09-02 16:38:37 +08:00
Axel Lin
cf7e48c779 mdns: Allow config mDNS task stack size
Signed-off-by: Axel Lin <axel.lin@gmail.com>

Merges https://github.com/espressif/esp-idf/pull/5216
2020-05-07 21:49:02 +02:00
Axel Lin
f4a4549a34 mdns: Remove mbedtls dependency
mdns does not use mbedtls, so remove mbedtls dependency.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
2020-04-26 12:07:28 +08:00
David Cermak
ab8cab1c55 mdns: limit the GOT_IP6_EVENT to only known network interfaces 2020-03-05 18:46:48 +00:00
Konstantin Kondrashov
739eb05bb9 esp32: add implementation of esp_timer based on TG0 LAC timer
Closes: IDF-979
2020-02-06 14:00:18 +08:00
David Cermak
ecca39e19f mdns: fixed typos in the variable names and the comments 2020-01-09 12:50:13 +00:00
Angus Gratton
f0680b99b3 Merge branch 'bugfix/mdns_netif_local' into 'master'
mdns: fix preset of esp_netif ptr for local interfaces

Closes WIFI-1538

See merge request espressif/esp-idf!7009
2019-12-20 12:53:50 +08:00
David Cermak
eaa2f12d67 mdns: fixed crash on event during deinit
mdns library deinitialization destroys internal structures including action queue. if an event (e.g. network update) received
after some essential stucture is destoyed, an unexpected behavour might be introduced (e.g. crash of adding the event notification
to the action queue which was already destroyed

Closes WIFI-1485
2019-12-17 18:18:22 +00:00
David Cermak
09e36f9f33 mdns: fix preset of esp_netif ptr for local interfaces
mdns module store local copy of esp_netif for common interfaces,
but it was correctly initialized only when interface started.
If the event were missed (e.g. mdns_init after interface start)
the local copy wouldn't be initialized. Fixed by restoring the local
copy.

Closes WIFI-1538
2019-12-16 15:39:23 +01:00
David Cermak
de17a1487f mdns: respond to discovery with the proper pseudo name _services._dns-sd._udp
Closes https://github.com/espressif/esp-idf/issues/4369
Closes IDFGH-2219
2019-12-04 12:57:09 +00:00
David Cermak
d9433ef692 mdns: fixed forgotten merge conflicts in debug code 2019-11-22 10:31:06 +01:00
Ivan Grokhotkov
5884b80908 mdns: add missing include of esp_task.h 2019-11-14 18:02:26 +01:00
Ivan Grokhotkov
503c37e013 Merge branch 'bugfix/mdns_configure_task_params' into 'master'
mdns: add configuration values for task priority, affinity and internal service timeouts

See merge request espressif/esp-idf!6580
2019-11-14 21:30:50 +08:00
David Cermak
7f5cda1b82 tcpip_adapter: updated tcpip_adapter compatablity layer to include all
public API and keep 100% backward compatibility
update build of tcpip adapter when ethernet disabled
2019-11-13 12:36:25 +01:00
David Cermak
19e24fe61e mdns: update mdns to use esp-netif for mdns supported services such as STA, AP, ETH
removes also include dependency on lwip to use esp_netif defined address fields and structures
2019-11-13 12:36:25 +01:00
David Cermak
ffe043b1a8 esp_netif: Introduction of esp-netif component as a replacement of tcpip_adpter
- provides object oriented access to network intefaces
- not limited to default netifs
- more generic abstraction to network input output functions
- event handler registration removed from component responsibility
- backward compatibility layer for legacy tcpip_apapter APIs

Closes IDF-39
2019-11-13 12:36:25 +01:00
David Cermak
ec9f245dd3 examples: removed ip4addr_ntoa and used prefered IP2STR for displaying IP addresses 2019-11-13 12:36:25 +01:00
David Cermak
c6f38f04f8 mdns: add configuration values for task priority, affinity and internal service timeouts
closes https://github.com/espressif/esp-idf/issues/4217
2019-11-08 16:29:40 +01:00
Angus Gratton
055cc251b7 Merge branch 'feature/esp32s2beta_merge' into 'master'
esp32s2beta: Merge support to master

Closes IDF-513, IDF-756, IDF-758, IDF-999, IDF-753, IDF-749, IDF-754, IDF-840, and IDF-755

See merge request espressif/esp-idf!6100
2019-10-29 13:02:01 +08:00
Marius Vikhammer
3d1170031b mdns: fix crash for hostname queries
Receiving TXT, PTR, SDPTR and SRV record type queries would crash the application if the hostname
 was used as instance name.

Closes https://github.com/espressif/esp-idf/issues/4224
2019-10-25 03:56:38 +00:00
Angus Gratton
8675a818f9 Merge branch 'master' into feature/esp32s2beta_merge 2019-10-22 13:51:49 +11:00
David Cermak
7f410a0bcb mdns: fix possible race condition when checking DHCP status on WIFI_EVENT_STA_CONNECTED event.
tcpip_adapter_dhcpc_get_status() returns the actual internal value of dhcp client without any locking or TCP/IP stack context call, so when CONNECTED event fired with default settings it started DHCP client in TCP/IP stack context and at the same time mdns event handler checking actual DHCP state, which could still be INIT (not STARTED). Purpose of this check is to enable PCB if DHCP was stopped before setting network interface up (typically static IP settings), so the solutin is to check against TCPIP_ADAPTER_DHCP_STOPPED state
2019-10-15 07:07:00 +00:00
Angus Gratton
496ede9bcd Merge branch 'master' into feature/esp32s2beta_merge 2019-10-15 14:59:27 +11:00
Ivan Grokhotkov
569ad7545c esp_event, mdns: fixes for CONFIG_ETH_ENABLED=n 2019-10-03 10:52:53 +02:00
David Cermak
e5e31c5d01 mdns: use constant size of AAAA answer in mdns packets instead of deriving from lwip struct size, since the struct could contain also zones
closes WIFI-771
2019-09-24 12:12:58 +02:00
Angus Gratton
438d513a95 Merge branch 'master' into feature/esp32s2beta_merge 2019-09-16 16:18:48 +10:00
liu zhifu
003a9872b7 esp_wifi: wifi support new event mechanism
1. WiFi support new event mechanism
2. Update examples to use new event mechanism
2019-08-20 09:39:51 +00:00
Angus Gratton
6990a7cd54 Merge branch 'master' into feature/esp32s2beta_update 2019-08-19 15:03:43 +10:00
David Cermak
a001998d52 mdns: fix missing bye packet if services removed with mdns_service_remove_all() or mdns_free()
Closes https://github.com/espressif/esp-idf/issues/3660
2019-08-14 05:54:54 +00:00
Angus Gratton
04ae56806c Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 15:26:58 +10:00
Angus Gratton
24d26fccde Merge branch 'master' into feature/esp32s2beta_update 2019-08-08 13:44:24 +10:00
Michael Zimmermann
c2764f6fe8 mdns: mdns_service_remove_all doesn't take an argument
Merges https://github.com/espressif/esp-idf/pull/2937
2019-08-01 16:28:56 +07:00
Anton Maklakov
afbaf74007 tools: Mass fixing of empty prototypes (for -Wstrict-prototypes) 2019-08-01 16:28:56 +07:00
Angus Gratton
1b6010bedf Merge branch 'bugfix/mdns_fix_discard_packet_on_invalid_name' into 'master'
mdns: fix ignoring mdns packet if contained an invalid name entries in question field

See merge request espressif/esp-idf!5307
2019-07-27 17:25:25 +08:00
suda-morris
90c4827bd2 add esp_eth component 2019-06-26 10:19:23 +08:00
Renz Christian Bagaporo
9eccd7c082 components: use new component registration api 2019-06-21 19:53:29 +08:00
Angus Gratton
8aa6fb241d Merge branch 'bugfix/malloc_warnings_mdns' into 'master'
mdns: fix static analysis warnings

See merge request idf/esp-idf!5143
2019-06-21 13:10:06 +08:00
David Cermak
4bd4c7caf3 mdns: fix ignoring mdns packet with some invalid name entries in question field
In case of invalid name entry, only this entry is invalidated and parsing continues as other query entries could contain questions to be responded to
2019-06-20 14:25:12 +02:00