stopmysql
 console.log
 console.sum
+zapall
+zaptapes
 
 - Figure out how to use ssh or stunnel to protect Bacula communications.
 
 For 1.31 release:
+- lstat() is not going to work on Win32 for testing date.
+- Implement a Recycle command
 - Something is not right in last block of fill command.
 - Check this below from Phil.
   > When the job was done, Bacula reported 11084 files restored:
   user had re-linked the file between the backup and the restore.
   Do lstat() to see if it is already properly linked.
   Same for symlinked file.
-- Remove the Jmsg() in sql_find.c:102 or only print on hard error.
+  Make sure ifnewer, ifolder, never, ... apply correctly.
 - Implement List Volume Job=xxx  or List scheduled volumes or
   Status Director 
 - Instrument use_count on DEVICE packets and ensure that the device is
   It doesnt show the last 20 jobs , but some older ones.
 - Fix Verify VolumeToCatalog to use BSRs -- it is broken.
 - Implement Release Storage=xxx
+- Fix restore on Win95/98  
+- Remove the Jmsg() in sql_find.c:102 or only print on hard error.
 
 bacula.desktop.gnome2
 console
 gconsole
+mtx-changer
 
 /* Stream definitions.  Once defined these must NEVER
  *   change as they go on the storage media.
  */
-#define STREAM_UNIX_ATTRIBUTES   1    /* Generic Unix attributes */
-#define STREAM_FILE_DATA         2    /* Standard uncompressed data */
-#define STREAM_MD5_SIGNATURE     3    /* MD5 signature for the file */
-#define STREAM_GZIP_DATA         4    /* GZip compressed file data */
-#define STREAM_WIN32_ATTRIBUTES  5    /* Windows attributes (superset of Unix) */
-#define STREAM_SPARSE_DATA       6    /* Sparse data stream */
-#define STREAM_SPARSE_GZIP_DATA  7
-#define STREAM_PROGRAM_NAMES     8    /* program names for program data */
-#define STREAM_PROGRAM_DATA      9    /* Data needing program */
-#define STREAM_SHA1_SIGNATURE   10    /* SHA1 signature for the file */
-#define STREAM_WIN32_DATA       11    /* Win32 BackupRead data */
-#define STREAM_WIN32_GZIP_DATA  12    /* Gzipped Win32 BackupRead data */
+#define STREAM_UNIX_ATTRIBUTES    1    /* Generic Unix attributes */
+#define STREAM_FILE_DATA          2    /* Standard uncompressed data */
+#define STREAM_MD5_SIGNATURE      3    /* MD5 signature for the file */
+#define STREAM_GZIP_DATA          4    /* GZip compressed file data */
+#define STREAM_UNIX_ATTRIBUTES_EX 5    /* Extended Unix attr. Win32Ex/FreeBSD */
+#define STREAM_SPARSE_DATA        6    /* Sparse data stream */
+#define STREAM_SPARSE_GZIP_DATA   7
+#define STREAM_PROGRAM_NAMES      8    /* program names for program data */
+#define STREAM_PROGRAM_DATA       9    /* Data needing program */
+#define STREAM_SHA1_SIGNATURE    10    /* SHA1 signature for the file */
+#define STREAM_WIN32_DATA        11    /* Win32 BackupRead data */
+#define STREAM_WIN32_GZIP_DATA   12    /* Gzipped Win32 BackupRead data */
 
 /*
  * Internal code for Signature types
 
    /*
     * Make sure we have an acceptable attributes record.
     */
-   if (!(ar->Stream == STREAM_UNIX_ATTRIBUTES || ar->Stream == STREAM_WIN32_ATTRIBUTES)) {
+   if (!(ar->Stream == STREAM_UNIX_ATTRIBUTES || 
+        ar->Stream == STREAM_UNIX_ATTRIBUTES_EX)) {
       Mmsg0(&mdb->errmsg, _("Attempt to put non-attributes into catalog\n"));
       Jmsg(jcr, M_ERROR, 0, "%s", mdb->errmsg);
       return 0;
 
 /* Commands sent to File daemon */
 static char backupcmd[] = "backup\n";
 static char storaddr[]  = "storage address=%s port=%d ssl=%d\n";
-static char levelcmd[]  = "level = %s%s\n";
+static char levelcmd[]  = "level = %s%s mtime_only=%d\n";
 
 /* Responses received from File daemon */
 static char OKbackup[]   = "2000 OK backup\n";
     */
    switch (jcr->JobLevel) {
       case L_BASE:
-         bnet_fsend(fd, levelcmd, "base", " ");
+         bnet_fsend(fd, levelcmd, "base", " ", 0);
         break;
       case L_FULL:
-         bnet_fsend(fd, levelcmd, "full", " ");
+         bnet_fsend(fd, levelcmd, "full", " ", 0);
         break;
       case L_DIFFERENTIAL:
       case L_INCREMENTAL:
-         bnet_fsend(fd, levelcmd, "since ", jcr->stime);
+         bnet_fsend(fd, levelcmd, "since ", jcr->stime, 0);
         free_pool_memory(jcr->stime);
         jcr->stime = NULL;
         break;
 
    Dmsg5(99, "UpdCat VolSessId=%d VolSessT=%d FI=%d Strm=%d data_len=%d\n",
       VolSessionId, VolSessionTime, FileIndex, Stream, data_len);
 
-   if (Stream == STREAM_UNIX_ATTRIBUTES || Stream == STREAM_WIN32_ATTRIBUTES) {
+   if (Stream == STREAM_UNIX_ATTRIBUTES || Stream == STREAM_UNIX_ATTRIBUTES_EX) {
       skip_nonspaces(&p);            /* skip FileIndex */
       skip_spaces(&p);
       skip_nonspaces(&p);            /* skip FileType */
 
                            catalog->db_password, catalog->db_address,
                            catalog->db_port, catalog->db_socket);
         if (!db_open_database(NULL, db)) {
-            Jmsg(NULL, M_FATAL, 0, _("Could not open database \"%s\".\n"),
-                catalog->db_name);
+            Jmsg(NULL, M_FATAL, 0, _("Could not open %s database \"%s\".\n"),
+                catalog_db, catalog->db_name);
            OK = FALSE;
         } else {
            /* If a pool is defined for this job, create the pool DB       
 
       *fn = *p++;                    /* term filename and point to attribs */
       attr = p;
 
-      if (stream == STREAM_UNIX_ATTRIBUTES || stream == STREAM_WIN32_ATTRIBUTES) {
+      if (stream == STREAM_UNIX_ATTRIBUTES || stream == STREAM_UNIX_ATTRIBUTES_EX) {
         jcr->JobFiles++;
         jcr->FileIndex = file_index;
         ar.attr = attr;
 
       /*
        * Got attributes stream, decode it
        */
-      if (stream == STREAM_UNIX_ATTRIBUTES || stream == STREAM_WIN32_ATTRIBUTES) {
+      if (stream == STREAM_UNIX_ATTRIBUTES || stream == STREAM_UNIX_ATTRIBUTES_EX) {
         uint32_t LinkFIf, LinkFIc;
          Dmsg2(400, "file_index=%d attr=%s\n", file_index, attr);
         jcr->JobFiles++;
 
    /*********FIXME********* add missing files and files to be retried */
    int incremental;                   /* set if incremental for SINCE */
    time_t mtime;                      /* begin time for SINCE */
+   int mtime_only;                    /* compare only mtime and not ctime as well */
    int mode;                          /* manual/auto run */
    int status;                        /* job status */
    long Ticket;                       /* Ticket */