* Authors: the Amanda Development Team. Its members are listed in a
* file named AUTHORS, in the root directory of this distribution.
*/
-/* $Id: taper.c,v 1.47.2.14.4.8.2.17.2.1 2004/02/13 14:09:34 martinea Exp $
+/* $Id: taper.c,v 1.47.2.14.4.8.2.17.2.4 2005/10/11 11:10:20 martinea Exp $
*
* moves files from holding disk to tape, or from a socket to tape
*/
{
int p2c[2], c2p[2]; /* parent-to-child, child-to-parent pipes */
char *conffile;
- int fd;
unsigned int size;
int i;
int j;
int page_size;
char *first_buffer;
- for(fd = 3; fd < FD_SETSIZE; fd++) {
- /*
- * Make sure nobody spoofs us with a lot of extra open files
- * that would cause an open we do to get a very high file
- * descriptor, which in turn might be used as an index into
- * an array (e.g. an fd_set).
- */
- close(fd);
- }
+ safe_fd(-1, 0);
set_pname("taper");
q = squote(errstr);
putresult(TRYAGAIN, "%s %s\n", handle, q);
amfree(q);
- log_add(L_INFO, "retrying %s:%s.%d on new tape: %s",
+ log_add(L_INFO, "retrying %s:%s.%d on new tape due to: %s",
hostname, diskname, level, errstr);
closing = 1;
syncpipe_put('X'); /* X == buffer snafu, bail */
q = squote(errstr);
if(tok == 'T') {
putresult(TRYAGAIN, "%s %s\n", handle, q);
- log_add(L_INFO, "retrying %s:%s.%d on new tape: %s",
+ log_add(L_INFO, "retrying %s:%s.%d on new tape due to: %s",
hostname, diskname, level, errstr);
} else {
putresult(TAPE_ERROR, "%s %s\n", handle, q);
case 'Q':
end_tape(0); /* XXX check results of end tape ?? */
clear_tapelist();
+ detach_buffers(buffers);
amfree(taper_datestamp);
amfree(label);
amfree(errstr);