#
2625360b |
| 25-Aug-2024 |
Viktor Szakats |
configure: fix WinIDN builds targeting old Windows 1. GHA/windows: enable WinIDN in Linux cross-builds. (to reveal the issue in CI.) 2. fix compiler warning when building wit
configure: fix WinIDN builds targeting old Windows 1. GHA/windows: enable WinIDN in Linux cross-builds. (to reveal the issue in CI.) 2. fix compiler warning when building with mingw-w64 supporting WinIDN, while targeting pre-Vista Windows, with a `WINVER` set to target Vista or newer. (Such was Ubuntu's mingw-w64 with the classic-mingw-specific trick in point 3 of this PR.) ``` ../../lib/idn.c:154:23: error: redundant redeclaration of ‘IdnToAscii’ [-Werror=redundant-decls] 154 | WINBASEAPI int WINAPI IdnToAscii(DWORD dwFlags, | ^~~~~~~~~~ In file included from /usr/share/mingw-w64/include/windows.h:73, from /usr/share/mingw-w64/include/winsock2.h:23, from ../../lib/setup-win32.h:91, from ../../lib/curl_setup.h:308, from ../../lib/idn.c:29: /usr/share/mingw-w64/include/winnls.h:1075:30: note: previous declaration of ‘IdnToAscii’ was here 1075 | WINNORMALIZEAPI int WINAPI IdnToAscii (DWORD dwFlags, LPCWSTR lpUnicodeCharStr, int cchUnicodeChar, LPWSTR lpASCIICharStr, int cchASCIIChar); | ^~~~~~~~~~ [...same for IdnToUnicode...] ``` Ref: https://github.com/curl/curl/actions/runs/10542832783/job/29210098553#step:7:89 3. drop `WINVER` override for classic-mingw. curl no longer supports building with classic-mingw. Reverts 37f1c21cb9c809ec870803fc40e1ed2afd9534ac #7581 4. sync `if IdnToUnicode can be linked` detection snippet with the live code in `lib/idn.c`. It fixes detection for the scenario in point 2. 5. delete unused `WINIDN_DIR` variable. Bug: https://github.com/curl/curl/pull/12606#issuecomment-1885381038 Previous abandoned attempt: #12684 Reviewed-by: Jay Satiro Closes #14680
show more ...
|
#
588a6e33 |
| 07-Aug-2024 |
Bo Anderson |
idn: more strictly check AppleIDN errors UIDNA API returns two error values but we were only checking one. Checking both better aligns the behaviour with that of libidn2. Closes
idn: more strictly check AppleIDN errors UIDNA API returns two error values but we were only checking one. Checking both better aligns the behaviour with that of libidn2. Closes #14431
show more ...
|
#
a3568783 |
| 07-Aug-2024 |
Bo Anderson |
idn: support non-UTF-8 input under AppleIDN This aligns the behaviour with libidn2 and the curl documentation. Closes #14431
|
#
c3c7992a |
| 16-Jul-2024 |
Daniel Stenberg |
idn: make macidn fail before trying conversion if name too long - double the max name length to 512 bytes Closes #14215
|
#
686d54ba |
| 17-Jul-2024 |
z2_ <88509734+z2-2z@users.noreply.github.com> |
idn: tweak buffer use when converting with macidn Closes #14215
|
#
fd025086 |
| 13-Jul-2024 |
Christian Schmitz |
IDN: fix ß with AppleIDN Add flags UIDNA_NONTRANSITIONAL_TO_ASCII and UIDNA_NONTRANSITIONAL_TO_UNICODE to encode ß correctly. It fixes test 165. Reported-by: Viktor Sza
IDN: fix ß with AppleIDN Add flags UIDNA_NONTRANSITIONAL_TO_ASCII and UIDNA_NONTRANSITIONAL_TO_UNICODE to encode ß correctly. It fixes test 165. Reported-by: Viktor Szakats Bug: #14176 Closes #14179
show more ...
|
#
c074ba64 |
| 01-Jul-2024 |
Daniel Stenberg |
code: language cleanup in comments Based on the standards and guidelines we use for our documentation. - expand contractions (they're => they are etc) - host name = > hostname
code: language cleanup in comments Based on the standards and guidelines we use for our documentation. - expand contractions (they're => they are etc) - host name = > hostname - file name => filename - user name = username - man page => manpage - run-time => runtime - set-up => setup - back-end => backend - a HTTP => an HTTP - Two spaces after a period => one space after period Closes #14073
show more ...
|
#
add22fee |
| 31-Mar-2024 |
Christian Schmitz |
idn: add native AppleIDN (icucore) support for macOS/iOS I implemented the IDN functions for macOS and iOS using Unicode libraries coming with macOS and iOS. Builds and runs her
idn: add native AppleIDN (icucore) support for macOS/iOS I implemented the IDN functions for macOS and iOS using Unicode libraries coming with macOS and iOS. Builds and runs here on macOS 14.2.1. Also verified to load and run on older macOS version 10.13. Build requires macOS SDK 13 or equivalent. Set `-DUSE_APPLE_IDN=ON` CMake option to enable it. With autotools and other build tools, set these manual options: ``` CPPFLAGS=-DUSE_APPLE_IDN LIBS=-licucore ``` Completes TODO 1.6. TODO: add autotools option and feature-detection. Refs: #5330 #5371 Co-authored-by: Viktor Szakats Closes #13246
show more ...
|
#
6a43d0d7 |
| 30-Mar-2024 |
Daniel Stenberg |
idn: make Curl_idnconvert_hostname() use Curl_idn_decode() In the name of less code duplication Closes #13236
|
#
e9a7d4a1 |
| 21-Nov-2023 |
Viktor Szakats |
windows: use built-in `_WIN32` macro to detect Windows Windows compilers define `_WIN32` automatically. Windows SDK headers or build env defines `WIN32`, or we have to take care of it. T
windows: use built-in `_WIN32` macro to detect Windows Windows compilers define `_WIN32` automatically. Windows SDK headers or build env defines `WIN32`, or we have to take care of it. The agreement seems to be that `_WIN32` is the preferred practice here. Make the source code rely on that to detect we're building for Windows. Public `curl.h` was using `WIN32`, `__WIN32__` and `CURL_WIN32` for Windows detection, next to the official `_WIN32`. After this patch it only uses `_WIN32` for this. Also, make it stop defining `CURL_WIN32`. There is a slight chance these break compatibility with Windows compilers that fail to define `_WIN32`. I'm not aware of any obsolete or modern compiler affected, but in case there is one, one possible solution is to define this macro manually. grepping for `WIN32` remains useful to discover Windows-specific code. Also: - extend `checksrc` to ensure we're not using `WIN32` anymore. - apply minor formatting here and there. - delete unnecessary checks for `!MSDOS` when `_WIN32` is present. Co-authored-by: Jay Satiro Reviewed-by: Daniel Stenberg Closes #12376
show more ...
|
#
021d04f2 |
| 29-Sep-2023 |
Jay Satiro |
idn: fix WinIDN null ptr deref on bad host - Return CURLE_URL_MALFORMAT if IDN hostname cannot be converted from UTF-8 to UTF-16. Prior to this change a failed conversion erro
idn: fix WinIDN null ptr deref on bad host - Return CURLE_URL_MALFORMAT if IDN hostname cannot be converted from UTF-8 to UTF-16. Prior to this change a failed conversion erroneously returned CURLE_OK which meant 'decoded' pointer (what would normally point to the punycode) would not be written to, remain NULL and be dereferenced causing an access violation. Closes https://github.com/curl/curl/pull/11983
show more ...
|
#
7cf269dd |
| 20-Sep-2023 |
Daniel Stenberg |
idn: if idn2_check_version returns NULL, return error ... this avoids a NULL dereference for this unusual case. Reported-by: s0urc3_ on hackerone Closes #11898
|
#
a2810570 |
| 15-Aug-2023 |
Daniel Stenberg |
urlapi: return CURLUE_BAD_HOSTNAME if puny2idn encoding fails And document it. Only return out of memory when it actually is a memory problem. Pointed-out-by: Jacob Mealey C
urlapi: return CURLUE_BAD_HOSTNAME if puny2idn encoding fails And document it. Only return out of memory when it actually is a memory problem. Pointed-out-by: Jacob Mealey Closes #11674
show more ...
|
#
c350069f |
| 11-Aug-2023 |
Daniel Stenberg |
urlapi: CURLU_PUNY2IDN - convert from punycode to IDN name Asssisted-by: Jay Satiro Closes #11655
|
#
cf3e6ce9 |
| 24-Feb-2023 |
Daniel Stenberg |
idn: return error if the conversion ends up with a blank host Some IDN sequences are converted into "" (nothing), which can make this function end up with a zero length host name and we
idn: return error if the conversion ends up with a blank host Some IDN sequences are converted into "" (nothing), which can make this function end up with a zero length host name and we cannot consider that a valid host to continue with. Reported-by: Maciej Domanski Closes #10617
show more ...
|
#
2bc1d775 |
| 02-Jan-2023 |
Daniel Stenberg |
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - save
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - saves us from pointless churn - git keeps history for us - the year range is kept in COPYING checksrc is updated to allow non-year using copyright statements Closes #10205
show more ...
|
#
901392cb |
| 26-Dec-2022 |
Daniel Stenberg |
urlapi: add CURLU_PUNYCODE Allows curl_url_get() get the punycode version of host names for the host name and URL parts. Extend test 1560 to verify. Closes #10109
|
#
cc0aaf6e |
| 14-Dec-2022 |
Daniel Stenberg |
idn: rename the files to idn.[ch] and hold all IDN functions Closes #10094
|