apple: allow for updated mbedtls library

This commit is contained in:
Eric Warmenhoven committed 2025-08-28 16:01:47 -04:00
1 parent 699b808b4c
commit a1d830f7c4
4 files changed
+59 -20

No files matched your search

+1 -1
View File
@@ -1637,11 +1637,11 @@ SSL
#include "../deps/mbedtls/ssl_srv.c"
#include "../deps/mbedtls/ssl_ticket.c"
#include "../deps/mbedtls/ssl_tls.c"
#endif
#include "../libretro-common/net/net_socket_ssl_mbed.c"
#endif
#endif
#endif
/*============================================================
PLAYLIST NAME SANITIZATION
+2 -2
View File
@@ -838,7 +838,7 @@ struct http_t *net_http_new(struct http_connection_t *conn)
state->request.port = conn->port;
state->response.status = -1;
state->response.buflen = 16 * 1024;
state->response.buflen = 64 * 1024; /* Start with larger buffer to reduce reallocations */
state->response.data = (char*)malloc(state->response.buflen);
state->response.headers = string_list_new();
@@ -1391,7 +1391,7 @@ static bool net_http_redirect(struct http_t *state, const char *location)
state->request_sent = false;
state->response.part = P_HEADER_TOP;
state->response.status = -1;
state->response.buflen = 16 * 1024;
state->response.buflen = 64 * 1024; /* Start with larger buffer to reduce reallocations */
state->response.data = (char*)realloc(state->response.data, state->response.buflen);
state->response.pos = 0;
state->response.len = 0;
+49 -14
View File
@@ -195,26 +195,61 @@ ssize_t ssl_socket_receive_all_nonblocking(void *state_data,
{
ssize_t ret;
struct ssl_state *state = (struct ssl_state*)state_data;
const uint8_t *data = (const uint8_t*)data_;
/* mbedtls_ssl_read wants non-const data but it only reads it, so this cast is safe */
unsigned char *data = (unsigned char*)data_;
size_t total_read = 0;
int max_iterations = 8; /* Limit iterations to prevent infinite loops */
mbedtls_net_set_nonblock(&state->net_ctx);
if ((ret = mbedtls_ssl_read(&state->ctx, (unsigned char*)data, len)) > 0)
return ret;
if (ret == 0)
/* Keep reading while we get data without blocking, up to max iterations
* This allows us to read multiple TLS records (16KB each) in one call */
while (len > 0 && max_iterations-- > 0)
{
/* Socket closed */
*err = true;
return -1;
ret = mbedtls_ssl_read(&state->ctx, data, len);
if (ret > 0)
{
total_read += ret;
data += ret;
len -= ret;
/* If we read less than requested, there's likely no more data available
* But check if there's buffered data we can read without blocking */
if ((size_t)ret < len)
{
size_t bytes_avail = mbedtls_ssl_get_bytes_avail(&state->ctx);
if (bytes_avail == 0)
break; /* No more buffered data, don't risk blocking */
}
/* Continue looping to read more records */
}
else if (ret == 0)
{
/* Socket closed */
if (total_read > 0)
return total_read; /* Return what we got before close */
*err = true;
return -1;
}
else if (isagain((int)ret) || ret == MBEDTLS_ERR_SSL_WANT_READ)
{
/* Would block - return what we have so far */
if (total_read > 0)
return total_read;
return 0; /* No data available yet */
}
else
{
/* Error */
if (total_read > 0)
return total_read; /* Return what we got before error */
*err = true;
return -1;
}
}
if (isagain((int)ret) || ret == MBEDTLS_ERR_SSL_WANT_READ)
return 0;
*err = true;
return -1;
return total_read;
}
int ssl_socket_receive_all_blocking(void *state_data,
+7 -3
View File
@@ -12,7 +12,9 @@ OTHER_CFLAGS = $(inherited) -DHAVE_AL
OTHER_CFLAGS = $(inherited) -DHAVE_AUDIOMIXER
OTHER_CFLAGS = $(inherited) -DHAVE_BSV_MOVIE
OTHER_CFLAGS = $(inherited) -DHAVE_BUILTINGLSLANG
OTHER_CFLAGS = $(inherited) -DHAVE_BUILTINMBEDTLS
// Define HAVE_BUILTINMBEDTLS by default (overridden by deps.xcconfig when present)
MBEDTLS_BUILTIN_FLAG = -DHAVE_BUILTINMBEDTLS
OTHER_CFLAGS = $(inherited) $(MBEDTLS_BUILTIN_FLAG)
OTHER_CFLAGS = $(inherited) -DHAVE_CC_RESAMPLER
OTHER_CFLAGS = $(inherited) -DHAVE_CHD
OTHER_CFLAGS = $(inherited) -DHAVE_CHEATS
@@ -127,10 +129,12 @@ OTHER_CFLAGS_IOS_TVOS_SHARE = $(inherited) -DIOS
OTHER_CFLAGS_IOS_TVOS_SHARE = $(inherited) -DPACKAGE_VERSION=\"$(MARKETING_VERSION)\"
OTHER_CFLAGS_IOS_TVOS_SHARE = $(inherited) -DRARCH_MOBILE
OTHER_CFLAGS_SIMULATORS = $(inherited) -DZSTD_DISABLE_ASM
OTHER_CFLAGS[sdk=iphoneos*] = $(inherited) $(OTHER_CFLAGS_IOS_TVOS_SHARE)
OTHER_CFLAGS[sdk=iphonesimulator*] = $(inherited) $(OTHER_CFLAGS_IOS_TVOS_SHARE)
OTHER_CFLAGS[sdk=iphonesimulator*] = $(inherited) $(OTHER_CFLAGS_IOS_TVOS_SHARE) $(OTHER_CFLAGS_SIMULATORS)
OTHER_CFLAGS[sdk=appletvos*] = $(inherited) $(OTHER_CFLAGS_IOS_TVOS_SHARE)
OTHER_CFLAGS[sdk=appletvsimulator*] = $(inherited) $(OTHER_CFLAGS_IOS_TVOS_SHARE)
OTHER_CFLAGS[sdk=appletvsimulator*] = $(inherited) $(OTHER_CFLAGS_IOS_TVOS_SHARE) $(OTHER_CFLAGS_SIMULATORS)
OTHER_CFLAGS_IOS = $(inherited) -DHAVE_AVF
OTHER_CFLAGS_IOS = $(inherited) -DHAVE_COREMIDI