memcpy(hold_buf, buf, fread_ret);
return SDAS_SUCCESS;
} else {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
} else if (write_ret == 0) {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else if ((size_t)write_ret < fread_ret) {
*chunk_remaining -= (size_t)write_ret;
*has_hold = (ssize_t)fread_ret - write_ret;
if (errno == EAGAIN || errno == EWOULDBLOCK) {
return SDAS_SUCCESS;
} else {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
} else if (write_ret == 0) {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else if (write_ret < *has_hold) {
*chunk_remaining -= (size_t)write_ret;
memcpy(buf, hold_buf + write_ret, (size_t)(*has_hold - write_ret));
memcpy(hold_buf, buf, fread_ret);
return SDAS_SUCCESS;
} else {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
} else if (write_ret == 0) {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else if ((size_t)write_ret < fread_ret) {
*chunk_remaining -= (size_t)write_ret;
*has_hold = (ssize_t)fread_ret - write_ret;
} else if ((size_t)write_ret <= *chunk_remaining) {
*chunk_remaining -= (size_t)write_ret;
} else {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
}
} else {
if (errno == EAGAIN || errno == EWOULDBLOCK) {
return SDAS_SUCCESS;
} else {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
} else if (write_ret == 0) {
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else if (write_ret < *has_hold) {
*chunk_remaining -= (size_t)write_ret;
memcpy(buf, hold_buf + write_ret, (size_t)(*has_hold - write_ret));
if (!out_fd) {
fprintf(stderr, "ERROR Failed to open \"%s\" for writing!\n",
out_filename);
- return SDAS_INTERNAL_ERROR;
+ return SDAS_FILE_CREATE_FAIL;
}
}
while (written_amt < file_size) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while decompressing!\n");
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
SDArchiverStateReturns ret =
try_write_to_decomp(to_dec_pipe,
return ret;
} else if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while decompressing!\n");
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else if (file_size - written_amt >= read_buf_size) {
read_ret = read(in_pipe, read_buf, read_buf_size);
if (read_ret > 0) {
written_amt += fwrite_ret;
} else if (ferror(out_fd)) {
fprintf(stderr, "ERROR Failed to write decompressed data!\n");
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else {
fprintf(
stderr,
"ERROR Failed to write decompressed data (invalid state)!\n");
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
} else {
written_amt += (size_t)read_ret;
if (written_amt < file_size) {
fprintf(stderr,
"ERROR Decompressed EOF while file needs more bytes!\n");
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else {
break;
}
// Error.
fprintf(stderr, "ERROR Failed to read from decompressor! (%zu)\n",
read_ret);
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
}
} else {
written_amt += fwrite_ret;
} else if (ferror(out_fd)) {
fprintf(stderr, "ERROR Failed to write decompressed data!\n");
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else {
fprintf(
stderr,
"ERROR Failed to write decompressed data (invalid state)!\n");
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
} else {
written_amt += (size_t)read_ret;
if (written_amt < file_size) {
fprintf(stderr,
"ERROR Decompressed EOF while file needs more bytes!\n");
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
} else {
break;
}
// Error.
fprintf(stderr, "ERROR Failed to read from decompressor! (%d)\n",
errno);
- return SDAS_INTERNAL_ERROR;
+ return SDAS_DECOMPRESSION_ERROR;
}
}
}
}
- return written_amt == file_size ? SDAS_SUCCESS : SDAS_INTERNAL_ERROR;
+ return written_amt == file_size ? SDAS_SUCCESS : SDAS_DECOMPRESSION_ERROR;
}
void free_internal_file_info(void *data) {
return "Interrupt signal SIGINT recieved";
case SDAS_TOO_MANY_DIRS:
return "Too many directories (limit is 2^32)";
+ case SDAS_COMPRESSION_ERROR:
+ return "Error during compression";
+ case SDAS_DECOMPRESSION_ERROR:
+ return "Error during decompression";
+ case SDAS_NON_DEC_EXTRACT_ERROR:
+ return "Error during extraction of non-compressed data";
+ case SDAS_FILE_CREATE_FAIL:
+ return "Failed to create file for writing";
+ case SDAS_COMPRESSED_WRITE_FAIL:
+ return "Failed to write compressed data";
+ case SDAS_DIR_ENTRY_WRITE_FAIL:
+ return "Failed to store directory information";
+ case SDAS_PERMISSION_SET_FAIL:
+ return "Failed to set permissions";
+ case SDAS_UID_GID_SET_FAIL:
+ return "Failed to set ownership";
default:
return "Unknown error";
}
if (!temp_fd) {
fprintf(stderr,
"ERROR: Failed to create a temporary file for archival!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
if (pipe(pipe_into_cmd) != 0) {
// Unable to create pipes.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (pipe(pipe_outof_cmd) != 0) {
// Unable to create second set of pipes.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (fcntl(pipe_into_cmd[1], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on into-write-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (fcntl(pipe_outof_cmd[0], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on outof-read-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (simple_archiver_de_compress(pipe_into_cmd, pipe_outof_cmd,
state->parsed->compressor,
&compressor_pid) != 0) {
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start compressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
// Close unnecessary pipe fds on this end of the transfer.
while (!to_comp_finished) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while compressing!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
if (!to_comp_finished) {
// Write to compressor.
if (ferror(fd)) {
fprintf(stderr, "ERROR: Writing to chunk, file read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
if (has_hold < 0) {
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, fd);
// Non-blocking write.
nanosleep(&nonblock_sleep, NULL);
} else {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (write_ret < has_hold) {
memcpy(buf, hold_buf + write_ret,
memcpy(hold_buf, buf, (size_t)(has_hold - write_ret));
has_hold = has_hold - write_ret;
} else if (write_ret != has_hold) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else {
has_hold = -1;
}
} else {
fprintf(stderr,
"ERROR: Reading from compressor, pipe read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"ERROR: Reading from compressor, failed to write to "
"temporary file!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
}
while (1) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while compressing!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
ssize_t read_ret =
read(pipe_outof_read, buf, SIMPLE_ARCHIVER_BUFFER_SIZE);
} else {
fprintf(stderr,
"ERROR: Reading from compressor, pipe read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"ERROR: Reading from compressor, failed to write to "
"temporary file!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
}
if (comp_chunk_size < 0) {
fprintf(stderr,
"ERROR: Temp file reported negative size after compression!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
// Write compressed chunk size.
if (is_sig_int_occurred) {
return SDA_RET_STRUCT(SDAS_SIGINT);
} else if (ferror(temp_fd)) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSED_WRITE_FAIL);
}
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, temp_fd);
if (fread_ret > 0) {
while (!feof(fd)) {
if (ferror(fd)) {
fprintf(stderr, "ERROR: Writing to chunk, file read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_FAILED_TO_WRITE);
}
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, fd);
if (fread_ret > 0) {
if (!temp_fd) {
fprintf(stderr,
"ERROR: Failed to create a temporary file for archival!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
if (pipe(pipe_into_cmd) != 0) {
// Unable to create pipes.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (pipe(pipe_outof_cmd) != 0) {
// Unable to create second set of pipes.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (fcntl(pipe_into_cmd[1], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on into-write-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (fcntl(pipe_outof_cmd[0], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on outof-read-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (simple_archiver_de_compress(pipe_into_cmd, pipe_outof_cmd,
state->parsed->compressor,
&compressor_pid) != 0) {
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start compressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
// Close unnecessary pipe fds on this end of the transfer.
while (!to_comp_finished) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while compressing!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
if (!to_comp_finished) {
// Write to compressor.
if (ferror(fd)) {
fprintf(stderr, "ERROR: Writing to chunk, file read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
if (has_hold < 0) {
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, fd);
// Non-blocking write.
nanosleep(&nonblock_sleep, NULL);
} else {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (write_ret < has_hold) {
memcpy(buf, hold_buf + write_ret,
memcpy(hold_buf, buf, (size_t)(has_hold - write_ret));
has_hold = has_hold - write_ret;
} else if (write_ret != has_hold) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else {
has_hold = -1;
}
} else {
fprintf(stderr,
"ERROR: Reading from compressor, pipe read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"ERROR: Reading from compressor, failed to write to "
"temporary file!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
}
while (1) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while compressing!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
ssize_t read_ret =
read(pipe_outof_read, buf, SIMPLE_ARCHIVER_BUFFER_SIZE);
} else {
fprintf(stderr,
"ERROR: Reading from compressor, pipe read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"ERROR: Reading from compressor, failed to write to "
"temporary file!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
}
if (comp_chunk_size < 0) {
fprintf(stderr,
"ERROR: Temp file reported negative size after compression!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
// Write compressed chunk size.
if (is_sig_int_occurred) {
return SDA_RET_STRUCT(SDAS_SIGINT);
} else if (ferror(temp_fd)) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSED_WRITE_FAIL);
}
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, temp_fd);
if (fread_ret > 0) {
internal_write_dir_entries_v2_v3_v4,
void_ptrs)) {
free(void_ptrs);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DIR_ENTRY_WRITE_FAIL);
}
free(void_ptrs);
if (!temp_fd) {
fprintf(stderr,
"ERROR: Failed to create a temporary file for archival!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
if (pipe(pipe_into_cmd) != 0) {
// Unable to create pipes.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (pipe(pipe_outof_cmd) != 0) {
// Unable to create second set of pipes.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (fcntl(pipe_into_cmd[1], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on into-write-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (fcntl(pipe_outof_cmd[0], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on outof-read-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (simple_archiver_de_compress(pipe_into_cmd, pipe_outof_cmd,
state->parsed->compressor,
&compressor_pid) != 0) {
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start compressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
// Close unnecessary pipe fds on this end of the transfer.
while (!to_comp_finished) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while compressing!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
if (!to_comp_finished) {
// Write to compressor.
if (ferror(fd)) {
fprintf(stderr, "ERROR: Writing to chunk, file read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
if (has_hold < 0) {
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, fd);
// Non-blocking write.
nanosleep(&nonblock_sleep, NULL);
} else {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (write_ret < has_hold) {
memcpy(buf, hold_buf + write_ret,
memcpy(hold_buf, buf, (size_t)(has_hold - write_ret));
has_hold = has_hold - write_ret;
} else if (write_ret != has_hold) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else {
has_hold = -1;
}
} else {
fprintf(stderr,
"ERROR: Reading from compressor, pipe read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"ERROR: Reading from compressor, failed to write to "
"temporary file!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
}
while (1) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while compressing!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
ssize_t read_ret =
read(pipe_outof_read, buf, SIMPLE_ARCHIVER_BUFFER_SIZE);
} else {
fprintf(stderr,
"ERROR: Reading from compressor, pipe read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"ERROR: Reading from compressor, failed to write to "
"temporary file!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
}
if (comp_chunk_size < 0) {
fprintf(stderr,
"ERROR: Temp file reported negative size after compression!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
// Write compressed chunk size.
if (is_sig_int_occurred) {
return SDA_RET_STRUCT(SDAS_SIGINT);
} else if (ferror(temp_fd)) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSED_WRITE_FAIL);
}
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, temp_fd);
if (fread_ret > 0) {
internal_write_dir_entries_v2_v3_v4,
void_ptrs)) {
free(void_ptrs);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DIR_ENTRY_WRITE_FAIL);
}
free(void_ptrs);
if (!temp_fd) {
fprintf(stderr,
"ERROR: Failed to create a temporary file for archival!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
}
if (pipe(pipe_into_cmd) != 0) {
// Unable to create pipes.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (pipe(pipe_outof_cmd) != 0) {
// Unable to create second set of pipes.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (fcntl(pipe_into_cmd[1], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on into-write-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (fcntl(pipe_outof_cmd[0], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on outof-read-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else if (simple_archiver_de_compress(pipe_into_cmd, pipe_outof_cmd,
state->parsed->compressor,
&compressor_pid) != 0) {
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start compressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
// Close unnecessary pipe fds on this end of the transfer.
while (!to_comp_finished) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while compressing!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
if (!to_comp_finished) {
// Write to compressor.
if (ferror(fd)) {
fprintf(stderr, "ERROR: Writing to chunk, file read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
if (has_hold < 0) {
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, fd);
// Non-blocking write.
nanosleep(&nonblock_sleep, NULL);
} else {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (write_ret < has_hold) {
memcpy(buf, hold_buf + write_ret,
memcpy(hold_buf, buf, (size_t)(has_hold - write_ret));
has_hold = has_hold - write_ret;
} else if (write_ret != has_hold) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
} else {
has_hold = -1;
}
} else {
fprintf(stderr,
"ERROR: Reading from compressor, pipe read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSED_WRITE_FAIL);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"ERROR: Reading from compressor, failed to write to "
"temporary file!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSED_WRITE_FAIL);
}
}
}
while (1) {
if (is_sig_pipe_occurred) {
fprintf(stderr, "ERROR: SIGPIPE while compressing!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSED_WRITE_FAIL);
}
ssize_t read_ret =
read(pipe_outof_read, buf, SIMPLE_ARCHIVER_BUFFER_SIZE);
} else {
fprintf(stderr,
"ERROR: Reading from compressor, pipe read error!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"ERROR: Reading from compressor, failed to write to "
"temporary file!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSED_WRITE_FAIL);
}
}
}
if (comp_chunk_size < 0) {
fprintf(stderr,
"ERROR: Temp file reported negative size after compression!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSION_ERROR);
}
// Write compressed chunk size.
if (is_sig_int_occurred) {
return SDA_RET_STRUCT(SDAS_SIGINT);
} else if (ferror(temp_fd)) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_COMPRESSED_WRITE_FAIL);
}
size_t fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, temp_fd);
if (fread_ret > 0) {
internal_write_dir_entries_v2_v3_v4,
void_ptrs)) {
free(void_ptrs);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DIR_ENTRY_WRITE_FAIL);
}
free(void_ptrs);
// Unable to create second set of pipes.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else if (fcntl(pipe_into_cmd[1], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on into-write-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else if (fcntl(pipe_outof_cmd[0], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on outof-read-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
if (state && state->parsed && state->parsed->decompressor) {
fprintf(
stderr,
"WARNING: Failed to start decompressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else {
if (simple_archiver_de_compress(pipe_into_cmd, pipe_outof_cmd,
fprintf(
stderr,
"WARNING: Failed to start decompressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
}
"WARNING: Exec failed (exec exit code %d)! Invalid "
"decompressor cmd?\n",
decompressor_return_val);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else if (decompressor_ret == 0) {
// Probably still running, continue on.
fprintf(stderr,
"WARNING: Exec failed (exec exit code unknown)! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
uint64_t compressed_file_size = u64;
fprintf(stderr,
"WARNING: Failed to write to decompressor (SIGPIPE)! "
"Invalid decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
// Read from file.
fprintf(stderr,
"WARNING: Failed to write to decompressor! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else {
// Should be unreachable, error.
fprintf(stderr,
"WARNING: Failed to write to decompressor! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
}
}
fprintf(stderr,
"WARNING: Failed to read from decompressor! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else {
// Invalid state, error.
fprintf(stderr,
"WARNING: Failed to read from decompressor! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else if (read_ret == -1) {
if (errno == EAGAIN || errno == EWOULDBLOCK) {
fprintf(stderr,
"WARNING: Failed to read from decompressor! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else if (read_ret == 0) {
// EOF.
fprintf(stderr,
"WARNING: Failed to read from decompressor! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
}
}
fread_ret = fread(buf, 1, SIMPLE_ARCHIVER_BUFFER_SIZE, in_f);
if (ferror(in_f)) {
// Error.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_NON_DEC_EXTRACT_ERROR);
}
if (out_f) {
fwrite(buf, 1, fread_ret, out_f);
if (ferror(out_f)) {
// Error.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_NON_DEC_EXTRACT_ERROR);
}
}
compressed_file_size -= fread_ret;
fread_ret = fread(buf, 1, compressed_file_size, in_f);
if (ferror(in_f)) {
// Error.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_NON_DEC_EXTRACT_ERROR);
}
if (out_f) {
fwrite(buf, 1, fread_ret, out_f);
if (ferror(out_f)) {
// Error.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_NON_DEC_EXTRACT_ERROR);
}
}
compressed_file_size -= fread_ret;
: (const char *)out_f_name,
permissions) == -1) {
// Error.
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_PERMISSION_SET_FAIL);
}
ptrs_array[0] = NULL;
if (read_ret > 0) {
u64 -= read_ret;
} else if (ferror(in_f)) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
} else {
size_t read_ret = fread(buf, 1, u64, in_f);
if (read_ret > 0) {
u64 -= read_ret;
} else if (ferror(in_f)) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
}
}
// Unable to create second set of pipes.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else if (fcntl(pipe_into_cmd[1], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on into-write-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else if (fcntl(pipe_outof_cmd[0], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on outof-read-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
if (state && state->parsed && state->parsed->decompressor) {
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start decompressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else {
if (simple_archiver_de_compress(pipe_into_cmd, pipe_outof_cmd,
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start decompressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
}
"WARNING: Exec failed (exec exit code %d)! Invalid "
"decompressor cmd?\n",
decompressor_return_val);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else if (decompressor_ret == 0) {
// Probably still running, continue on.
fprintf(stderr,
"WARNING: Exec failed (exec exit code unknown)! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
char hold_buf[SIMPLE_ARCHIVER_BUFFER_SIZE];
if (chmod(filename_prefixed ? filename_prefixed : file_info->filename,
permissions)
== -1) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_PERMISSION_SET_FAIL);
} else if (geteuid() == 0 &&
chown(filename_prefixed
? filename_prefixed
filename_prefixed
? filename_prefixed
: file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_UID_GID_SET_FAIL);
}
} else if (!skip_due_to_map
&& (file_info->other_flags & 1) == 0
chunk_idx += file_info->file_size;
if (chunk_idx > chunk_size) {
fprintf(stderr, "ERROR Files in chunk is larger than chunk!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
const size_t filename_length = strlen(file_info->filename);
filename_prefixed
? filename_prefixed
: file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_PERMISSION_SET_FAIL);
} else if (geteuid() == 0 &&
chown(filename_prefixed
? filename_prefixed
fprintf(stderr,
" ERROR Failed to set UID/GID of file \"%s\"!\n",
file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_UID_GID_SET_FAIL);
}
} else if (!skip_due_to_map
&& (file_info->other_flags & 1) == 0
uint32_t u32;
if (fread(&u32, 4, 1, in_f) != 1) {
fprintf(stderr, "ERROR: Failed to read directory count!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
simple_archiver_helper_32_bit_be(&u32);
for (uint32_t idx = 0; idx < size; ++idx) {
if (fread(&u16, 2, 1, in_f) != 1) {
fprintf(stderr, "ERROR: Failed to read directory name length!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
simple_archiver_helper_16_bit_be(&u16);
if (fread(buf, 1, u16 + 1, in_f) != (size_t)u16 + 1) {
fprintf(stderr, "ERROR: Failed to read directory name!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
buf[u16] = 0;
fprintf(stderr,
"ERROR: Failed to read permission flags for \"%s\"!\n",
buf);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
perms_flags[2] = 0;
perms_flags[3] = 0;
if (fread(&uid, 4, 1, in_f) != 1) {
fprintf(stderr,
"ERROR: Failed to read UID for \"%s\"!\n", buf);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
simple_archiver_helper_32_bit_be(&uid);
if (fread(&gid, 4, 1, in_f) != 1) {
fprintf(stderr,
"ERROR: Failed to read GID for \"%s\"!\n", buf);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
simple_archiver_helper_32_bit_be(&gid);
// Unable to create second set of pipes.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else if (fcntl(pipe_into_cmd[1], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on into-write-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else if (fcntl(pipe_outof_cmd[0], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on outof-read-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
if (state && state->parsed && state->parsed->decompressor) {
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start decompressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else {
if (simple_archiver_de_compress(pipe_into_cmd, pipe_outof_cmd,
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start decompressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
}
"WARNING: Exec failed (exec exit code %d)! Invalid "
"decompressor cmd?\n",
decompressor_return_val);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else if (decompressor_ret == 0) {
// Probably still running, continue on.
fprintf(stderr,
"WARNING: Exec failed (exec exit code unknown)! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
char hold_buf[SIMPLE_ARCHIVER_BUFFER_SIZE];
if (chmod(filename_prefixed ? filename_prefixed : file_info->filename,
permissions)
== -1) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_PERMISSION_SET_FAIL);
} else if (geteuid() == 0 &&
chown(filename_prefixed
? filename_prefixed
filename_prefixed
? filename_prefixed
: file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_UID_GID_SET_FAIL);
}
} else if (!skip_due_to_map
&& (file_info->other_flags & 1) == 0
chunk_idx += file_info->file_size;
if (chunk_idx > chunk_size) {
fprintf(stderr, "ERROR Files in chunk is larger than chunk!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
const size_t filename_length = strlen(file_info->filename);
stderr,
"ERROR Failed to set permissions of file \"%s\"!\n",
filename_prefixed ? filename_prefixed : file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_PERMISSION_SET_FAIL);
} else if (geteuid() == 0 &&
chown(filename_prefixed
? filename_prefixed
stderr,
" ERROR Failed to set UID/GID of file \"%s\"!\n",
filename_prefixed ? filename_prefixed : file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_UID_GID_SET_FAIL);
}
} else if (!skip_due_to_map
&& (file_info->other_flags & 1) == 0
// Unable to create second set of pipes.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else if (fcntl(pipe_into_cmd[1], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on into-write-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
} else if (fcntl(pipe_outof_cmd[0], F_SETFL, O_NONBLOCK) != 0) {
// Unable to set non-blocking on outof-read-pipe.
close(pipe_into_cmd[0]);
close(pipe_into_cmd[1]);
close(pipe_outof_cmd[0]);
close(pipe_outof_cmd[1]);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
if (state && state->parsed && state->parsed->decompressor) {
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start decompressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else {
if (simple_archiver_de_compress(pipe_into_cmd, pipe_outof_cmd,
close(pipe_outof_cmd[0]);
fprintf(stderr,
"WARNING: Failed to start decompressor cmd! Invalid cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
}
"WARNING: Exec failed (exec exit code %d)! Invalid "
"decompressor cmd?\n",
decompressor_return_val);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
} else if (decompressor_ret == 0) {
// Probably still running, continue on.
fprintf(stderr,
"WARNING: Exec failed (exec exit code unknown)! Invalid "
"decompressor cmd?\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_DECOMPRESSION_ERROR);
}
char hold_buf[SIMPLE_ARCHIVER_BUFFER_SIZE];
if (chmod(filename_prefixed ? filename_prefixed : file_info->filename,
permissions)
== -1) {
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_PERMISSION_SET_FAIL);
} else if (geteuid() == 0 &&
chown(filename_prefixed
? filename_prefixed
filename_prefixed
? filename_prefixed
: file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_UID_GID_SET_FAIL);
}
} else if (!skip_due_to_map
&& (file_info->other_flags & 1) == 0
chunk_idx += file_info->file_size;
if (chunk_idx > chunk_size) {
fprintf(stderr, "ERROR Files in chunk is larger than chunk!\n");
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_INVALID_FILE);
}
const size_t filename_length = strlen(file_info->filename);
stderr,
"ERROR Failed to set permissions of file \"%s\"!\n",
filename_prefixed ? filename_prefixed : file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_PERMISSION_SET_FAIL);
} else if (geteuid() == 0 &&
chown(filename_prefixed
? filename_prefixed
stderr,
" ERROR Failed to set UID/GID of file \"%s\"!\n",
filename_prefixed ? filename_prefixed : file_info->filename);
- return SDA_RET_STRUCT(SDAS_INTERNAL_ERROR);
+ return SDA_RET_STRUCT(SDAS_UID_GID_SET_FAIL);
}
} else if (!skip_due_to_map
&& (file_info->other_flags & 1) == 0