lws_intptr_t
This commit is contained in:
parent
6a89c7e931
commit
7262e14dc1
16 changed files with 40 additions and 24 deletions
|
@ -517,6 +517,12 @@ set(LWS_HAVE_WORKING_VFORK LWS_HAVE_VFORK)
|
||||||
|
|
||||||
CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
|
CHECK_INCLUDE_FILES("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
|
||||||
|
|
||||||
|
CHECK_C_SOURCE_COMPILES("#include <stdint.h>
|
||||||
|
int main(void) {
|
||||||
|
intptr_t test = 1;
|
||||||
|
return 0;
|
||||||
|
}" LWS_HAS_INTPTR_T)
|
||||||
|
|
||||||
# These don't work Cross...
|
# These don't work Cross...
|
||||||
#CHECK_TYPE_SIZE(pid_t PID_T_SIZE)
|
#CHECK_TYPE_SIZE(pid_t PID_T_SIZE)
|
||||||
#CHECK_TYPE_SIZE(size_t SIZE_T_SIZE)
|
#CHECK_TYPE_SIZE(size_t SIZE_T_SIZE)
|
||||||
|
@ -1807,6 +1813,7 @@ message(" LWS_HAVE_LIBCAP = ${LWS_HAVE_LIBCAP}")
|
||||||
message(" LWS_HAVE_ATOLL = ${LWS_HAVE_ATOLL}")
|
message(" LWS_HAVE_ATOLL = ${LWS_HAVE_ATOLL}")
|
||||||
message(" LWS_HAVE__ATOI64 = ${LWS_HAVE__ATOI64}")
|
message(" LWS_HAVE__ATOI64 = ${LWS_HAVE__ATOI64}")
|
||||||
message(" LWS_HAVE_STAT32I64 = ${LWS_HAVE_STAT32I64}")
|
message(" LWS_HAVE_STAT32I64 = ${LWS_HAVE_STAT32I64}")
|
||||||
|
message(" LWS_HAS_INTPTR_T = ${LWS_HAS_INTPTR_T}")
|
||||||
|
|
||||||
message("---------------------------------------------------------------------")
|
message("---------------------------------------------------------------------")
|
||||||
|
|
||||||
|
|
|
@ -553,7 +553,7 @@ lws_create_vhost(struct lws_context *context,
|
||||||
for (n = 0; n < vh->count_protocols; n++)
|
for (n = 0; n < vh->count_protocols; n++)
|
||||||
if (!strcmp(pvo->value, vh->protocols[n].name)) {
|
if (!strcmp(pvo->value, vh->protocols[n].name)) {
|
||||||
((struct lws_protocol_vhost_options *)pvo)->value =
|
((struct lws_protocol_vhost_options *)pvo)->value =
|
||||||
(const char *)(long)n;
|
(const char *)(lws_intptr_t)n;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (n == vh->count_protocols)
|
if (n == vh->count_protocols)
|
||||||
|
|
|
@ -195,7 +195,7 @@ int lws_ext_cb_all_exts(struct lws_context *context, struct lws *wsi,
|
||||||
|
|
||||||
while (ext && ext->callback && !handled) {
|
while (ext && ext->callback && !handled) {
|
||||||
m = ext->callback(context, ext, wsi, reason,
|
m = ext->callback(context, ext, wsi, reason,
|
||||||
(void *)(long)n, arg, len);
|
(void *)(lws_intptr_t)n, arg, len);
|
||||||
if (m < 0) {
|
if (m < 0) {
|
||||||
lwsl_ext("Ext '%s' failed to handle callback %d!\n",
|
lwsl_ext("Ext '%s' failed to handle callback %d!\n",
|
||||||
wsi->active_extensions[n]->name, reason);
|
wsi->active_extensions[n]->name, reason);
|
||||||
|
|
|
@ -229,7 +229,7 @@ print_addr(const char *s, struct sockaddr *sa)
|
||||||
printf(" %s=%d/", s, sa->sa_family);
|
printf(" %s=%d/", s, sa->sa_family);
|
||||||
#ifdef LWS_HAVE_STRUCT_SOCKADDR_SA_LEN
|
#ifdef LWS_HAVE_STRUCT_SOCKADDR_SA_LEN
|
||||||
for (i = 0;
|
for (i = 0;
|
||||||
i < sa->sa_len - ((long)sa->sa_data - (long)&sa->sa_family); i++)
|
i < sa->sa_len - ((lws_intptr_t)sa->sa_data - (lws_intptr_t)&sa->sa_family); i++)
|
||||||
printf("%02x", ((unsigned char *)sa->sa_data)[i]);
|
printf("%02x", ((unsigned char *)sa->sa_data)[i]);
|
||||||
#else
|
#else
|
||||||
for (i = 0; i < sizeof(sa->sa_data); i++)
|
for (i = 0; i < sizeof(sa->sa_data); i++)
|
||||||
|
|
|
@ -71,7 +71,7 @@ int lws_finalize_http_header(struct lws *wsi, unsigned char **p,
|
||||||
#else
|
#else
|
||||||
(void)wsi;
|
(void)wsi;
|
||||||
#endif
|
#endif
|
||||||
if ((long)(end - *p) < 3)
|
if ((lws_intptr_t)(end - *p) < 3)
|
||||||
return 1;
|
return 1;
|
||||||
*((*p)++) = '\x0d';
|
*((*p)++) = '\x0d';
|
||||||
*((*p)++) = '\x0a';
|
*((*p)++) = '\x0a';
|
||||||
|
|
|
@ -320,7 +320,7 @@ lws_http2_parser(struct lws *wsi, unsigned char c)
|
||||||
break;
|
break;
|
||||||
case LWS_HTTP2_FRAME_TYPE_WINDOW_UPDATE:
|
case LWS_HTTP2_FRAME_TYPE_WINDOW_UPDATE:
|
||||||
wsi->u.http2.hpack_e_dep &= ~(1 << 31);
|
wsi->u.http2.hpack_e_dep &= ~(1 << 31);
|
||||||
if ((long long)swsi->u.http2.tx_credit + (unsigned long long)wsi->u.http2.hpack_e_dep > (~(1 << 31)))
|
if ((lws_intptr_t)swsi->u.http2.tx_credit + (lws_intptr_t)wsi->u.http2.hpack_e_dep > (~(1 << 31)))
|
||||||
return 1; /* actually need to close swsi not the whole show */
|
return 1; /* actually need to close swsi not the whole show */
|
||||||
swsi->u.http2.tx_credit += wsi->u.http2.hpack_e_dep;
|
swsi->u.http2.tx_credit += wsi->u.http2.hpack_e_dep;
|
||||||
if (swsi->u.http2.waiting_tx_credit && swsi->u.http2.tx_credit > 0) {
|
if (swsi->u.http2.waiting_tx_credit && swsi->u.http2.tx_credit > 0) {
|
||||||
|
|
|
@ -199,8 +199,8 @@ struct jpargs {
|
||||||
static void *
|
static void *
|
||||||
lwsws_align(struct jpargs *a)
|
lwsws_align(struct jpargs *a)
|
||||||
{
|
{
|
||||||
if ((unsigned long)(a->p) & 15)
|
if ((lws_intptr_t)(a->p) & 15)
|
||||||
a->p += 16 - ((unsigned long)(a->p) & 15);
|
a->p += 16 - ((lws_intptr_t)(a->p) & 15);
|
||||||
|
|
||||||
return a->p;
|
return a->p;
|
||||||
}
|
}
|
||||||
|
|
|
@ -167,7 +167,7 @@ lws_uv_initvhost(struct lws_vhost* vh, struct lws* wsi)
|
||||||
&wsi->w_read.uv_watcher, wsi->desc.sockfd);
|
&wsi->w_read.uv_watcher, wsi->desc.sockfd);
|
||||||
if (n) {
|
if (n) {
|
||||||
lwsl_err("uv_poll_init failed %d, sockfd=%p\n",
|
lwsl_err("uv_poll_init failed %d, sockfd=%p\n",
|
||||||
n, (void *)(long)wsi->desc.sockfd);
|
n, (void *)(lws_intptr_t)wsi->desc.sockfd);
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -529,7 +529,7 @@ lws_libuv_closehandle(struct lws *wsi)
|
||||||
static void
|
static void
|
||||||
lws_libuv_closewsi_m(uv_handle_t* handle)
|
lws_libuv_closewsi_m(uv_handle_t* handle)
|
||||||
{
|
{
|
||||||
lws_sockfd_type sockfd = (lws_sockfd_type)(long long)handle->data;
|
lws_sockfd_type sockfd = (lws_sockfd_type)(lws_intptr_t)handle->data;
|
||||||
|
|
||||||
compatible_close(sockfd);
|
compatible_close(sockfd);
|
||||||
}
|
}
|
||||||
|
@ -539,7 +539,7 @@ lws_libuv_closehandle_manually(struct lws *wsi)
|
||||||
{
|
{
|
||||||
uv_handle_t *h = (void *)&wsi->w_read.uv_watcher;
|
uv_handle_t *h = (void *)&wsi->w_read.uv_watcher;
|
||||||
|
|
||||||
h->data = (void *)(long long)wsi->desc.sockfd;
|
h->data = (void *)(lws_intptr_t)wsi->desc.sockfd;
|
||||||
/* required to defer actual deletion until libuv has processed it */
|
/* required to defer actual deletion until libuv has processed it */
|
||||||
uv_close((uv_handle_t*)&wsi->w_read.uv_watcher, lws_libuv_closewsi_m);
|
uv_close((uv_handle_t*)&wsi->w_read.uv_watcher, lws_libuv_closewsi_m);
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,13 @@ extern "C" {
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(LWS_HAS_INTPTR_T)
|
||||||
|
#include <stdint.h>
|
||||||
|
#define lws_intptr_t intptr_t
|
||||||
|
#else
|
||||||
|
typedef unsigned long long lws_intptr_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(LWS_WITH_ESP8266)
|
#if defined(LWS_WITH_ESP8266)
|
||||||
struct sockaddr_in;
|
struct sockaddr_in;
|
||||||
#define LWS_POSIX 0
|
#define LWS_POSIX 0
|
||||||
|
|
|
@ -419,7 +419,7 @@ lws_interface_to_sa(int ipv6,
|
||||||
if (address == INADDR_NONE)
|
if (address == INADDR_NONE)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
addr->sin_addr.s_addr = (unsigned long)address;
|
addr->sin_addr.s_addr = (lws_intptr_t)address;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -613,7 +613,7 @@ LWS_VISIBLE int lws_serve_http_file_fragment(struct lws *wsi)
|
||||||
|
|
||||||
lwsl_notice("%s: doing range start %llu\n", __func__, wsi->u.http.range.start);
|
lwsl_notice("%s: doing range start %llu\n", __func__, wsi->u.http.range.start);
|
||||||
|
|
||||||
if ((long)lws_vfs_file_seek_cur(wsi->u.http.fop_fd,
|
if ((long long)lws_vfs_file_seek_cur(wsi->u.http.fop_fd,
|
||||||
wsi->u.http.range.start -
|
wsi->u.http.range.start -
|
||||||
wsi->u.http.filepos) < 0)
|
wsi->u.http.filepos) < 0)
|
||||||
goto file_had_it;
|
goto file_had_it;
|
||||||
|
|
|
@ -357,7 +357,7 @@ int lws_header_table_detach(struct lws *wsi, int autoservice)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
assert(!!pt->ah_wait_list_length == !!(int)(long)pt->ah_wait_list);
|
assert(!!pt->ah_wait_list_length == !!(lws_intptr_t)pt->ah_wait_list);
|
||||||
bail:
|
bail:
|
||||||
lwsl_info("%s: wsi %p: ah %p (tsi=%d, count = %d)\n", __func__,
|
lwsl_info("%s: wsi %p: ah %p (tsi=%d, count = %d)\n", __func__,
|
||||||
(void *)wsi, (void *)ah, wsi->tsi,
|
(void *)wsi, (void *)ah, wsi->tsi,
|
||||||
|
|
16
lib/server.c
16
lib/server.c
|
@ -470,8 +470,8 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,
|
||||||
if (spin == 5)
|
if (spin == 5)
|
||||||
lwsl_err("symlink loop %s \n", path);
|
lwsl_err("symlink loop %s \n", path);
|
||||||
|
|
||||||
n = sprintf(sym, "%08lX%08lX",
|
n = sprintf(sym, "%08llX%08lX",
|
||||||
(unsigned long)lws_vfs_get_length(wsi->u.http.fop_fd),
|
(unsigned long long)lws_vfs_get_length(wsi->u.http.fop_fd),
|
||||||
(unsigned long)lws_vfs_get_mod_time(wsi->u.http.fop_fd));
|
(unsigned long)lws_vfs_get_mod_time(wsi->u.http.fop_fd));
|
||||||
|
|
||||||
/* disable ranges if IF_RANGE token invalid */
|
/* disable ranges if IF_RANGE token invalid */
|
||||||
|
@ -543,10 +543,10 @@ lws_http_serve(struct lws *wsi, char *uri, const char *origin,
|
||||||
if (n > (int)strlen(pvo->name) &&
|
if (n > (int)strlen(pvo->name) &&
|
||||||
!strcmp(&path[n - strlen(pvo->name)], pvo->name)) {
|
!strcmp(&path[n - strlen(pvo->name)], pvo->name)) {
|
||||||
wsi->sending_chunked = 1;
|
wsi->sending_chunked = 1;
|
||||||
wsi->protocol_interpret_idx = (char)(long)pvo->value;
|
wsi->protocol_interpret_idx = (char)(lws_intptr_t)pvo->value;
|
||||||
lwsl_info("want %s interpreted by %s\n", path,
|
lwsl_info("want %s interpreted by %s\n", path,
|
||||||
wsi->vhost->protocols[(int)(long)(pvo->value)].name);
|
wsi->vhost->protocols[(int)(lws_intptr_t)(pvo->value)].name);
|
||||||
wsi->protocol = &wsi->vhost->protocols[(int)(long)(pvo->value)];
|
wsi->protocol = &wsi->vhost->protocols[(int)(lws_intptr_t)(pvo->value)];
|
||||||
if (lws_ensure_user_space(wsi))
|
if (lws_ensure_user_space(wsi))
|
||||||
return -1;
|
return -1;
|
||||||
break;
|
break;
|
||||||
|
@ -1928,7 +1928,7 @@ lws_adopt_descriptor_vhost(struct lws_vhost *vh, lws_adoption_type type,
|
||||||
|
|
||||||
if (type & LWS_ADOPT_SOCKET) { /* socket desc */
|
if (type & LWS_ADOPT_SOCKET) { /* socket desc */
|
||||||
lwsl_debug("%s: new wsi %p, sockfd %d\n", __func__, new_wsi,
|
lwsl_debug("%s: new wsi %p, sockfd %d\n", __func__, new_wsi,
|
||||||
(int)(size_t)fd.sockfd);
|
(int)(lws_intptr_t)fd.sockfd);
|
||||||
|
|
||||||
if (type & LWS_ADOPT_HTTP)
|
if (type & LWS_ADOPT_HTTP)
|
||||||
/* the transport is accepted...
|
/* the transport is accepted...
|
||||||
|
@ -1944,7 +1944,7 @@ lws_adopt_descriptor_vhost(struct lws_vhost *vh, lws_adoption_type type,
|
||||||
#endif
|
#endif
|
||||||
} else /* file desc */
|
} else /* file desc */
|
||||||
lwsl_debug("%s: new wsi %p, filefd %d\n", __func__, new_wsi,
|
lwsl_debug("%s: new wsi %p, filefd %d\n", __func__, new_wsi,
|
||||||
(int)(size_t)fd.filefd);
|
(int)(lws_intptr_t)fd.filefd);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* A new connection was accepted. Give the user a chance to
|
* A new connection was accepted. Give the user a chance to
|
||||||
|
@ -2467,7 +2467,7 @@ try_pollout:
|
||||||
*/
|
*/
|
||||||
if ((wsi->vhost->protocols[0].callback)(wsi,
|
if ((wsi->vhost->protocols[0].callback)(wsi,
|
||||||
LWS_CALLBACK_FILTER_NETWORK_CONNECTION,
|
LWS_CALLBACK_FILTER_NETWORK_CONNECTION,
|
||||||
NULL, (void *)(long)accept_fd, 0)) {
|
NULL, (void *)(lws_intptr_t)accept_fd, 0)) {
|
||||||
lwsl_debug("Callback denied network connection\n");
|
lwsl_debug("Callback denied network connection\n");
|
||||||
compatible_close(accept_fd);
|
compatible_close(accept_fd);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -149,4 +149,6 @@
|
||||||
#cmakedefine LWS_HAVE_TLSV1_2_CLIENT_METHOD
|
#cmakedefine LWS_HAVE_TLSV1_2_CLIENT_METHOD
|
||||||
#cmakedefine LWS_HAVE_SSL_SET_INFO_CALLBACK
|
#cmakedefine LWS_HAVE_SSL_SET_INFO_CALLBACK
|
||||||
|
|
||||||
|
#cmakedefine LWS_HAS_INTPTR_T
|
||||||
|
|
||||||
${LWS_SIZEOFPTR_CODE}
|
${LWS_SIZEOFPTR_CODE}
|
||||||
|
|
|
@ -162,7 +162,7 @@ callback_lws_mirror(struct lws *wsi, enum lws_callback_reasons reason,
|
||||||
l = 0;
|
l = 0;
|
||||||
|
|
||||||
while (shift >= 0) {
|
while (shift >= 0) {
|
||||||
l |= ((unsigned long long)*p++) << shift;
|
l |= ((lws_intptr_t)*p++) << shift;
|
||||||
shift -= 8;
|
shift -= 8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,7 +142,7 @@ void *thread_dumb_increment(void *threadid)
|
||||||
|
|
||||||
void *thread_service(void *threadid)
|
void *thread_service(void *threadid)
|
||||||
{
|
{
|
||||||
while (lws_service_tsi(context, 50, (int)(long)threadid) >= 0 && !force_exit)
|
while (lws_service_tsi(context, 50, (int)(lws_intptr_t)threadid) >= 0 && !force_exit)
|
||||||
;
|
;
|
||||||
|
|
||||||
pthread_exit(NULL);
|
pthread_exit(NULL);
|
||||||
|
@ -368,7 +368,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
for (n = 0; n < lws_get_count_threads(context); n++)
|
for (n = 0; n < lws_get_count_threads(context); n++)
|
||||||
if (pthread_create(&pthread_service[n], NULL, thread_service,
|
if (pthread_create(&pthread_service[n], NULL, thread_service,
|
||||||
(void *)(long)n))
|
(void *)(lws_intptr_t)n))
|
||||||
lwsl_err("Failed to start service thread\n");
|
lwsl_err("Failed to start service thread\n");
|
||||||
|
|
||||||
/* wait for all the service threads to exit */
|
/* wait for all the service threads to exit */
|
||||||
|
|
Loading…
Add table
Reference in a new issue