«Safari не может открыть страницу, потому что он не может установить безопасное соединение с сервером». заметили следующие журналы во время сбоя: < /p>
Код: Выделить всё
[lwIP] +-------------------------------+
[lwIP] | 4 | 5 | 0x00 | 40 | (v, hl, tos, len)
[lwIP] +-------------------------------+
[lwIP] | 0 |010| 0 | (id, flags, offset)
[lwIP] +-------------------------------+
[lwIP] | 64 | 6 | 0x722d | (ttl, proto, chksum)
[lwIP] +-------------------------------+
[lwIP] | 100 | 64 | 0 | 1 | (src)
[lwIP] +-------------------------------+
[lwIP] | 100 | 96 | 0 | 2 | (dest)
[lwIP] +-------------------------------+
[lwIP] ip4_input: p->len 40 p->tot_len 40
***** [LWIP] to close connection called from tcp_connection_closed_from_c
[lwIP] tcp_close: closing in
[lwIP] State: ESTABLISHED
[lwIP] tcp_enqueue_flags: queueing 529185:529186 (0x1)
[lwIP] tcp_pcb_purge
[lwIP] tcp_pcb_purge: not all data sent
[lwIP] MEMP_NUM_TCP_PCB: 64
[lwIP] check_resources_simple check_resources_simple: TCP_PCB=1/64,
[lwIP] TCP_SEG: 0/211 (errors: 0)
[lwIP] PBUF_POOL: 0/128 (errors: 0)
[lwIP] Memory: used=0, max=261340, errors=150
[lwIP] TCP_PCB pool: used=1, max=12, errors=0
[lwIP] ip_input: iphdr->dest 0x2006064 netif->ip_addr 0x1006064 (0x64, 0x64, 0x2006000)
[lwIP] ip4_input: packet accepted on interface v0
[lwIP] ip4_input:
[lwIP] IP header:
[lwIP] +-------------------------------+
[lwIP] | 4 | 5 | 0x00 | 40 | (v, hl, tos, len)
[lwIP] +-------------------------------+
[lwIP] | 0 |010| 0 | (id, flags, offset)
[lwIP] +-------------------------------+
[lwIP] | 64 | 6 | 0x722d | (ttl, proto, chksum)
[lwIP] +-------------------------------+
[lwIP] | 100 | 64 | 0 | 1 | (src)
[lwIP] +-------------------------------+
[lwIP] | 100 | 96 | 0 | 2 | (dest)
[lwIP] +-------------------------------+
[lwIP] ip4_input: p->len 40 p->tot_len 40
***** [LWIP] to close connection called from tcp_connection_closed_from_c
[lwIP] tcp_close: closing in
[lwIP] State: ESTABLISHED
[lwIP] tcp_enqueue_flags: queueing 160285:160286 (0x1)
[lwIP] tcp_pcb_purge
[lwIP] tcp_pcb_purge: not all data sent
Код: Выделить всё
[lwIP] 📊 Before tcp_write:
[lwIP] Data length: 4096 bytes
[lwIP] Send buffer available: 1743 bytes
[lwIP] Send queue length: 44
[lwIP] MSS: 1460 bytes
[lwIP] ❌ Not enough send buffer: need 4096, have 1743
[lwIP] tcp_write failed: -1
< /code>
Кажется, что Lwip закрывает соединение до того, как все данные полностью будут отправлены, возможно, из -за ограничений памяти или буфера.#ifndef LWIP_LWIPOPTS_H
#define LWIP_LWIPOPTS_H
// No OS integration
#define NO_SYS 1
#define SYS_LIGHTWEIGHT_PROT 0
// Enable raw API, disable sockets/netconn
#define LWIP_RAW 1
#define LWIP_NETCONN 0
#define LWIP_SOCKET 0
// IPv4 only (unless you explicitly enable IPv6 support)
#define LWIP_IPV4 1
#define LWIP_IPV6 0
#define LWIP_HAVE_SLIPIF 0
#define LWIP_TIMERS 1
#define LWIP_TIMEVAL_PRIVATE 0 // So it uses system timeval
#define MEMP_NUM_TCP_PCB 64
// Memory alignment (iOS = 4 bytes)
#define MEM_ALIGNMENT 4
#define MEM_SIZE (256 * 1024) // bigger heap for larger buffers
// TCP configuration
#define LWIP_TCP 1
#define TCP_TTL 255
#define TCP_QUEUE_OOSEQ 1
#define TCP_MSS 1460
#define TCP_MAXRTX 6
#define TCP_SYNMAXRTX 4
#define MEMP_NUM_TCP_SEG (TCP_SND_QUEUELEN + 32)
#define TCP_SND_QUEUELEN (4 * TCP_SND_BUF / TCP_MSS) // recommended formula
#define TCP_SND_BUF 65535
#define TCP_WND 65535
// If you understand the memory tradeoffs and still want to suppress the warning:
// #define LWIP_DISABLE_TCP_SANITY_CHECKS 1
//#define MEMP_NUM_TCP_SEG (4 * TCP_SND_BUF / TCP_MSS)
// PBUF pool
#define PBUF_POOL_SIZE 128
#define PBUF_POOL_BUFSIZE (TCP_MSS + 40) // MSS + TCP/IP headers
// Network interface
#define LWIP_NETIF_STATUS_CALLBACK 1
#define LWIP_NETIF_LINK_CALLBACK 1
#define LWIP_NETIF_LOOPBACK 0
// IP options
#define IP_FORWARD 0
#define IP_REASSEMBLY 1
#define IP_FRAG 1
// ARP
#define LWIP_ARP 1
#define ARP_TABLE_SIZE 10
#define ARP_QUEUEING 1
// UDP (optional)
#define LWIP_UDP 1
#define LWIP_UDPLITE 0
#define UDP_TTL 255
// ICMP (optional for ping, etc.)
#define LWIP_ICMP 1
#define ICMP_TTL 255
// DHCP/DNS (disabled unless used)
#define LWIP_DHCP 0
#define LWIP_DNS 0
// Debugging
#define LWIP_DEBUG 1
#define IP_DEBUG LWIP_DBG_ON
#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
#define LWIP_STATS 1
#define MEMP_STATS 1 // ✅ ADDED: Enable memory pool stats
// Specific debug options
#define IP_DEBUG LWIP_DBG_ON
#define TCP_DEBUG LWIP_DBG_ON
#define TCP_OUTPUT_DEBUG LWIP_DBG_ON
#define MEMP_DEBUG LWIP_DBG_ON
#define LWIP_DBG_TYPES_ON LWIP_DBG_ON
// ✅ ADDED: Socket specific options
#define LWIP_SO_RCVTIMEO 1
#define LWIP_SO_SNDTIMEO 1
#define SO_REUSE 1
// ✅ ADDED: Connection management
#define TCP_LISTEN_BACKLOG 1
#define LWIP_TCP_KEEPALIVE 1
#endif /* LWIP_LWIPOPTS_H */
< /code>
Вопросы: < /strong> < /p>
[list]
[*] Кто-нибудь столкнулся с этой проблемой, где Safari бросает соединение в середине пути при использовании LWIP внутри провайдера пакетного туннеля?snd_buf
[/list]
Любые входы или предложения были бы очень полезными.>
Подробнее здесь: https://stackoverflow.com/questions/797 ... er-could-n