Remove copy-pasted read/write _blocking

This commit is contained in:
Vitaliy Filippov
2020-02-09 19:23:03 +03:00
parent 1513d0490a
commit 327f310868
3 changed files with 6 additions and 106 deletions
+1 -51
View File
@@ -34,16 +34,13 @@
#include <stdexcept>
#include "rw_blocking.h"
#include "osd_ops.h"
int bind_stub(const char *bind_address, int bind_port);
void run_stub(int peer_fd);
static int write_blocking(int fd, void *write_buf, size_t remaining);
static int read_blocking(int fd, void *read_buf, size_t remaining);
int main(int narg, char *args[])
{
int listen_fd = bind_stub("0.0.0.0", 11203);
@@ -180,50 +177,3 @@ void run_stub(int peer_fd)
}
free(buf);
}
static int read_blocking(int fd, void *read_buf, size_t remaining)
{
size_t done = 0;
while (done < remaining)
{
size_t r = read(fd, read_buf, remaining-done);
if (r <= 0)
{
if (!errno)
{
// EOF
return done;
}
else if (errno != EAGAIN && errno != EPIPE)
{
perror("read");
exit(1);
}
continue;
}
done += r;
read_buf += r;
}
return done;
}
static int write_blocking(int fd, void *write_buf, size_t remaining)
{
size_t done = 0;
while (done < remaining)
{
size_t r = write(fd, write_buf, remaining-done);
if (r < 0)
{
if (errno != EAGAIN && errno != EPIPE)
{
perror("write");
exit(1);
}
continue;
}
done += r;
write_buf += r;
}
return done;
}