#ifndef lint
-static char rcsid[] = "$Id: chg-scsi.c,v 1.6.2.22.2.7.2.9 2003/07/05 16:59:01 ant Exp $";
+static char rcsid[] = "$Id: chg-scsi.c,v 1.44 2006/03/09 20:06:10 johnfranks Exp $";
#endif
/*
*
strcpy(plabelv2->barcode, result->data.barcode);
fwrite(plabelv2, 1, sizeof(LabelV2_T), fp);
fclose(fp);
+ free(plabelv2);
return(1);
}
break;
{
DebugPrint(DEBUG_INFO,SECTION_MAP_BARCODE,"MapBarCode FIND_SLOT : \n");
memcpy(&(result->data), plabelv2, sizeof(LabelV2_T));
+ free(plabelv2);
return(1);
}
break;
plabelv2->LoadCount = plabelv2->LoadCount + result->data.LoadCount;
fwrite(plabelv2, 1, sizeof(LabelV2_T), fp);
fclose(fp);
+ free(plabelv2);
return(1);
}
break;
fclose(fp);
memcpy(&(result->data), plabelv2, sizeof(LabelV2_T));
+ free(plabelv2);
return(1);
}
break;
fclose(fp);
memcpy(&(result->data), plabelv2, sizeof(LabelV2_T));
+ free(plabelv2);
return(1);
}
break;
plabelv2->slot = result->data.slot;
fwrite(plabelv2, 1, sizeof(LabelV2_T), fp);
fclose(fp);
+ free(plabelv2);
return(1);
- }
+ }
/*
* If we hit this point nothing was
* found, so return an 0
*/
fclose(fp);
+ free(plabelv2);
return(0);
}
char *clean_file=NULL;
char *time_file=NULL;
- char *ptr; /* a public pointer .... */
/*
* For the emubarcode stuff
*/
chg.device = NULL;
chg.labelfile = NULL;
chg.conf = NULL;
- chg.debuglevel = NULL;
#ifdef CHG_SCSI_STANDALONE
printf("Ups standalone\n");
#else
set_pname("chg-scsi");
+
+ /* Don't die when child closes pipe */
+ signal(SIGPIPE, SIG_IGN);
+
dbopen();
dbprintf(("chg-scsi: %s\n",rcsid));
memset(pDev, 0, sizeof(OpenFiles_T) * CHG_MAXDEV );
- if ((ptr=getenv("CHG_DEBUG")) != NULL)
- {
- chg.debuglevel = strdup(ptr);
- }
-
switch(com.command_code)
{
case COM_SCAN:
break;
case COM_LABEL: /* Update BarCode/Label mapping file */
pbarcoderes->action = BARCODE_PUT;
+ pbarcoderes->data.from = pbarcoderes->data.slot = get_current_slot(slot_file);
strcpy(pbarcoderes->data.voltag, com.parameter);
- strcpy( pbarcoderes->data.barcode, pDTE[drive_num].VolTag);
+ if (BarCode(fd) == 1 && emubarcode != 1)
+ {
+ strcpy( pbarcoderes->data.barcode, pDTE[drive_num].VolTag);
+ } else {
+ strcpy( pbarcoderes->data.barcode, com.parameter);
+ }
MapBarCode(chg.labelfile, pbarcoderes);
printf("0 0 0\n");
break;
printf("%d %d 1", loaded, use_slots);
- if (BarCode(fd) == 1 || emubarcode == 1 || chg.havebarcode == 1)
+ if (BarCode(fd) == 1 || emubarcode == 1)
{
printf(" 1\n");
} else {