]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/record.c
Use the command line utility dropdb instead of the psql command
[bacula/bacula] / bacula / src / stored / record.c
index 963749357214315a69707095bb101e27bfdb420e..efe66fa51a4ef9a0c5a9510f69a67afc1550b99b 100644 (file)
@@ -9,7 +9,7 @@
  *
  */
 /*
-   Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
+   Copyright (C) 2000-2003 Kern Sibbald and John Walker
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
@@ -92,12 +92,18 @@ char *stream_to_ascii(int stream, int fi)
        return "UATTR";
     case STREAM_FILE_DATA:
        return "DATA";
+    case STREAM_WIN32_DATA:
+       return "WIN32-DATA";
+    case STREAM_WIN32_GZIP_DATA:
+       return "WIN32-GZIP";
     case STREAM_MD5_SIGNATURE:
        return "MD5";
+    case STREAM_SHA1_SIGNATURE:
+       return "SHA1";
     case STREAM_GZIP_DATA:
        return "GZIP";
-    case STREAM_WIN32_ATTRIBUTES:
-       return "WIN32-ATTR";
+    case STREAM_UNIX_ATTRIBUTES_EX:
+       return "UNIX-ATTR-EX";
     case STREAM_SPARSE_DATA:
        return "SPARSE-DATA";
     case STREAM_SPARSE_GZIP_DATA:
@@ -110,12 +116,18 @@ char *stream_to_ascii(int stream, int fi)
        return "contUATTR";
     case -STREAM_FILE_DATA:
        return "contDATA";
+    case -STREAM_WIN32_DATA:
+       return "contWIN32-DATA";
+    case -STREAM_WIN32_GZIP_DATA:
+       return "contWIN32-GZIP";
     case -STREAM_MD5_SIGNATURE:
        return "contMD5";
+    case -STREAM_SHA1_SIGNATURE:
+       return "contSHA1";
     case -STREAM_GZIP_DATA:
        return "contGZIP";
-    case -STREAM_WIN32_ATTRIBUTES:
-       return "contWIN32-ATTR";
+    case -STREAM_UNIX_ATTRIBUTES_EX:
+       return "contUNIX-ATTR-EX";
     case -STREAM_SPARSE_DATA:
        return "contSPARSE-DATA";
     case -STREAM_SPARSE_GZIP_DATA:
@@ -199,8 +211,8 @@ rem=%d remainder=%d\n",
       if (remlen >= WRITE_RECHDR_LENGTH) {
         ser_begin(block->bufp, WRITE_RECHDR_LENGTH);
         if (BLOCK_VER == 1) {
-        ser_uint32(rec->VolSessionId);
-        ser_uint32(rec->VolSessionTime);
+           ser_uint32(rec->VolSessionId);
+           ser_uint32(rec->VolSessionTime);
         } else {
            block->VolSessionId = rec->VolSessionId;
            block->VolSessionTime = rec->VolSessionTime;
@@ -213,6 +225,13 @@ rem=%d remainder=%d\n",
         block->binbuf += WRITE_RECHDR_LENGTH;
         remlen -= WRITE_RECHDR_LENGTH;
         rec->remainder = rec->data_len;
+        if (rec->FileIndex > 0) {
+           /* If data record, update what we have in this block */
+           if (block->FirstIndex == 0) {
+              block->FirstIndex = rec->FileIndex;
+           }
+           block->LastIndex = rec->FileIndex;
+        }
       } else {
         rec->remainder = rec->data_len + WRITE_RECHDR_LENGTH;
         return 0;
@@ -235,8 +254,8 @@ rem=%d remainder=%d\n",
        */
       ser_begin(block->bufp, WRITE_RECHDR_LENGTH);
       if (BLOCK_VER == 1) {
-      ser_uint32(rec->VolSessionId);
-      ser_uint32(rec->VolSessionTime);
+        ser_uint32(rec->VolSessionId);
+        ser_uint32(rec->VolSessionTime);
       } else {
         block->VolSessionId = rec->VolSessionId;
         block->VolSessionTime = rec->VolSessionTime;
@@ -257,6 +276,13 @@ rem=%d remainder=%d\n",
       block->bufp += WRITE_RECHDR_LENGTH;
       block->binbuf += WRITE_RECHDR_LENGTH;
       remlen -= WRITE_RECHDR_LENGTH;
+      if (rec->FileIndex > 0) {
+        /* If data record, update what we have in this block */
+        if (block->FirstIndex == 0) {
+           block->FirstIndex = rec->FileIndex;
+        }
+        block->LastIndex = rec->FileIndex;
+      }
    }
    if (remlen == 0) {
       return 0;                      /* partial transfer */
@@ -381,8 +407,8 @@ int read_record_from_block(DEV_BLOCK *block, DEV_RECORD *rec)
 
       unser_begin(block->bufp, WRITE_RECHDR_LENGTH);
       if (block->BlockVer == 1) {
-      unser_uint32(VolSessionId);
-      unser_uint32(VolSessionTime);
+        unser_uint32(VolSessionId);
+        unser_uint32(VolSessionTime);
       } else {
         VolSessionId = block->VolSessionId;
         VolSessionTime = block->VolSessionTime;
@@ -425,9 +451,15 @@ int read_record_from_block(DEV_BLOCK *block, DEV_RECORD *rec)
       rec->VolSessionId = VolSessionId;
       rec->VolSessionTime = VolSessionTime;
       rec->FileIndex = FileIndex;
+      if (FileIndex > 0) {
+        if (block->FirstIndex == 0) {
+           block->FirstIndex = FileIndex;
+        }
+        block->LastIndex = FileIndex;
+      }
 
-      Dmsg6(100, "rd_rec_blk() got FI=%s SessId=%d Strm=%s len=%u\n\
-remlen=%d data_len=%d\n",
+      Dmsg6(100, "rd_rec_blk() got FI=%s SessId=%d Strm=%s len=%u\n"
+                 "remlen=%d data_len=%d\n",
         FI_to_ascii(rec->FileIndex), rec->VolSessionId, 
         stream_to_ascii(rec->Stream, rec->FileIndex), data_bytes, remlen, 
         rec->data_len);