Closed
Description
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: [ESP-12|ESP-01|ESP-07|ESP8285 device|other]
- Core Version: [l1bb5ccf71e0e028a593238b68513aac553a00886]
- Development Env: Platformio
- Operating System: Windows / WSL
Settings in IDE
- Module: Wemos D1 mini r2
- Flash Mode: default
- Flash Size: 4MB
- lwip Variant: ** v2 Lower Memory (default) **
- Reset Method: [ck|nodemcu]
- Flash Frequency: [40Mhz]
- CPU Frequency: [80Mhz|160MHz]
- Upload Using: [OTA|SERIAL]
- Upload Speed: [115200|other] (serial upload only)
Problem Description
- Include "lwip/tcp.h" after ESP8266WiFi.h
- Observe the redeclaration issue below
Inspecting the source of WiFiClient, I found this entry:
This guards these enum values:
Arduino/libraries/ESP8266WiFi/src/include/wl_definitions.h
Lines 71 to 85 in 1bb5ccf
Which is a possible workaround for this issue.
git grep wl_tcp_state
does not show anything but this enum wl_tcp_state
line :/
MCVE Sketch
Consider, I want to use lwip active pcb list in the app
(following is just a means to try to access tcp_pcb struct members, as we only forward-declare it by default as struct tcp_pcb;
in esp8266wifi user-side header, so I must add tcp.h)
#include <Arduino.h>
#include <ESP8266WiFi.h>
extern "C" {
#include <lwip/init.h>
#include <lwip/opt.h>
#include <lwip/tcp.h>
#include <lwip/inet.h>
}
extern struct tcp_pcb *tcp_active_pcbs;
void setup() {}
void loop() {
char remote_ip[32] = {0};
char local_ip[32] = {0};
for (tcp_pcb* pcb = tcp_active_pcbs; pcb != NULL; pcb = pcb->next) {
inet_ntoa_r((pcb->local_ip), local_ip, sizeof(local_ip));
inet_ntoa_r((pcb->remote_ip), remote_ip, sizeof(remote_ip));
Serial.printf("%s<->%s\n", remote_ip, local_ip);
}
}
Debug Messages
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:57:17: error: redeclaration of 'CLOSED'
CLOSED = 0,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:73:3: note: previous declaration 'wl_tcp_state CLOSED'
CLOSED = 0,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:58:17: error: redeclaration of 'LISTEN'
LISTEN = 1,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:74:3: note: previous declaration 'wl_tcp_state LISTEN'
LISTEN = 1,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:59:17: error: redeclaration of 'SYN_SENT'
SYN_SENT = 2,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:75:3: note: previous declaration 'wl_tcp_state SYN_SENT'
SYN_SENT = 2,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:60:17: error: redeclaration of 'SYN_RCVD'
SYN_RCVD = 3,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:76:3: note: previous declaration 'wl_tcp_state SYN_RCVD'
SYN_RCVD = 3,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:61:17: error: redeclaration of 'ESTABLISHED'
ESTABLISHED = 4,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:77:3: note: previous declaration 'wl_tcp_state ESTABLISHED'
ESTABLISHED = 4,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:62:17: error: redeclaration of 'FIN_WAIT_1'
FIN_WAIT_1 = 5,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:78:3: note: previous declaration 'wl_tcp_state FIN_WAIT_1'
FIN_WAIT_1 = 5,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:63:17: error: redeclaration of 'FIN_WAIT_2'
FIN_WAIT_2 = 6,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:79:3: note: previous declaration 'wl_tcp_state FIN_WAIT_2'
FIN_WAIT_2 = 6,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:64:17: error: redeclaration of 'CLOSE_WAIT'
CLOSE_WAIT = 7,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:80:3: note: previous declaration 'wl_tcp_state CLOSE_WAIT'
CLOSE_WAIT = 7,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:65:17: error: redeclaration of 'CLOSING'
CLOSING = 8,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:81:3: note: previous declaration 'wl_tcp_state CLOSING'
CLOSING = 8,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:66:17: error: redeclaration of 'LAST_ACK'
LAST_ACK = 9,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:82:3: note: previous declaration 'wl_tcp_state LAST_ACK'
LAST_ACK = 9,
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcp.h:45:0,
from src/main.cpp:7:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/tools/sdk/lwip2/include/lwip/tcpbase.h:67:17: error: redeclaration of 'TIME_WAIT'
TIME_WAIT = 10
^
In file included from /home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/ESP8266WiFi.h:28:0,
from src/main.cpp:2:
/home/builder/.platformio/packages/framework-arduinoespressif8266@src-31d658a59f41540201fc3726a1394910/libraries/ESP8266WiFi/src/include/wl_definitions.h:83:3: note: previous declaration 'wl_tcp_state TIME_WAIT'
TIME_WAIT = 10
^
*** [.pio/build/d1_mini/src/main.cpp.o] Error 1
========================== [FAILED] Took 2.80 seconds ==========================
Metadata
Metadata
Assignees
Labels
No labels