mirror of https://github.com/yandex/odyssey.git
odissey: use od_read() to append data
This commit is contained in:
parent
8207824ef4
commit
9da4569537
19
core/od_be.c
19
core/od_be.c
|
@ -114,12 +114,12 @@ od_besetup(od_server_t *server)
|
|||
machine_error(server->io));
|
||||
return -1;
|
||||
}
|
||||
char type = *server->stream.s;
|
||||
uint8_t type = *server->stream.s;
|
||||
od_debug(&pooler->od->log, server->io, "S (setup): %c", type);
|
||||
switch (type) {
|
||||
/* ReadyForQuery */
|
||||
case 'Z':
|
||||
od_beset_ready(server, stream);
|
||||
od_beset_ready(server, stream->s, so_stream_used(stream));
|
||||
return 0;
|
||||
/* Authentication */
|
||||
case 'R':
|
||||
|
@ -345,10 +345,13 @@ ready:
|
|||
return server;
|
||||
}
|
||||
|
||||
int od_beset_ready(od_server_t *server, so_stream_t *stream)
|
||||
int od_beset_ready(od_server_t *server, uint8_t *data, int size)
|
||||
{
|
||||
int status;
|
||||
so_feread_ready(&status, stream->s, so_stream_used(stream));
|
||||
int rc;
|
||||
rc = so_feread_ready(&status, data, size);
|
||||
if (rc == -1)
|
||||
return -1;
|
||||
if (status == 'I') {
|
||||
/* no active transaction */
|
||||
server->is_transaction = 0;
|
||||
|
@ -377,14 +380,16 @@ od_beready_wait(od_server_t *server, char *procedure, int time_ms)
|
|||
procedure, machine_error(server->io));
|
||||
return -1;
|
||||
}
|
||||
uint8_t type = *stream->s;
|
||||
uint8_t type = stream->s[rc];
|
||||
od_debug(&pooler->od->log, server->io, "S (%s): %c",
|
||||
procedure, type);
|
||||
/* ReadyForQuery */
|
||||
if (type == 'Z')
|
||||
if (type == 'Z') {
|
||||
od_beset_ready(server, stream->s + rc,
|
||||
so_stream_used(stream) - rc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
od_beset_ready(server, stream);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
int od_beterminate(od_server_t*);
|
||||
int od_beclose(od_server_t*);
|
||||
int od_berelease(od_server_t*);
|
||||
int od_beset_ready(od_server_t*, so_stream_t*);
|
||||
int od_beset_ready(od_server_t*, uint8_t*, int);
|
||||
int od_beconfigure(od_server_t*, so_bestartup_t*);
|
||||
|
||||
od_server_t*
|
||||
|
|
|
@ -46,7 +46,7 @@ int od_read(machine_io_t io, so_stream_t *stream, int time_ms)
|
|||
so_stream_advance(stream, to_read);
|
||||
request_size += to_read;
|
||||
}
|
||||
return 0;
|
||||
return request_start;
|
||||
}
|
||||
|
||||
int od_write(machine_io_t io, so_stream_t *stream)
|
||||
|
|
Loading…
Reference in New Issue