]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/filed/job.c
Tweak comments + indenting
[bacula/bacula] / bacula / src / filed / job.c
index 803a0802853069601b9c3ddaa8c0e11c1e30229f..4a224cd68f9591969de13dece0780ee4c9943ff8 100644 (file)
@@ -624,17 +624,21 @@ static int restore_object_cmd(JCR *jcr)
 {
    BSOCK *dir = jcr->dir_bsock;
    POOLMEM *msg = get_memory(dir->msglen+1);
-   uint32_t JobId;
-   int32_t object_len, object_index, object_type, FileIndex;
+   int32_t FileIndex;
+   restore_object_pkt rop;
 
+   memset(&rop, 0, sizeof(rop));
+   rop.pkt_size = sizeof(rop);
+   rop.pkt_end = sizeof(rop);
    Dmsg1(100, "Enter restoreobject_cmd: %s", dir->msg);
    if (strcmp(dir->msg, endrestoreobjectcmd) == 0) {
+      generate_plugin_event(jcr, bEventRestoreObject, NULL);
       free_memory(msg);
       return dir->fsend(OKRestoreObject);
    }
 
-   if (sscanf(dir->msg, restoreobjcmd, &JobId, &object_len, &object_index
-              &object_type, &FileIndex) != 5) {
+   if (sscanf(dir->msg, restoreobjcmd, &rop.JobId, &rop.object_len
+              &rop.object_index, &rop.object_type, &FileIndex) != 5) {
       Dmsg0(5, "Bad restore object command\n");
       pm_strcpy(jcr->errmsg, dir->msg);
       Jmsg1(jcr, M_FATAL, 0, _("Bad RestoreObject command: %s\n"), jcr->errmsg);
@@ -643,24 +647,32 @@ static int restore_object_cmd(JCR *jcr)
 
 // Dmsg5(000, "Recv object: JobId=%u objlen=%d objinx=%d objtype=%d FI=%d\n",
 //       JobId, object_len, object_index, object_type, FileIndex);
-   /* Read Fname */
+   /* Read Object name */
    if (dir->recv() < 0) {
       goto bail_out;
    }
-// Dmsg2(000, "Recv Fname object: len=%d Fname=%s\n", dir->msglen, dir->msg);
+// Dmsg2(000, "Recv Fname object: len=%d Oname=%s\n", dir->msglen, dir->msg);
+   rop.object_name = bstrdup(dir->msg);
 
-   /* Read Path */
-   if (dir->recv() < 0) {
-      goto bail_out;
-   }
 // Dmsg2(000, "Recv Path object: len=%d Path=%s\n", dir->msglen, dir->msg);
 
    /* Read Object */
    if (dir->recv() < 0) {
       goto bail_out;
    }
+   rop.object = dir->msg;
 // Dmsg2(000, "Recv Object: len=%d Object=%s\n", dir->msglen, dir->msg);
 
+   /* pass to plugin */
+   generate_plugin_event(jcr, bEventRestoreObject, (void *)&rop);
+
+   if (rop.object_name) {
+      free(rop.object_name);
+   }
+   if (!rop.object) {
+      dir->msg = get_pool_memory(PM_MESSAGE);
+   }
+
    free_memory(msg);
    Dmsg1(100, "Send: %s", OKRestoreObject);
    return 1;
@@ -1748,20 +1760,7 @@ static int backup_cmd(JCR *jcr)
 
 cleanup:
 #if defined(WIN32_VSS)
-   /* STOP VSS ON WIN32 */
-   /* tell vss to close the backup session */
    if (jcr->VSS) {
-      if (g_pVSSClient->CloseBackup()) {             
-         /* inform user about writer states */
-         for (int i=0; i<(int)g_pVSSClient->GetWriterCount(); i++) {
-            int msg_type = M_INFO;
-            if (g_pVSSClient->GetWriterState(i) < 1) {
-               msg_type = M_WARNING;
-               jcr->JobErrors++;
-            }
-            Jmsg(jcr, msg_type, 0, _("VSS Writer (BackupComplete): %s\n"), g_pVSSClient->GetWriterInfo(i));
-         }
-      }
       Win32ConvCleanupCache();
       V(vss_mutex);
    }
@@ -1851,8 +1850,7 @@ static int verify_cmd(JCR *jcr)
 #ifdef WIN32_VSS
 static bool vss_restore_init_callback(JCR *jcr, int init_type)
 {
-   switch (init_type)
-   {
+   switch (init_type) {
    case VSS_INIT_RESTORE_AFTER_INIT:
       generate_plugin_event(jcr, bEventVssRestoreLoadComponentMetadata);
       return true;