odissey: exit on signal; minor fixes

This commit is contained in:
Dmitry Simonenko 2017-06-14 15:35:04 +03:00
parent 1c55e37dcb
commit e53b391e0f
8 changed files with 16 additions and 19 deletions

@ -1 +1 @@
Subproject commit d5ac45b6513e006b5da362b5dfa32d2608cf166d Subproject commit b1f2b5545f2809d81cccbc5a7a25503d6d3b1a0a

View File

@ -232,7 +232,7 @@ od_backend_connect(od_server_t *server)
struct addrinfo *ai = NULL; struct addrinfo *ai = NULL;
int rc; int rc;
rc = machine_getaddrinfo(server_scheme->host, port, NULL, &ai, 0); rc = machine_getaddrinfo(server_scheme->host, port, NULL, &ai, 0);
if (rc < 0) { if (rc == -1) {
od_error_server(&instance->log, server->id, NULL, od_error_server(&instance->log, server->id, NULL,
"failed to resolve %s:%d", "failed to resolve %s:%d",
server_scheme->host, server_scheme->host,
@ -244,7 +244,7 @@ od_backend_connect(od_server_t *server)
/* connect to server */ /* connect to server */
rc = machine_connect(server->io, ai->ai_addr, UINT32_MAX); rc = machine_connect(server->io, ai->ai_addr, UINT32_MAX);
freeaddrinfo(ai); freeaddrinfo(ai);
if (rc < 0) { if (rc == -1) {
od_error_server(&instance->log, server->id, NULL, od_error_server(&instance->log, server->id, NULL,
"failed to connect to %s:%d", "failed to connect to %s:%d",
server_scheme->host, server_scheme->host,
@ -461,7 +461,7 @@ int od_backend_reset(od_server_t *server)
wait_try_cancel); wait_try_cancel);
wait_try_cancel++; wait_try_cancel++;
rc = od_cancel(instance, route->scheme->server, &server->key, server->id); rc = od_cancel(instance, route->scheme->server, &server->key, server->id);
if (rc < 0) if (rc == -1)
goto error; goto error;
continue; continue;
} }

View File

@ -68,7 +68,7 @@ int od_cancel(od_instance_t *instance,
struct addrinfo *ai = NULL; struct addrinfo *ai = NULL;
int rc; int rc;
rc = machine_getaddrinfo(server_scheme->host, port, NULL, &ai, 0); rc = machine_getaddrinfo(server_scheme->host, port, NULL, &ai, 0);
if (rc < 0) { if (rc == -1) {
od_error_server(&instance->log, 0, "cancel", "failed to resolve %s:%d", od_error_server(&instance->log, 0, "cancel", "failed to resolve %s:%d",
server_scheme->host, server_scheme->host,
server_scheme->port); server_scheme->port);
@ -91,7 +91,7 @@ int od_cancel(od_instance_t *instance,
/* connect to server */ /* connect to server */
rc = machine_connect(server.io, ai->ai_addr, UINT32_MAX); rc = machine_connect(server.io, ai->ai_addr, UINT32_MAX);
freeaddrinfo(ai); freeaddrinfo(ai);
if (rc < 0) { if (rc == -1) {
od_error_server(&instance->log, 0, "cancel", od_error_server(&instance->log, 0, "cancel",
"failed to connect to %s:%d", "failed to connect to %s:%d",
server_scheme->host, server_scheme->host,

View File

@ -102,7 +102,7 @@ od_frontend_startup_read(od_client_t *client)
if (rc == -1) if (rc == -1)
return -1; return -1;
rc = machine_read(client->io, (char*)stream->p, to_read, UINT32_MAX); rc = machine_read(client->io, (char*)stream->p, to_read, UINT32_MAX);
if (rc < 0) { if (rc == -1) {
od_error_client(&instance->log, client->id, "startup", od_error_client(&instance->log, client->id, "startup",
"read error: %s", "read error: %s",
machine_error(client->io)); machine_error(client->io));

View File

@ -42,7 +42,7 @@ int od_read(machine_io_t *io, so_stream_t *stream, int time_ms)
if (rc == -1) if (rc == -1)
return -1; return -1;
rc = machine_read(io, (char*)stream->p, to_read, time_ms); rc = machine_read(io, (char*)stream->p, to_read, time_ms);
if (rc < 0) if (rc == -1)
return -1; return -1;
so_stream_advance(stream, to_read); so_stream_advance(stream, to_read);
request_size += to_read; request_size += to_read;
@ -53,12 +53,9 @@ int od_read(machine_io_t *io, so_stream_t *stream, int time_ms)
int od_write(machine_io_t *io, so_stream_t *stream) int od_write(machine_io_t *io, so_stream_t *stream)
{ {
int rc; int rc;
rc = machine_write(io, (char*)stream->s, rc = machine_write(io, (char*)stream->s, so_stream_used(stream),
so_stream_used(stream),
UINT32_MAX); UINT32_MAX);
if (rc < 0) return rc;
return -1;
return 0;
} }
int od_getpeername(machine_io_t *io, char *buf, int size) int od_getpeername(machine_io_t *io, char *buf, int size)

View File

@ -79,7 +79,7 @@ od_pooler_main(od_pooler_t *pooler)
struct addrinfo *ai = NULL; struct addrinfo *ai = NULL;
int rc; int rc;
rc = machine_getaddrinfo(host, port, hints_ptr, &ai, UINT32_MAX); rc = machine_getaddrinfo(host, port, hints_ptr, &ai, UINT32_MAX);
if (rc < 0) { if (rc == -1) {
od_error(&instance->log, "failed to resolve %s:%d", od_error(&instance->log, "failed to resolve %s:%d",
instance->scheme.host, instance->scheme.host,
instance->scheme.port); instance->scheme.port);
@ -97,7 +97,7 @@ od_pooler_main(od_pooler_t *pooler)
/* bind to listen address and port */ /* bind to listen address and port */
rc = machine_bind(pooler->server, ai->ai_addr); rc = machine_bind(pooler->server, ai->ai_addr);
freeaddrinfo(ai); freeaddrinfo(ai);
if (rc < 0) { if (rc == -1) {
od_error(&instance->log, "bind %s:%d failed", od_error(&instance->log, "bind %s:%d failed",
instance->scheme.host, instance->scheme.host,
instance->scheme.port); instance->scheme.port);
@ -116,7 +116,7 @@ od_pooler_main(od_pooler_t *pooler)
machine_io_t *client_io; machine_io_t *client_io;
rc = machine_accept(pooler->server, &client_io, rc = machine_accept(pooler->server, &client_io,
instance->scheme.backlog, UINT32_MAX); instance->scheme.backlog, UINT32_MAX);
if (rc < 0) { if (rc == -1) {
od_error(&instance->log, "pooler: accept failed"); od_error(&instance->log, "pooler: accept failed");
continue; continue;
} }
@ -171,7 +171,6 @@ od_signalizer(void *arg)
sigset_t mask; sigset_t mask;
sigemptyset(&mask); sigemptyset(&mask);
sigaddset(&mask, SIGINT); sigaddset(&mask, SIGINT);
int rc; int rc;
rc = machine_signal_init(&mask); rc = machine_signal_init(&mask);
if (rc == -1) { if (rc == -1) {
@ -187,6 +186,7 @@ od_signalizer(void *arg)
switch (rc) { switch (rc) {
case SIGINT: case SIGINT:
od_log(&instance->log, "pooler: SIGINT"); od_log(&instance->log, "pooler: SIGINT");
exit(0);
break; break;
} }
} }

View File

@ -154,7 +154,7 @@ od_router_attacher(void *arg)
int rc; int rc;
rc = machine_condition(route->scheme->pool_timeout); rc = machine_condition(route->scheme->pool_timeout);
if (rc < 0) { if (rc == -1) {
od_clientpool_set(&route->client_pool, client, OD_CPENDING); od_clientpool_set(&route->client_pool, client, OD_CPENDING);
od_debug_client(&instance->log, client->id, "router", od_debug_client(&instance->log, client->id, "router",
"server pool wait timedout, closing"); "server pool wait timedout, closing");

View File

@ -205,7 +205,7 @@ od_tls_backend_connect(od_server_t *server,
/* read server reply */ /* read server reply */
so_stream_reset(stream); so_stream_reset(stream);
rc = machine_read(server->io, (char*)stream->p, 1, UINT32_MAX); rc = machine_read(server->io, (char*)stream->p, 1, UINT32_MAX);
if (rc < 0) { if (rc == -1) {
od_error_server(log, server->id, "tls", "read error: %s", od_error_server(log, server->id, "tls", "read error: %s",
machine_error(server->io)); machine_error(server->io));
return -1; return -1;