dev_name(dev), VolName);
if (dev->state & ST_LABEL) { /* did we already read label? */
- /* Compare Volume Names */
- if (VolName && *VolName && strcmp(dev->VolHdr.VolName, VolName) != 0) {
+ /* Compare Volume Names allow special wild card */
+ if (VolName && *VolName && *VolName != '*' && strcmp(dev->VolHdr.VolName, VolName) != 0) {
Mmsg(&jcr->errmsg, _("Volume name mismatch on device %s: Wanted %s got %s\n"),
dev_name(dev), VolName, dev->VolHdr.VolName);
/*
}
free_record(record);
- empty_block(block);
- rewind_dev(dev);
+ /* If we are a streaming device, we only get one chance to read */
+ if (!dev_cap(dev, CAP_STREAM)) {
+ empty_block(block);
+ rewind_dev(dev);
+ }
if (dev->VolHdr.VerNum != BaculaTapeVersion &&
dev->VolHdr.VerNum != OldCompatibleBaculaTapeVersion1 &&
/* Compare Volume Names */
Dmsg2(30, "Compare Vol names: VolName=%s hdr=%s\n", VolName?VolName:"*", dev->VolHdr.VolName);
- if (VolName && *VolName && strcmp(dev->VolHdr.VolName, VolName) != 0) {
+ if (VolName && *VolName && *VolName != '*' && strcmp(dev->VolHdr.VolName, VolName) != 0) {
Mmsg(&jcr->errmsg, _("Volume name mismatch. Wanted %s got %s\n"),
VolName, dev->VolHdr.VolName);
/*
dev->VolHdr.HostName[0] = 0;
}
bstrncpy(dev->VolHdr.LabelProg, my_name, sizeof(dev->VolHdr.LabelProg));
- sprintf(dev->VolHdr.ProgVersion, "Ver. %s %s", VERSION, DATE);
+ sprintf(dev->VolHdr.ProgVersion, "Ver. %s %s", VERSION, BDATE);
sprintf(dev->VolHdr.ProgDate, "Build %s %s", __DATE__, __TIME__);
dev->state |= ST_LABEL; /* set has Bacula label */
if (debug_level >= 90) {