X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fbuffer.c;h=1d164b4bde00fbba9a3b464cc1f1fdf0ee2966e1;hb=9ded0a0567b58bfbdf10a8dc98e0158e486466ac;hp=d29ccccef279350575905ec718a9326e32888264;hpb=0e041a7bfe4655f4b2ffe4ce3f5ebe942a0151f0;p=chaz%2Ftar diff --git a/src/buffer.c b/src/buffer.c index d29cccc..1d164b4 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -301,7 +301,9 @@ write_archive_buffer (void) { written += status; if (written == record_size - || _isrmt (archive) || ! S_ISFIFO (archive_stat.st_mode)) + || _isrmt (archive) + || ! (S_ISFIFO (archive_stat.st_mode) + || S_ISSOCK (archive_stat.st_mode))) break; } @@ -1208,12 +1210,7 @@ flush_read (void) archive_read_error (); if (status == 0) - { - if (left % BLOCKSIZE != 0) - ERROR ((0, 0, _("%d garbage bytes ignored at end of archive"), - (int) ((record_size - left) % BLOCKSIZE))); - break; - } + break; if (! read_full_records_option) FATAL_ERROR ((0, 0, _("Unaligned block (%lu bytes) in archive"), @@ -1335,7 +1332,7 @@ close_archive (void) if (access_mode == ACCESS_READ && ! _isrmt (archive) - && S_ISFIFO (archive_stat.st_mode)) + && (S_ISFIFO (archive_stat.st_mode) || S_ISSOCK (archive_stat.st_mode))) while (rmtread (archive, record_start->buffer, record_size) > 0) continue; #endif