Skip to content

issues with IPv6 patch & IPAddress changes #5406

Closed
@d-a-v

Description

@d-a-v

Basic Infos

  • This issue complies with the issue POLICY doc.
  • I have read the documentation at readthedocs and the issue is not addressed there.
  • I have tested that the issue is present in current master branch (aka latest git).
  • I have searched the issue tracker for a similar issue.
  • If there is a stack dump, I have decoded it.
  • I have filled out all fields below.

Platform

  • Hardware: any
  • Core Version: latest git
  • Development Env: any
  • Operating System: any

Settings in IDE

  • Module: any
  • Flash Mode: any
  • Flash Size: any
  • lwip Variant: v2
  • Reset Method: any
  • Flash Frequency: any
  • CPU Frequency: any
  • Upload Using: any
  • Upload Speed: any

Problem Description

Track issues from IPv6 + IPAddress changes

ref: 5c4db3a#commitcomment-31519816
@reaper7

Identified issues are:

  • use of struct ip_addr which is espressif and not lwIP.
    This structure has been renamed to struct ipv4_addr within the SDK which is stuck to lwIP-v1.4.
    struct ip_addr_tis the real name of that structure, but in arduino IPAddress should always be used.
  • use of ipaddr->addr is stuck to IPv4. It could be changed to ip_2_ip4(ipaddr)->addr
    with (this is defined in newer IPAddress.h but is needed for older cores):
#ifndef ip_2_ip4
// emulate lwIP-v2's ip_2_ip4(x) for lwIP-v1
#define ip_2_ip4(x) (x)
#endif
  • more generally IPAddress(ipaddr) should be used anywhere, thus generic, simple and portable wrappers should be proposed for external libraries to keep compatibility with older cores, and IPv6 at the same time (IPv6 is costless when using IPAddress)
  • INADDR_NONE should be restored as it was (sorry for that, IPNoAddress was an intermediary change that I forgot to revert)

MCVE Sketch

TBD, using at least EspAsyncTCP library, thingspeak library

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions