|
|
|
@ -59,8 +59,8 @@ int flush_client_data(int fd, struct buffer *buffer)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
Write "len" bytes from "data" to "fd". If not all written, buffer the rest
|
|
|
|
|
to "buffer".
|
|
|
|
|
* Write "len" bytes from "data" to "fd". If not all written, buffer the rest
|
|
|
|
|
* to "buffer".
|
|
|
|
|
*/
|
|
|
|
|
int write_stdin(int fd, const char *data, int len, struct buffer *buffer)
|
|
|
|
|
{
|
|
|
|
@ -92,9 +92,9 @@ int write_stdin(int fd, const char *data, int len, struct buffer *buffer)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
Data feed process has exited, so we need to clear all control structures for
|
|
|
|
|
the client. However, if we have buffered data for the client (which is rare btw),
|
|
|
|
|
fire&forget a separate process to flush them.
|
|
|
|
|
* Data feed process has exited, so we need to clear all control structures for
|
|
|
|
|
* the client. However, if we have buffered data for the client (which is rare btw),
|
|
|
|
|
* fire&forget a separate process to flush them.
|
|
|
|
|
*/
|
|
|
|
|
int fork_and_flush_stdin(int fd, struct buffer *buffer)
|
|
|
|
|
{
|
|
|
|
|