Supporting IPv6-only Networks

I do not use CURL myself separately.
A quick search in the project showed that CURL.H is included in HttpClient.cpp which is in the network/HttpClient folder.

I am using v3.11

@dbest10 in v3.11 HttpClient.cpp doesn’t include curl.h either. You can check cocos/cocos2d.cpp to check the version.

We using version 3.12 and Apple rejecting our apps and they keep sending us this message

*> 2. - 1 PERFORMANCE: APP COMPLETENESS

Performance - 2.1
We were unable to review your app as it crashed on launch. We have attached detailed crash logs to help troubleshoot this issue.
Next Steps
Please revise your app and test it on a device while connected to an IPv6 network (all apps must support IPv6) to ensure it will launch without crashing.*

The apps have already updated with 7.50 curl libraries . We use HttpClient to request web services . Any suggestions please?

@bhonzo it seems your app crashed on launch. Does it caused by IPV6? You can test it in IPV6 environments to have a test yourself.

But it still includes in HttpClient.cpp in v3.12

Yep, sorry for my careless. But it is not used on iOS.

Hello,

I got around my error using this work around.

ifdef LP64
define CURL_SIZEOF_LONG 8
else
define CURL_SIZEOF_LONG 4
endif

however when I test it on ipv6 only network, it still doesn’t work.

Where do you define this?

@zhangxm - so there is curl.h even though not used.
We should think of a fix soon, as it is impacting most of the iOS apps.

at curlbuild.h

I don’t know why it has compiling issues. It passes jenkins building in cocos2d-x.

@x10ng could you share your test case? Now iOS doesn’t use CURL.

@zhangxm 我在用cocos2d-js v3.10,昨天更新了补丁v104的curl和websocket覆盖了项目的。
在IPv6环境下测试网络是OK的 提交apple store试试,但是今天发现一个问题,有一个消息偶尔会丢。。
是websocket的问题吗?

@yaoqiang_cc please use english, then all developers can discuss it. Thanks.

@x10ng i update curl, adding missed .a and handle different header files for 32-bit and 64-bit. Will you please have a try? Thanks.

I’m using cocos2d-js v3.10, my app is a card game, I have updated patch use v3-deps-104, and covers the curl and websocket folder to my project. The good news is the network is OK in the IPv6 environment ,everything is OK, so I submitted to the Apple store, but today a problem is found, a message will occasionally throw (the game over event message)… I checked the server side, no question be found… and I switched the app to last version(the curl and websocket lib is used cocos2d-js v3.10), the message will be arrived 100%, Is the new websocket question?

@yaoqiang_cc good news to hear that the network works. What’s the message? Could you please describe it in more detail? Thanks.

Does this mean that we need to update the 3rd party library and reupload?

@dbest10 Yep, just update CURL.

I covers the curl and websockets library the 3rd party library v107 https://github.com/cocos2d/cocos2d-x-3rd-party-libs-bin/releases/tag/v3-deps-107, and the apple store approved.
But, a new issues did produce, same as https://github.com/cocos2d/cocos2d-x/issues/15742.
maybe the reason is libwebsockets, in v3-deps-107, the libwebsockets did upgrade to version 1.6.0 or later.
the libwebsocket library issue can be found here: https://github.com/warmcat/libwebsockets/issues/593

today, I did change this way:
comment the https://github.com/cocos2d/cocos2d-x/blob/v3/cocos/network/WebSocket.cpp line598
// info.extensions = exts;

the message was recieved OK(100%).

But I don’t know is this way will get other issue or the performance hit for comment this extensions?
maybe there be the best way…

@zhangmx, to support IPv6, just need replace the curl library? the websocket library can ignore? means that the websocket library can still use the coocs2d-x v3.10 include?