projects
/
cumulus.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add some further documentation on the sftp backend
[cumulus.git]
/
store.cc
diff --git
a/store.cc
b/store.cc
index
bfeb18a
..
9d4c883
100644
(file)
--- a/
store.cc
+++ b/
store.cc
@@
-77,14
+77,14
@@
Tarfile::~Tarfile()
tar_write(buf, TAR_BLOCK_SIZE);
if (close(filter_fd) != 0)
tar_write(buf, TAR_BLOCK_SIZE);
if (close(filter_fd) != 0)
-
throw IOException
("Error closing Tarfile");
+
fatal
("Error closing Tarfile");
/* ...and wait for filter process to finish. */
int status;
waitpid(filter_pid, &status, 0);
if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
/* ...and wait for filter process to finish. */
int status;
waitpid(filter_pid, &status, 0);
if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) {
-
throw IOException
("Filter process error");
+
fatal
("Filter process error");
}
close(real_fd);
}
close(real_fd);
@@
-101,13
+101,13
@@
int spawn_filter(int fd_out, const char *program, pid_t *filter_pid)
/* Create a pipe for communicating with the filter process. */
if (pipe(fds) < 0) {
/* Create a pipe for communicating with the filter process. */
if (pipe(fds) < 0) {
-
throw IOException
("Unable to create pipe for filter");
+
fatal
("Unable to create pipe for filter");
}
/* Create a child process which can exec() the filter program. */
pid = fork();
if (pid < 0)
}
/* Create a child process which can exec() the filter program. */
pid = fork();
if (pid < 0)
-
throw IOException
("Unable to fork filter process");
+
fatal
("Unable to fork filter process");
if (pid > 0) {
/* Parent process */
if (pid > 0) {
/* Parent process */
@@
-150,7
+150,7
@@
void Tarfile::tar_write(const char *data, size_t len)
if (errno == EINTR)
continue;
fprintf(stderr, "Write error: %m\n");
if (errno == EINTR)
continue;
fprintf(stderr, "Write error: %m\n");
-
throw IOException
("Write error");
+
fatal
("Write error");
}
len -= res;
}
len -= res;
@@
-172,7
+172,7
@@
void Tarfile::write_object(int id, const char *data, size_t len)
sprintf(header.mode, "%07o", 0600);
sprintf(header.uid, "%07o", 0);
sprintf(header.gid, "%07o", 0);
sprintf(header.mode, "%07o", 0600);
sprintf(header.uid, "%07o", 0);
sprintf(header.gid, "%07o", 0);
- sprintf(header.size, "%011o", len);
+ sprintf(header.size, "%011o",
(int)
len);
sprintf(header.mtime, "%011o", (int)time(NULL));
header.typeflag = '0';
strcpy(header.magic, "ustar ");
sprintf(header.mtime, "%011o", (int)time(NULL));
header.typeflag = '0';
strcpy(header.magic, "ustar ");
@@
-281,7
+281,7
@@
void TarSegmentStore::dump_stats()
for (map<string, pair<int64_t, int64_t> >::iterator i = group_sizes.begin();
i != group_sizes.end(); ++i) {
printf(" %s: %lld (%lld compressed)\n", i->first.c_str(),
for (map<string, pair<int64_t, int64_t> >::iterator i = group_sizes.begin();
i != group_sizes.end(); ++i) {
printf(" %s: %lld (%lld compressed)\n", i->first.c_str(),
-
i->second.first,
i->second.second);
+
(long long)i->second.first, (long long)
i->second.second);
}
}
}
}