X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fstored%2Fread.c;h=6f2c5b01c3cb0b50b939e4a5eed53ac55913a6b3;hb=225546018b76820eec2005e861c7908d0cec9642;hp=b6f5525c07eea1215cb05fa3bea84c97aad21107;hpb=23c55b380190e7156fe17d98dea99d396a862bc8;p=bacula%2Fbacula diff --git a/bacula/src/stored/read.c b/bacula/src/stored/read.c index b6f5525c07..6f2c5b01c3 100644 --- a/bacula/src/stored/read.c +++ b/bacula/src/stored/read.c @@ -6,24 +6,32 @@ * Version $Id$ */ /* - Copyright (C) 2000-2005 Kern Sibbald + Bacula® - The Network Backup Solution - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of - the License, or (at your option) any later version. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of + The main author of Bacula is Kern Sibbald, with contributions from + many others, a complete list can be found in the file AUTHORS. + This program is Free Software; you can redistribute it and/or + modify it under the terms of version two of the GNU General Public + License as published by the Free Software Foundation plus additions + that are listed in the file LICENSE. + + This program is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - You should have received a copy of the GNU General Public - License along with this program; if not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, - MA 02111-1307, USA. + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. - */ + Bacula® is a registered trademark of John Walker. + The licensor of Bacula is the Free Software Foundation Europe + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. +*/ #include "bacula.h" #include "stored.h" @@ -40,13 +48,13 @@ static char rec_header[] = "rechdr %ld %ld %ld %ld %ld"; /* * Read Data and send to File Daemon * Returns: false on failure - * true on success + * true on success */ bool do_read_data(JCR *jcr) { BSOCK *fd = jcr->file_bsock; bool ok = true; - DCR *dcr = jcr->dcr; + DCR *dcr = jcr->read_dcr; Dmsg0(20, "Start read data.\n"); @@ -55,20 +63,20 @@ bool do_read_data(JCR *jcr) } - create_vol_list(jcr); - if (jcr->NumVolumes == 0) { + create_restore_volume_list(jcr); + if (jcr->NumReadVolumes == 0) { Jmsg(jcr, M_FATAL, 0, _("No Volume names found for restore.\n")); - free_vol_list(jcr); + free_restore_volume_list(jcr); bnet_fsend(fd, FD_error); return false; } - Dmsg2(200, "Found %d volumes names to restore. First=%s\n", jcr->NumVolumes, + Dmsg2(200, "Found %d volumes names to restore. First=%s\n", jcr->NumReadVolumes, jcr->VolList->VolumeName); /* Ready device for reading */ - if (!acquire_device_for_read(jcr, dcr->dev)) { - free_vol_list(jcr); + if (!acquire_device_for_read(dcr)) { + free_restore_volume_list(jcr); bnet_fsend(fd, FD_error); return false; } @@ -80,11 +88,11 @@ bool do_read_data(JCR *jcr) /* Send end of data to FD */ bnet_sig(fd, BNET_EOD); - if (!release_device(dcr)) { + if (!release_device(jcr->read_dcr)) { ok = false; } - free_vol_list(jcr); + free_restore_volume_list(jcr); Dmsg0(30, "Done reading.\n"); return ok; } @@ -92,7 +100,7 @@ bool do_read_data(JCR *jcr) /* * Called here for each record from read_records() * Returns: true if OK - * false if error + * false if error */ static bool record_cb(DCR *dcr, DEV_RECORD *rec) { @@ -104,34 +112,34 @@ static bool record_cb(DCR *dcr, DEV_RECORD *rec) if (rec->FileIndex < 0) { return true; } - Dmsg5(100, "Send to FD: SessId=%u SessTim=%u FI=%d Strm=%d, len=%d\n", + Dmsg5(400, "Send to FD: SessId=%u SessTim=%u FI=%d Strm=%d, len=%d\n", rec->VolSessionId, rec->VolSessionTime, rec->FileIndex, rec->Stream, rec->data_len); /* Send record header to File daemon */ if (!bnet_fsend(fd, rec_header, rec->VolSessionId, rec->VolSessionTime, - rec->FileIndex, rec->Stream, rec->data_len)) { - Dmsg1(30, ">filed: Error Hdr=%s\n", fd->msg); + rec->FileIndex, rec->Stream, rec->data_len)) { + Pmsg1(000, _(">filed: Error Hdr=%s\n"), fd->msg); Jmsg1(jcr, M_FATAL, 0, _("Error sending to File daemon. ERR=%s\n"), - bnet_strerror(fd)); + bnet_strerror(fd)); return false; } else { - Dmsg1(31, ">filed: Hdr=%s\n", fd->msg); + Dmsg1(400, ">filed: Hdr=%s\n", fd->msg); } /* Send data record to File daemon */ - save_msg = fd->msg; /* save fd message pointer */ - fd->msg = rec->data; /* pass data directly to bnet_send */ + save_msg = fd->msg; /* save fd message pointer */ + fd->msg = rec->data; /* pass data directly to bnet_send */ fd->msglen = rec->data_len; - Dmsg1(31, ">filed: send %d bytes data.\n", fd->msglen); + Dmsg1(400, ">filed: send %d bytes data.\n", fd->msglen); if (!bnet_send(fd)) { - Pmsg1(000, "Error sending to FD. ERR=%s\n", bnet_strerror(fd)); + Pmsg1(000, _("Error sending to FD. ERR=%s\n"), bnet_strerror(fd)); Jmsg1(jcr, M_FATAL, 0, _("Error sending to File daemon. ERR=%s\n"), - bnet_strerror(fd)); + bnet_strerror(fd)); ok = false; } - fd->msg = save_msg; /* restore fd message pointer */ + fd->msg = save_msg; /* restore fd message pointer */ return ok; }