X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/4ccfd96cfee813f3855be5a902acc3d5cd0545a4..e66d70e34cd84c49e36c78920e33da5db72f82a8:/io.c diff --git a/io.c b/io.c index 828f552b..e5574025 100644 --- a/io.c +++ b/io.c @@ -729,6 +729,14 @@ static void readfd(int fd, char *buffer, size_t N) } +unsigned short read_short(int f) +{ + uchar b[2]; + readfd(f, (char *)b, 2); + return (b[1] << 8) + b[0]; +} + + int32 read_int(int f) { char b[4]; @@ -772,9 +780,9 @@ void read_sbuf(int f,char *buf,size_t len) buf[len] = 0; } -unsigned char read_byte(int f) +uchar read_byte(int f) { - unsigned char c; + uchar c; readfd(f, (char *)&c, 1); return c; } @@ -786,19 +794,20 @@ void read_sum_head(int f, struct sum_struct *sum) sum->count = read_int(f); sum->blength = read_int(f); if (sum->blength < 0 || sum->blength > MAX_BLOCK_SIZE) { - rprintf(FERROR, "Invalid block length %ld\n", - (long)sum->blength); + rprintf(FERROR, "[%s] Invalid block length %ld\n", + who_am_i(), (long)sum->blength); exit_cleanup(RERR_PROTOCOL); } sum->s2length = protocol_version < 27 ? csum_length : (int)read_int(f); if (sum->s2length < 0 || sum->s2length > MD4_SUM_LENGTH) { - rprintf(FERROR, "Invalid checksum length %d\n", sum->s2length); + rprintf(FERROR, "[%s] Invalid checksum length %d\n", + who_am_i(), sum->s2length); exit_cleanup(RERR_PROTOCOL); } sum->remainder = read_int(f); if (sum->remainder < 0 || sum->remainder > sum->blength) { - rprintf(FERROR, "Invalid remainder length %ld\n", - (long)sum->remainder); + rprintf(FERROR, "[%s] Invalid remainder length %ld\n", + who_am_i(), (long)sum->remainder); exit_cleanup(RERR_PROTOCOL); } } @@ -1054,6 +1063,15 @@ static void writefd(int fd,char *buf,size_t len) } +void write_short(int f, unsigned short x) +{ + uchar b[2]; + b[0] = x; + b[1] = x >> 8; + writefd(f, (char *)b, 2); +} + + void write_int(int f,int32 x) { char b[4]; @@ -1100,19 +1118,20 @@ void write_buf(int f,char *buf,size_t len) writefd(f,buf,len); } + /** Write a string to the connection */ void write_sbuf(int f, char *buf) { writefd(f, buf, strlen(buf)); } -void write_byte(int f,unsigned char c) + +void write_byte(int f, uchar c) { writefd(f, (char *)&c, 1); } - /** * Read a line of up to @p maxlen characters into @p buf (not counting * the trailing null). Strips the (required) trailing newline and all