|
|
|
@ -2702,8 +2702,9 @@ static void Xorriso_report_lines(struct XorrisO *xorriso,
|
|
|
|
|
int Xorriso_report_system_area(struct XorrisO *xorriso, char *form, int flag) |
|
|
|
|
{ |
|
|
|
|
int ret, line_count, cmd_count= 0, et_line_count= 0, sa_line_count= 0; |
|
|
|
|
int do_cmd= 0, as_mkisofs= 0, i; |
|
|
|
|
int do_cmd= 0, as_mkisofs= 0, i, bin_count; |
|
|
|
|
char **lines = NULL, **et_lines= NULL, **sa_lines= NULL, **cmds= NULL; |
|
|
|
|
uint8_t guid[16]; |
|
|
|
|
IsoImage *image; |
|
|
|
|
|
|
|
|
|
if(strcmp(form, "cmd") == 0 || strcmp(form, "as_mkisofs") == 0 || (flag & 2)) |
|
|
|
@ -2763,6 +2764,28 @@ int Xorriso_report_system_area(struct XorrisO *xorriso, char *form, int flag)
|
|
|
|
|
Xorriso_result(xorriso,0); |
|
|
|
|
goto ex; |
|
|
|
|
|
|
|
|
|
} else if(strcmp(form, "gpt_disk_guid") == 0 && !(flag & 1)) { |
|
|
|
|
ret= Xorriso_get_volume(xorriso, &image, 0); |
|
|
|
|
if(ret <= 0) |
|
|
|
|
goto ex; |
|
|
|
|
ret= iso_image_report_system_area(image, &sa_lines, &sa_line_count, 0); |
|
|
|
|
if(ret <= 0) |
|
|
|
|
goto ex; |
|
|
|
|
for(i= 0; i < sa_line_count; i++) { |
|
|
|
|
if(strncmp(sa_lines[i], "GPT disk GUID : ", 26) == 0) { |
|
|
|
|
ret= Hex_to_bin(sa_lines[i] + 26, 16, &bin_count, guid, 0); |
|
|
|
|
if(ret < 0 || bin_count != 16) |
|
|
|
|
break; |
|
|
|
|
Xorriso_format_guid(xorriso, guid, xorriso->result_line, 0); |
|
|
|
|
strcat(xorriso->result_line, "\n"); |
|
|
|
|
Xorriso_result(xorriso,0); |
|
|
|
|
ret= 1; |
|
|
|
|
goto ex; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
ret= 1; |
|
|
|
|
goto ex; |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
sprintf(xorriso->info_text, |
|
|
|
|
"%s form parameter not recognized: ", |
|
|
|
|