Converted "libburn_experimental:" messages of address conversion into "DEBUG"

This commit is contained in:
2006-09-25 10:44:55 +00:00
parent f2c87eae59
commit a27361b3b0
4 changed files with 137 additions and 78 deletions

View File

@ -13,7 +13,11 @@
#include "libburn.h"
#include "drive.h"
#include "transport.h"
/* ts A60925 : obsoleted by libdax_msgs.h
#include "message.h"
*/
#include "debug.h"
#include "init.h"
#include "toc.h"
@ -22,6 +26,9 @@
#include "structure.h"
#include "back_hacks.h"
#include "libdax_msgs.h"
extern struct libdax_msgs *libdax_messenger;
static struct burn_drive drive_array[255];
static int drivetop = -1;
@ -658,6 +665,29 @@ int burn_drive_scan_and_grab(struct burn_drive_info *drive_infos[], char* adr,
return 1;
}
/* ts A60925 */
/** Simple debug message frontend to libdax_msgs_submit().
If arg is not NULL, then fmt MUST contain exactly one %s and no
other sprintf() %-formatters.
*/
int burn_drive_adr_debug_msg(char *fmt, char *arg)
{
int ret;
char msg[4096], *msgpt;
msgpt= msg;
if(arg != NULL)
sprintf(msg, fmt, arg);
else
msgpt= fmt;
if(libdax_messenger == NULL)
return 0;
ret = libdax_msgs_submit(libdax_messenger, -1, 0x00000002,
LIBDAX_MSGS_SEV_DEBUG, LIBDAX_MSGS_PRIO_ZERO,
msgpt, 0, 0);
return ret;
}
/* ts A60923 */
/** Inquire the persistent address of the given drive. */
int burn_drive_raw_get_adr(struct burn_drive *d, char adr[])
@ -691,29 +721,24 @@ int burn_drive_is_enumerable_adr(char *adr)
int burn_drive_resolve_link(char *path, char adr[])
{
int ret;
char link_target[4096];
fprintf(stderr,"libburn experimental: burn_drive_resolve_link( %s )\n",path);
char link_target[4096], msg[4096+100];
burn_drive_adr_debug_msg("burn_drive_resolve_link( %s )",path);
ret = readlink(path, link_target, sizeof(link_target));
if(ret == -1) {
fprintf(stderr,"libburn experimental: readlink( %s ) returns -1\n",path);
burn_drive_adr_debug_msg("readlink( %s ) returns -1", path);
return 0;
}
if(ret >= sizeof(link_target) - 1) {
fprintf(stderr,"libburn experimental: readlink( %s ) returns %d (too much)\n",path,ret);
sprintf(msg,"readlink( %s ) returns %d (too much)", path, ret);
burn_drive_adr_debug_msg(msg, NULL);
return -1;
}
link_target[ret] = 0;
ret = burn_drive_convert_fs_adr(link_target, adr);
fprintf(stderr,"libburn experimental: burn_drive_convert_fs_adr( %s ) returns %d\n",link_target,ret);
sprintf(msg,"burn_drive_convert_fs_adr( %s ) returns %d",
link_target, ret);
burn_drive_adr_debug_msg(msg, NULL);
return ret;
}
@ -721,7 +746,7 @@ fprintf(stderr,"libburn experimental: burn_drive_convert_fs_adr( %s ) returns %d
/* Try to find an enumerated address with the given stat.st_rdev number */
int burn_drive_find_devno(dev_t devno, char adr[])
{
char fname[4096];
char fname[4096], msg[4096+100];
int i, ret = 0, first = 1;
struct stat stbuf;
@ -738,8 +763,9 @@ int burn_drive_find_devno(dev_t devno, char adr[])
if(strlen(fname) >= BURN_DRIVE_ADR_LEN)
return -1;
fprintf(stderr,"libburn experimental: burn_drive_find_devno( 0x%lX ) found %s\n", (long) devno, fname);
sprintf(msg, "burn_drive_find_devno( 0x%lX ) found %s",
(long) devno, fname);
burn_drive_adr_debug_msg(msg, NULL);
strcpy(adr, fname);
return 1;
}
@ -783,12 +809,14 @@ int burn_drive_obtain_scsi_adr(char *path, int *host_no, int *channel_no,
int burn_drive_convert_scsi_adr(int host_no, int channel_no, int target_no,
int lun_no, char adr[])
{
char fname[4096];
char fname[4096],msg[4096+100];
int i, ret = 0, first = 1;
int i_host_no = -1, i_channel_no = -1, i_target_no = -1, i_lun_no = -1;
fprintf(stderr,"libburn experimental: burn_drive_convert_scsi_adr( %d,%d,%d,%d )\n", host_no, channel_no, target_no, lun_no);
sprintf(msg,"burn_drive_convert_scsi_adr( %d,%d,%d,%d )",
host_no, channel_no, target_no, lun_no);
burn_drive_adr_debug_msg(msg, NULL);
while (1) {
ret= sg_give_next_adr(&i, fname, sizeof(fname), first);
@ -809,9 +837,8 @@ fprintf(stderr,"libburn experimental: burn_drive_convert_scsi_adr( %d,%d,%d,%d )
continue;
if(strlen(fname) >= BURN_DRIVE_ADR_LEN)
return -1;
fprintf(stderr,"libburn experimental: burn_drive_convert_scsi_adr() found %s\n", fname);
burn_drive_adr_debug_msg(
"burn_drive_convert_scsi_adr() found %s", fname);
strcpy(adr, fname);
return 1;
}
@ -825,17 +852,19 @@ int burn_drive_find_scsi_equiv(char *path, char adr[])
{
int ret = 0;
int host_no, channel_no, target_no, lun_no;
char msg[4096];
ret = burn_drive_obtain_scsi_adr(path, &host_no, &channel_no,
&target_no, &lun_no);
if(ret <= 0) {
fprintf(stderr,"libburn experimental: burn_drive_obtain_scsi_adr( %s ) returns %d\n", path, ret);
sprintf(msg,"burn_drive_obtain_scsi_adr( %s ) returns %d\n",
path, ret);
burn_drive_adr_debug_msg(msg, NULL);
return 0;
}
fprintf(stderr,"libburn experimental: burn_drive_find_scsi_equiv( %s ) : %d,%d,%d,%d\n", path, host_no, channel_no, target_no, lun_no);
sprintf(msg, "burn_drive_find_scsi_equiv( %s ) : %d,%d,%d,%d\n",
path, host_no, channel_no, target_no, lun_no);
burn_drive_adr_debug_msg(msg, NULL);
ret= burn_drive_convert_scsi_adr(host_no, channel_no, target_no,
lun_no, adr);
@ -850,23 +879,20 @@ int burn_drive_convert_fs_adr(char *path, char adr[])
{
int ret;
struct stat stbuf;
char msg[4096];
fprintf(stderr,"libburn experimental: burn_drive_convert_fs_adr( %s )\n",path);
burn_drive_adr_debug_msg("burn_drive_convert_fs_adr( %s )", path);
if(burn_drive_is_enumerable_adr(path)) {
if(strlen(path) >= BURN_DRIVE_ADR_LEN)
return -1;
fprintf(stderr,"libburn experimental: burn_drive_is_enumerable_adr( %s ) is true\n",path);
burn_drive_adr_debug_msg(
"burn_drive_is_enumerable_adr( %s ) is true", path);
strcpy(adr, path);
return 1;
}
if(lstat(path, &stbuf) == -1) {
fprintf(stderr,"libburn experimental: lstat( %s ) returns -1\n",path);
burn_drive_adr_debug_msg("lstat( %s ) returns -1", path);
return 0;
}
if((stbuf.st_mode & S_IFMT) == S_IFLNK) {
@ -883,9 +909,7 @@ fprintf(stderr,"libburn experimental: lstat( %s ) returns -1\n",path);
if(ret > 0)
return 1;
}
fprintf(stderr,"libburn experimental: Nothing found for %s \n",path);
burn_drive_adr_debug_msg("Nothing found for %s", path);
return 0;
}

View File

@ -38,6 +38,21 @@ int burn_sg_open_o_nonblock = 1;
int burn_sg_open_abort_busy = 0;
/* ts A60925 : ticket 74 */
/** Create the messenger object for libburn. */
int burn_msgs_initialize(void)
{
int ret;
if(libdax_messenger == NULL)
ret = libdax_msgs_new(&libdax_messenger,0);
if (ret <= 0)
return 0;
libdax_msgs_set_severities(libdax_messenger, LIBDAX_MSGS_SEV_NEVER,
LIBDAX_MSGS_SEV_FATAL, "libburn: ", 0);
return 1;
}
/* ts A60924 : ticket 74 : Added use of global libdax_messenger */
int burn_initialize(void)
{
@ -45,14 +60,9 @@ int burn_initialize(void)
if (burn_running)
return 1;
ret = libdax_msgs_new(&libdax_messenger,0);
ret = burn_msgs_initialize();
if (ret <= 0)
return 0;
/* A60924: Apps enable queueing via burn_msgs_set_severities() */
libdax_msgs_set_severities(libdax_messenger, LIBDAX_MSGS_SEV_NEVER,
LIBDAX_MSGS_SEV_FATAL, "libburn: ", 0);
burn_running = 1;
return 1;
}