remote = -1;
}
- write(fd_out, &remote, 1);
+ if (write_in_full(fd_out, &remote, 1) != 1)
+ return 0;
if (remote < 0)
return 0;
{
if (xread(fd_in, &remote_version, 1) < 1)
return -1;
- write(fd_out, &local_version, 1);
+ write_in_full(fd_out, &local_version, 1);
return 0;
}
if (get_ref_sha1(ref, sha1))
remote = -1;
- write(fd_out, &remote, 1);
+ if (write_in_full(fd_out, &remote, 1) != 1)
+ return 0;
if (remote)
return 0;
- write(fd_out, sha1, 20);
+ write_in_full(fd_out, sha1, 20);
return 0;
}
static void service(int fd_in, int fd_out) {
char type;
- int retval;
+ ssize_t retval;
do {
retval = xread(fd_in, &type, 1);
if (retval < 1) {