diff --git a/config-unix.mk b/config-unix.mk index 862af2d4..98d89397 100644 --- a/config-unix.mk +++ b/config-unix.mk @@ -21,7 +21,8 @@ CC ?= $(PREFIX)gcc AR ?= $(PREFIX)ar E= -CFLAGS=--std=gnu89 -g +CSTDFLAG=--std=c89 -pedantic +CFLAGS=-g CPPFLAGS += -Isrc/ev LINKFLAGS=-lm @@ -80,13 +81,13 @@ uv.a: src/uv-unix.o src/uv-common.o src/uv-platform.o src/ev/ev.o src/uv-eio.o s src/eio/eio.o $(CARES_OBJS) src/uv-platform.o: src/$(UV_OS_FILE) include/uv.h include/uv-unix.h - $(CC) $(CPPFLAGS) $(CFLAGS) -c src/$(UV_OS_FILE) -o src/uv-platform.o + $(CC) $(CSTDFLAG) $(CPPFLAGS) $(CFLAGS) -c src/$(UV_OS_FILE) -o src/uv-platform.o src/uv-unix.o: src/uv-unix.c include/uv.h include/uv-unix.h - $(CC) $(CPPFLAGS) -Ieio $(CFLAGS) -c src/uv-unix.c -o src/uv-unix.o + $(CC) $(CSTDFLAG) $(CPPFLAGS) -Ieio $(CFLAGS) -c src/uv-unix.c -o src/uv-unix.o src/uv-common.o: src/uv-common.c include/uv.h include/uv-unix.h - $(CC) $(CPPFLAGS) $(CFLAGS) -c src/uv-common.c -o src/uv-common.o + $(CC) $(CSTDFLAG) $(CPPFLAGS) $(CFLAGS) -c src/uv-common.c -o src/uv-common.o src/ev/ev.o: src/ev/ev.c $(CC) $(CPPFLAGS) $(CFLAGS) -c src/ev/ev.c -o src/ev/ev.o -DEV_CONFIG_H=\"$(EV_CONFIG)\" @@ -101,7 +102,7 @@ src/eio/eio.o: src/eio/eio.c $(CC) $(EIO_CPPFLAGS) $(CFLAGS) -c src/eio/eio.c -o src/eio/eio.o src/uv-eio.o: src/uv-eio.c - $(CC) $(CPPFLAGS) -Isrc/eio/ $(CFLAGS) -c src/uv-eio.c -o src/uv-eio.o + $(CC) $(CPPFLAGS) -Isrc/eio/ $(CSTDFLAG) $(CFLAGS) -c src/uv-eio.c -o src/uv-eio.o clean-platform: diff --git a/include/eio.h b/include/eio.h index 1d597e1f..3dd32676 100644 --- a/include/eio.h +++ b/include/eio.h @@ -176,7 +176,7 @@ enum enum { EIO_MCL_CURRENT = 1, - EIO_MCL_FUTURE = 2, + EIO_MCL_FUTURE = 2 }; /* request priorities */ @@ -184,7 +184,7 @@ enum enum { EIO_PRI_MIN = -4, EIO_PRI_MAX = 4, - EIO_PRI_DEFAULT = 0, + EIO_PRI_DEFAULT = 0 }; /* eio request structure */ diff --git a/include/uv.h b/include/uv.h index aa27179a..b93d243d 100644 --- a/include/uv.h +++ b/include/uv.h @@ -167,7 +167,7 @@ struct uv_req_s { uv_req_type type; /* public */ uv_handle_t* handle; - void* cb; + void *(*cb)(void *); void* data; /* private */ UV_REQ_PRIVATE_FIELDS @@ -176,7 +176,7 @@ struct uv_req_s { /* * Initialize a request for use with uv_write, uv_shutdown, or uv_connect. */ -void uv_req_init(uv_req_t* req, uv_handle_t* handle, void* cb); +void uv_req_init(uv_req_t* req, uv_handle_t* handle, void *(*cb)(void *)); int uv_shutdown(uv_req_t* req); diff --git a/src/uv-unix.c b/src/uv-unix.c index 17b18574..94944bab 100644 --- a/src/uv-unix.c +++ b/src/uv-unix.c @@ -996,7 +996,9 @@ int uv_write(uv_req_t* req, uv_buf_t bufs[], int bufcnt) { memcpy(req->bufs, bufs, bufcnt * sizeof(uv_buf_t)); req->bufcnt = bufcnt; - // fprintf(stderr, "cnt: %d bufs: %p bufsml: %p\n", bufcnt, req->bufs, req->bufsml); + /* + * fprintf(stderr, "cnt: %d bufs: %p bufsml: %p\n", bufcnt, req->bufs, req->bufsml); + */ req->write_index = 0; tcp->write_queue_size += uv__buf_count(bufs, bufcnt); @@ -1096,7 +1098,7 @@ int uv_read_stop(uv_stream_t* stream) { } -void uv_req_init(uv_req_t* req, uv_handle_t* handle, void* cb) { +void uv_req_init(uv_req_t* req, uv_handle_t* handle, void *(*cb)(void *)) { uv_counters()->req_init++; req->type = UV_UNKNOWN_REQ; req->cb = cb; @@ -1556,6 +1558,7 @@ int uv_getaddrinfo(uv_getaddrinfo_t* handle, const char* hostname, const char* service, const struct addrinfo* hints) { + eio_req* req; uv_eio_init(); if (handle == NULL || cb == NULL || @@ -1584,7 +1587,7 @@ int uv_getaddrinfo(uv_getaddrinfo_t* handle, uv_ref(); - eio_req* req = eio_custom(getaddrinfo_thread_proc, EIO_PRI_DEFAULT, + req = eio_custom(getaddrinfo_thread_proc, EIO_PRI_DEFAULT, uv_getaddrinfo_done, handle); assert(req); assert(req->data == handle); diff --git a/src/uv-win.c b/src/uv-win.c index 1f54e07f..93bf64d1 100644 --- a/src/uv-win.c +++ b/src/uv-win.c @@ -513,7 +513,7 @@ void uv_init() { } -void uv_req_init(uv_req_t* req, uv_handle_t* handle, void* cb) { +void uv_req_init(uv_req_t* req, uv_handle_t* handle, void *(*cb)(void *)) { uv_counters()->req_init++; req->type = UV_UNKNOWN_REQ; req->flags = 0; diff --git a/test/echo-server.c b/test/echo-server.c index ea01631d..9addc546 100644 --- a/test/echo-server.c +++ b/test/echo-server.c @@ -82,7 +82,7 @@ static void after_read(uv_stream_t* handle, ssize_t nread, uv_buf_t buf) { } req = (uv_req_t*) malloc(sizeof *req); - uv_req_init(req, (uv_handle_t*)handle, after_shutdown); + uv_req_init(req, (uv_handle_t*)handle, (void *(*)(void *))after_shutdown); uv_shutdown(req); return; @@ -108,7 +108,7 @@ static void after_read(uv_stream_t* handle, ssize_t nread, uv_buf_t buf) { wr = (write_req_t*) malloc(sizeof *wr); - uv_req_init(&wr->req, (uv_handle_t*)handle, after_write); + uv_req_init(&wr->req, (uv_handle_t*)handle, (void *(*)(void *))after_write); wr->buf.base = buf.base; wr->buf.len = nread; if (uv_write(&wr->req, &wr->buf, 1)) { @@ -135,7 +135,7 @@ static void on_connection(uv_handle_t* server, int status) { int r; if (status != 0) { - fprintf(stderr, "Connect error %d\n", uv_last_error()); + fprintf(stderr, "Connect error %d\n", uv_last_error().code); } ASSERT(status == 0); diff --git a/test/test-callback-stack.c b/test/test-callback-stack.c index 286fef39..5b12c8b9 100644 --- a/test/test-callback-stack.c +++ b/test/test-callback-stack.c @@ -70,7 +70,7 @@ static void shutdown_cb(uv_req_t* req, int status) { static void read_cb(uv_stream_t* tcp, ssize_t nread, uv_buf_t buf) { ASSERT(nested == 0 && "read_cb must be called from a fresh stack"); - printf("Read. nread == %d\n", nread); + printf("Read. nread == %d\n", (int)nread); free(buf.base); if (nread == 0) { @@ -97,7 +97,7 @@ static void read_cb(uv_stream_t* tcp, ssize_t nread, uv_buf_t buf) { /* from a fresh stack. */ if (bytes_received == sizeof MESSAGE) { nested++; - uv_req_init(&shutdown_req, (uv_handle_t*)tcp, shutdown_cb); + uv_req_init(&shutdown_req, (uv_handle_t*)tcp, (void *(*)(void *))shutdown_cb); puts("Shutdown"); @@ -167,7 +167,7 @@ static void connect_cb(uv_req_t* req, int status) { buf.base = (char*) &MESSAGE; buf.len = sizeof MESSAGE; - uv_req_init(&write_req, req->handle, write_cb); + uv_req_init(&write_req, req->handle, (void *(*)(void *))write_cb); if (uv_write(&write_req, &buf, 1)) { FATAL("uv_write failed"); @@ -191,7 +191,9 @@ TEST_IMPL(callback_stack) { puts("Connecting..."); nested++; - uv_req_init(&connect_req, (uv_handle_t*)&client, connect_cb); + uv_req_init(&connect_req, (uv_handle_t*)&client, + (void *(*)(void *))connect_cb); + if (uv_tcp_connect(&connect_req, addr)) { FATAL("uv_tcp_connect failed"); } diff --git a/test/test-connection-fail.c b/test/test-connection-fail.c index e9120b90..9fc3f0ba 100644 --- a/test/test-connection-fail.c +++ b/test/test-connection-fail.c @@ -103,7 +103,7 @@ void connection_fail(uv_connect_cb connect_cb) { /* We are never doing multiple reads/connects at a time anyway. */ /* so these handles can be pre-initialized. */ - uv_req_init(&req, (uv_handle_t*)&tcp, connect_cb); + uv_req_init(&req, (uv_handle_t*)&tcp, (void *(*)(void *))connect_cb); uv_tcp_bind(&tcp, client_addr); r = uv_tcp_connect(&req, server_addr); diff --git a/test/test-delayed-accept.c b/test/test-delayed-accept.c index b254ccb0..eabf4818 100644 --- a/test/test-delayed-accept.c +++ b/test/test-delayed-accept.c @@ -178,7 +178,7 @@ static void client_connect() { r = uv_tcp_init(client); ASSERT(r == 0); - uv_req_init(connect_req, (uv_handle_t*)client, connect_cb); + uv_req_init(connect_req, (uv_handle_t*)client, (void *(*)(void *))connect_cb); r = uv_tcp_connect(connect_req, addr); ASSERT(r == 0); } diff --git a/test/test-ping-pong.c b/test/test-ping-pong.c index 7004fc60..34de78b5 100644 --- a/test/test-ping-pong.c +++ b/test/test-ping-pong.c @@ -82,7 +82,8 @@ static void pinger_write_ping(pinger_t* pinger) { buf.len = strlen(PING); req = (uv_req_t*)malloc(sizeof(*req)); - uv_req_init(req, (uv_handle_t*)(&pinger->tcp), pinger_after_write); + uv_req_init(req, (uv_handle_t*)(&pinger->tcp), + (void *(*)(void *))pinger_after_write); if (uv_write(req, &buf, 1)) { FATAL("uv_write failed"); @@ -158,7 +159,7 @@ static void pinger_new() { /* We are never doing multiple reads/connects at a time anyway. */ /* so these handles can be pre-initialized. */ uv_req_init(&pinger->connect_req, (uv_handle_t*)(&pinger->tcp), - pinger_on_connect); + (void *(*)(void *))pinger_on_connect); r = uv_tcp_connect(&pinger->connect_req, server_addr); ASSERT(!r); @@ -195,7 +196,7 @@ static void pinger_v6_new() { /* We are never doing multiple reads/connects at a time anyway. */ /* so these handles can be pre-initialized. */ uv_req_init(&pinger->connect_req, (uv_handle_t*)(&pinger->tcp), - pinger_on_connect); + (void *(*)(void *))pinger_on_connect); r = uv_tcp_connect6(&pinger->connect_req, server_addr); ASSERT(!r); diff --git a/test/test-shutdown-eof.c b/test/test-shutdown-eof.c index e986a193..8a960c9e 100644 --- a/test/test-shutdown-eof.c +++ b/test/test-shutdown-eof.c @@ -102,7 +102,7 @@ static void connect_cb(uv_req_t *req, int status) { uv_write(&write_req, &qbuf, 1); /* Shutdown our end of the connection. */ - uv_req_init(&shutdown_req, (uv_handle_t*)&tcp, shutdown_cb); + uv_req_init(&shutdown_req, (uv_handle_t*)&tcp, (void *(*)(void *))shutdown_cb); uv_shutdown(&shutdown_req); called_connect_cb++; @@ -165,7 +165,7 @@ TEST_IMPL(shutdown_eof) { r = uv_tcp_init(&tcp); ASSERT(!r); - uv_req_init(&connect_req, (uv_handle_t*) &tcp, connect_cb); + uv_req_init(&connect_req, (uv_handle_t*) &tcp, (void *(*)(void *))connect_cb); r = uv_tcp_connect(&connect_req, server_addr); ASSERT(!r); diff --git a/test/test-tcp-writealot.c b/test/test-tcp-writealot.c index b0334899..4e305a9f 100644 --- a/test/test-tcp-writealot.c +++ b/test/test-tcp-writealot.c @@ -144,7 +144,7 @@ static void connect_cb(uv_req_t* req, int status) { req = (uv_req_t*)malloc(sizeof *req); ASSERT(req != NULL); - uv_req_init(req, (uv_handle_t*)tcp, write_cb); + uv_req_init(req, (uv_handle_t*)tcp, (void *(*)(void *))write_cb); r = uv_write(req, (uv_buf_t*)&send_bufs, CHUNKS_PER_WRITE); ASSERT(r == 0); } @@ -152,7 +152,7 @@ static void connect_cb(uv_req_t* req, int status) { /* Shutdown on drain. FIXME: dealloc req? */ req = (uv_req_t*) malloc(sizeof(uv_req_t)); ASSERT(req != NULL); - uv_req_init(req, (uv_handle_t*)tcp, shutdown_cb); + uv_req_init(req, (uv_handle_t*)tcp, (void *(*)(void *))shutdown_cb); r = uv_shutdown(req); ASSERT(r == 0); @@ -160,7 +160,7 @@ static void connect_cb(uv_req_t* req, int status) { req = (uv_req_t*)malloc(sizeof *req); ASSERT(req != NULL); - uv_req_init(req, (uv_handle_t*)tcp, read_cb); + uv_req_init(req, (uv_handle_t*)tcp, (void *(*)(void *))read_cb); r = uv_read_start((uv_stream_t*)tcp, alloc_cb, read_cb); ASSERT(r == 0); } @@ -184,7 +184,7 @@ TEST_IMPL(tcp_writealot) { r = uv_tcp_init(client); ASSERT(r == 0); - uv_req_init(connect_req, (uv_handle_t*)client, connect_cb); + uv_req_init(connect_req, (uv_handle_t*)client, (void *(*)(void *))connect_cb); r = uv_tcp_connect(connect_req, addr); ASSERT(r == 0);