From 673599ac172be21139e3fda1495f43f737f15117 Mon Sep 17 00:00:00 2001 From: Kern Sibbald Date: Sun, 12 Jan 2003 21:12:59 +0000 Subject: [PATCH] Fix LabelDate and tweaks git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@282 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/src/cats/sql_create.c | 14 +++++++++++--- bacula/src/dird/catreq.c | 3 ++- bacula/src/dird/ua_cmds.c | 1 + bacula/src/lib/btime.c | 5 +++-- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/bacula/src/cats/sql_create.c b/bacula/src/cats/sql_create.c index b2a334b862..739a376451 100644 --- a/bacula/src/cats/sql_create.c +++ b/bacula/src/cats/sql_create.c @@ -225,6 +225,8 @@ db_create_media_record(B_DB *mdb, MEDIA_DBR *mr) { int stat; char ed1[30], ed2[30], ed3[30], ed4[30]; + char dt[MAX_TIME_LENGTH]; + struct tm tm; db_lock(mdb); Mmsg(&mdb->cmd, "SELECT MediaId FROM Media WHERE VolumeName='%s'", @@ -243,10 +245,16 @@ db_create_media_record(B_DB *mdb, MEDIA_DBR *mr) } /* Must create it */ + if (mr->LabelDate) { + localtime_r(&mr->LabelDate, &tm); + strftime(dt, sizeof(dt), "%Y-%m-%d %T", &tm); + } else { + strcpy(dt, "0000-00-00 00:00:00"); + } Mmsg(&mdb->cmd, "INSERT INTO Media (VolumeName,MediaType,PoolId,MaxVolBytes,VolCapacityBytes," -"Recycle,VolRetention,VolUseDuration,VolStatus,Slot) " -"VALUES ('%s','%s',%u,%s,%s,%d,%s,%s,'%s',%d)", +"Recycle,VolRetention,VolUseDuration,VolStatus,LabelDate,Slot) " +"VALUES ('%s','%s',%u,%s,%s,%d,%s,%s,'%s','%s',%d)", mr->VolumeName, mr->MediaType, mr->PoolId, edit_uint64(mr->MaxVolBytes,ed1), @@ -254,7 +262,7 @@ db_create_media_record(B_DB *mdb, MEDIA_DBR *mr) mr->Recycle, edit_uint64(mr->VolRetention, ed3), edit_uint64(mr->VolUseDuration, ed4), - mr->VolStatus, + mr->VolStatus, dt, mr->Slot); Dmsg1(500, "Create Volume: %s\n", mdb->cmd); diff --git a/bacula/src/dird/catreq.c b/bacula/src/dird/catreq.c index e68ef0a259..1c0d6799ea 100644 --- a/bacula/src/dird/catreq.c +++ b/bacula/src/dird/catreq.c @@ -103,6 +103,7 @@ next_volume: Dmsg1(100, "find_recycled_volume2 %d\n", ok); if (!ok) { /* See if we can create a new Volume */ + mr.LabelDate = 0; ok = newVolume(jcr, &mr); } } @@ -222,7 +223,7 @@ next_volume: return; } /* Set first written time if this is first job */ - if (mr.VolJobs == 0) { + if (mr.VolJobs == 0 || sdmr.VolJobs == 1) { mr.FirstWritten = jcr->start_time; /* use Job start time as first write */ } Dmsg2(200, "Update media: BefVolJobs=%u After=%u\n", mr.VolJobs, sdmr.VolJobs); diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index f19e21ff06..af742f86ea 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -1305,6 +1305,7 @@ gotVol: unbash_spaces(mr.VolumeName); unbash_spaces(mr.MediaType); unbash_spaces(pr.Name); + mr.LabelDate = time(NULL); if (ok) { set_pool_dbr_defaults_in_media_dbr(&mr, &pr); if (db_create_media_record(ua->db, &mr)) { diff --git a/bacula/src/lib/btime.c b/bacula/src/lib/btime.c index 77df8f01c4..efdfecc2d7 100644 --- a/bacula/src/lib/btime.c +++ b/bacula/src/lib/btime.c @@ -60,11 +60,12 @@ utime_t str_to_utime(char *str) } if (tm.tm_mon > 0) { tm.tm_mon--; + } else { + return 0; } if (tm.tm_year >= 1900) { - tm.tm_year -= 1900; } else { - tm.tm_year = 0; + return 0; } return (utime_t)mktime(&tm); } -- 2.39.5