From a92aa1f8a0d7b7cad118f05abac4113b81f2ff2e Mon Sep 17 00:00:00 2001 From: Thomas Schmitt Date: Fri, 23 Sep 2011 13:18:11 +0000 Subject: [PATCH] Improved error message if xorriso shall open a vanished udev link --- libisoburn/trunk/xorriso/drive_mgt.c | 19 +++++++++++++------ libisoburn/trunk/xorriso/xorriso_timestamp.h | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/libisoburn/trunk/xorriso/drive_mgt.c b/libisoburn/trunk/xorriso/drive_mgt.c index e97b8e24..7753d363 100644 --- a/libisoburn/trunk/xorriso/drive_mgt.c +++ b/libisoburn/trunk/xorriso/drive_mgt.c @@ -48,9 +48,10 @@ static const char *un0(const char *text) int Xorriso_auto_driveadr(struct XorrisO *xorriso, char *adr, char *result, int flag) { - int ret, is_known_mmc= 0; + int ret, is_known_mmc= 0, does_exist= 0; char *path_pt, *libburn_adr= NULL; char *abs_pt, *abs_adr= NULL; + struct stat stbuf; Xorriso_alloc_meM(libburn_adr, char, BURN_DRIVE_ADR_LEN + SfileadrL); Xorriso_alloc_meM(abs_adr, char, SfileadrL); @@ -77,6 +78,7 @@ int Xorriso_auto_driveadr(struct XorrisO *xorriso, char *adr, char *result, } is_known_mmc= burn_drive_convert_fs_adr(path_pt, libburn_adr); + does_exist= (stat(path_pt, &stbuf) != -1); Xorriso_process_msg_queues(xorriso,0); ret= Xorriso_is_in_patternlist(xorriso, xorriso->drive_whitelist, path_pt, 0); @@ -106,15 +108,20 @@ int Xorriso_auto_driveadr(struct XorrisO *xorriso, char *adr, char *result, if(ret) { strcpy(xorriso->info_text, "Drive address "); Text_shellsafe(adr, xorriso->info_text, 1); - strcat(xorriso->info_text, - " rejected because: not MMC and -drive_class 'risky' "); + strcat(xorriso->info_text, " rejected because: "); + if(does_exist) + strcat(xorriso->info_text, "not MMC"); + else + strcat(xorriso->info_text, "not existing"); + strcat(xorriso->info_text, " and -drive_class 'risky' "); Text_shellsafe(Xorriso_get_pattern(xorriso,xorriso->drive_greylist, ret - 1, 0), xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0); - Xorriso_msgs_submit(xorriso, 0, - "If the address is a legitimate target, prepend \"stdio:\"", - 0, "HINT", 0); + sprintf(xorriso->info_text, + "If the address is a legitimate %s, prepend \"stdio:\"", + does_exist ? "target" : "address for a new regular file"); + Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "HINT", 0); {ret= 0; goto ex;} } } diff --git a/libisoburn/trunk/xorriso/xorriso_timestamp.h b/libisoburn/trunk/xorriso/xorriso_timestamp.h index 714d2981..5afaf40f 100644 --- a/libisoburn/trunk/xorriso/xorriso_timestamp.h +++ b/libisoburn/trunk/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.09.22.142118" +#define Xorriso_timestamP "2011.09.23.131734"