if (t - last_io >= io_timeout) {
if (!am_server && !am_daemon) {
- rprintf(FERROR, "io timeout after %d seconds - exiting\n",
+ rprintf(FERROR, "io timeout after %d seconds -- exiting\n",
(int)(t-last_io));
}
exit_cleanup(RERR_TIMEOUT);
}
+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];
if ((int32)ret != (int32)0xffffffff)
return ret;
-#ifdef INT64_IS_OFF_T
- if (sizeof (int64) < 8) {
- rprintf(FERROR, "Integer overflow: attempted 64-bit offset\n");
- exit_cleanup(RERR_UNSUPPORTED);
- }
-#endif
+#if SIZEOF_INT64 < 8
+ rprintf(FERROR, "Integer overflow: attempted 64-bit offset\n");
+ exit_cleanup(RERR_UNSUPPORTED);
+#else
readfd(f,b,8);
ret = IVAL(b,0) | (((int64)IVAL(b,4))<<32);
+#endif
return ret;
}
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;
}
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);
}
}
}
+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];
return;
}
-#ifdef INT64_IS_OFF_T
- if (sizeof (int64) < 8) {
- rprintf(FERROR, "Integer overflow: attempted 64-bit offset\n");
- exit_cleanup(RERR_UNSUPPORTED);
- }
-#endif
-
+#if SIZEOF_INT64 < 8
+ rprintf(FERROR, "Integer overflow: attempted 64-bit offset\n");
+ exit_cleanup(RERR_UNSUPPORTED);
+#else
write_int(f, (int32)0xFFFFFFFF);
SIVAL(b,0,(x&0xFFFFFFFF));
SIVAL(b,4,((x>>32)&0xFFFFFFFF));
writefd(f,b,8);
+#endif
}
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