1. 19 Jan, 2024 6 commits
  2. 18 Jan, 2024 2 commits
  3. 17 Jan, 2024 2 commits
  4. 16 Jan, 2024 10 commits
  5. 15 Jan, 2024 2 commits
  6. 12 Jan, 2024 1 commit
  7. 08 Jan, 2024 6 commits
  8. 28 Dec, 2023 2 commits
  9. 20 Dec, 2023 6 commits
  10. 19 Dec, 2023 2 commits
  11. 18 Dec, 2023 1 commit
    • vortigont's avatar
      DNSServer refactoring, switch to AsyncUDP (#7482) · d9127101
      vortigont authored
      * DNSServer: switch to AsyncUDP instead of WiFiUDP
      
      AsyncUDP offers event driven approch for handling udp dns req's
      WiFiUDP hooks to loop() for packet processing and making useless malloc's each run
      
      * DNSServer code refactoring
      
      get rid of intermediate mem buffers and extra data copies,
      most of the data could be referenced or copied from the source packet
       - removed _buffer member
       - replaced DNSQuestion.QName from uint8_t[] to char*
      
      added sanity checks for mem bounds
      optimize label/packet length calculations
      other code cleanup
      
      * DNSServer drop dynamically allocated member structs
      
      DNSHeader and DNSQuestion structs could be created on stack
      no need to keep it as obj members
      
      * DNSServer: labels min length checks, simplified labels parser
      
      * DNSServer use default settings for catch-all setup
      
       - default constructor and start() method simply runs a catch-all DNS setup
       - avoid string comparison for domain reqs in catch-all mode
       - use IPaddress class for _resolvedIP (looking for IPv6 support in future)
      
      * CaptivePortal example refactored
      
       - use webserver instead of simple tcp setver
       - use redirects to allows CaptivePortal detection pop-ups in modern systems
      
      * DNSServer status getters added
      
      add isUp() method - returns 'true' if server is up and UDP socket is listening for UDP req's
      add isCaptive() method - returns 'true' if server runs in catch-all (captive portal mode)
      some doxygen comments added
      start() method now keeps existing IP address if any
      
      ---------
      Co-authored-by: default avatarLucas Saavedra Vaz <lucas.vaz@espressif.com>
      Co-authored-by: default avatarMe No Dev <me-no-dev@users.noreply.github.com>
      d9127101