Some more filter rules for Xorriso_sieve_big
This commit is contained in:
parent
641de03c01
commit
db6e65dde8
@ -1625,7 +1625,7 @@ int Xorriso_sieve_get_result(struct XorrisO *xorriso, char *name,
|
|||||||
continue;
|
continue;
|
||||||
*available= f->num_results - f->num_delivered;
|
*available= f->num_results - f->num_delivered;
|
||||||
if(*available <= 0)
|
if(*available <= 0)
|
||||||
break;
|
return(0);
|
||||||
if(flag & 2)
|
if(flag & 2)
|
||||||
return(1);
|
return(1);
|
||||||
|
|
||||||
@ -1672,7 +1672,7 @@ int Xorriso_sieve_get_result(struct XorrisO *xorriso, char *name,
|
|||||||
(*available)--;
|
(*available)--;
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
return(0);
|
return(-2);
|
||||||
no_mem:
|
no_mem:
|
||||||
if(*argv != NULL)
|
if(*argv != NULL)
|
||||||
Xorriso__dispose_words(argc, argv);
|
Xorriso__dispose_words(argc, argv);
|
||||||
@ -1790,27 +1790,33 @@ int Xorriso_sieve_big(struct XorrisO *xorriso, int flag)
|
|||||||
{ 0, -1, -1, -1, -1, -1}, 1, 1},
|
{ 0, -1, -1, -1, -1, -1}, 1, 1},
|
||||||
{"libisoburn in use :", 3, "libisoburn in use :", ", ", 2,
|
{"libisoburn in use :", 3, "libisoburn in use :", ", ", 2,
|
||||||
{ 0, 1, -1, -1, -1, -1}, 1, 1},
|
{ 0, 1, -1, -1, -1, -1}, 1, 1},
|
||||||
|
{"File damaged :", 3, "File damaged :", "", 4, { 0, 2, 4, 6, -1, -1},
|
||||||
|
10000, 0},
|
||||||
|
{"File data lba:", 3, "File data lba:", "", 5, { 0, 2, 4, 6, 8, -1},
|
||||||
|
10000, 0},
|
||||||
|
{"MD5 MISMATCH:", 3, "MD5 MISMATCH:", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||||
|
10000, 0},
|
||||||
|
{"Size lower :", 3, "Size lower :", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||||
|
1, 0},
|
||||||
|
{"Size upper :", 3, "Size upper :", "", 1, { 0, -1, -1, -1, -1, -1},
|
||||||
|
1, 0},
|
||||||
{"@", 0, "@", "", 0, {-1, -1, -1, -1, -1, -1}, 0, 0}
|
{"@", 0, "@", "", 0, {-1, -1, -1, -1, -1, -1}, 0, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Problem cases:
|
/* >>> Problem cases:
|
||||||
<<<
|
|
||||||
-devices -device_links
|
-devices -device_links
|
||||||
have no well recognizable prefix
|
have no well recognizable prefix
|
||||||
|
|
||||||
-pwd -pwdx
|
-pwd -pwdx
|
||||||
have a headline and a value line
|
have a headline and a value line
|
||||||
|
-> outlist stack
|
||||||
|
|
||||||
-ls* , -getfacl* , -getfattr* , -du* , -compare* , -show_stream*
|
-ls* , -getfacl* , -getfattr* , -du* , -compare* , -show_stream*
|
||||||
have no well recognizable prefix
|
have no well recognizable prefix
|
||||||
|
-> outlist stack
|
||||||
Todo:
|
|
||||||
-find -exec
|
|
||||||
report_damage report_lba getfacl getfattr get_any_xattr list_extattr
|
|
||||||
get_md5 check_md5 get_hfs_crtp get_hfs_bless show_stream estimate_size
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
struct Xorriso_sieve_big_filteR *f;
|
struct Xorriso_sieve_big_filteR *f;
|
||||||
int ret, i, num_filters= 1000;
|
int ret, i, num_filters= 1000;
|
||||||
|
|
||||||
|
@ -583,15 +583,16 @@ int Xorriso_process_errfile(struct XorrisO *xorriso,
|
|||||||
int flag);
|
int flag);
|
||||||
|
|
||||||
|
|
||||||
/* -------------------- Message output evaluation API -------------------- */
|
/*
|
||||||
|
Message output evaluation
|
||||||
|
|
||||||
/* xorriso is basically a dialog software which reacts on commands by
|
xorriso is basically a dialog software which reacts on commands by
|
||||||
side effects and by messages. The side effects manipulate the state of
|
side effects and by messages. The side effects manipulate the state of
|
||||||
the ISO image model and of drives. This state can be inquired by commands
|
the ISO image model and of drives. This state can be inquired by commands
|
||||||
which emit messages.
|
which emit messages.
|
||||||
|
|
||||||
There are several API approaches how a program can receive and use the
|
There are several approaches how a program that uses xorriso via this API
|
||||||
message output of xorriso.
|
can receive and use the message output of xorriso.
|
||||||
|
|
||||||
- The message sieve may be programmed to pick certain information snippets
|
- The message sieve may be programmed to pick certain information snippets
|
||||||
out of the visible message stream. This covers all messages on the
|
out of the visible message stream. This covers all messages on the
|
||||||
@ -611,17 +612,27 @@ int Xorriso_process_errfile(struct XorrisO *xorriso,
|
|||||||
All interpretation of the messages has to be done by the user of the
|
All interpretation of the messages has to be done by the user of the
|
||||||
xorriso API. Function Xorriso_parse_line() is intended to help with
|
xorriso API. Function Xorriso_parse_line() is intended to help with
|
||||||
splitting up messages into words.
|
splitting up messages into words.
|
||||||
The outlist stack is handy for catching the result channel of information
|
The outlist stack is handy for catching the results of information
|
||||||
commands with large uniform output like -lsl, -getfacl, -status.
|
commands with large uniform output or no well recognizable message
|
||||||
|
prefix. Like -lsl, -getfacl, -status, -find ... -exec get_md5.
|
||||||
|
One should push the stack before the command, pull it afterwards, examine
|
||||||
|
the text list by Xorriso_lst_get_*(), and finally dispose the list.
|
||||||
|
|
||||||
- The message watcher is a separate program thread which uses the outlist
|
- The message watcher is a separate program thread which uses the outlist
|
||||||
stack to catch the messages and to call user provided handler functions.
|
stack to catch the messages and to call user provided handler functions.
|
||||||
These functions can use Xorriso_parse_line() too, if they submit the
|
These functions can use Xorriso_parse_line() too, if they submit the
|
||||||
xorriso parameter as NULL.
|
xorriso parameter as NULL. They may not use the struct XorrisO object
|
||||||
|
in any way.
|
||||||
|
Synchronization between watcher and emitters of commands can be achived
|
||||||
|
by Xorriso_peek_outlists().
|
||||||
The main motivation for the message watcher is to inspect and display
|
The main motivation for the message watcher is to inspect and display
|
||||||
messages of long lasting xorriso commands like -commit, -blank, -format.
|
messages of long lasting xorriso commands while they are still executing.
|
||||||
|
E.g. of -commit, -blank, -format.
|
||||||
|
One would normally start it before such a command and stop it afterwards.
|
||||||
|
But of course, the watcher can stay activated all the time and process
|
||||||
|
all message output via its handler calls.i
|
||||||
|
|
||||||
The sieve does not interfere with outlists and message watcher.
|
The message sieve does not interfere with outlists and message watcher.
|
||||||
The message watcher will only see messages which are not caught by outlists
|
The message watcher will only see messages which are not caught by outlists
|
||||||
which were enabled after the watcher thread was started.
|
which were enabled after the watcher thread was started.
|
||||||
|
|
||||||
@ -691,6 +702,10 @@ int Xorriso_sieve_add_filter(struct XorrisO *xorriso, char *name,
|
|||||||
Do not allocate memory.
|
Do not allocate memory.
|
||||||
bit2= If *argv is not NULL, then free it before attaching
|
bit2= If *argv is not NULL, then free it before attaching
|
||||||
new memory.
|
new memory.
|
||||||
|
@return <0 error: -1 = memor shortage
|
||||||
|
-2 = no filter rule found
|
||||||
|
0 no more data available for the given name
|
||||||
|
>0 argc and argv are valid
|
||||||
*/
|
*/
|
||||||
int Xorriso_sieve_get_result(struct XorrisO *xorriso, char *name,
|
int Xorriso_sieve_get_result(struct XorrisO *xorriso, char *name,
|
||||||
int *argc, char ***argv, int *available,
|
int *argc, char ***argv, int *available,
|
||||||
@ -763,6 +778,18 @@ int Xorriso_sieve_dispose(struct XorrisO *xorriso, int flag);
|
|||||||
"Ext. filters :" up to 1 result from -list_extras
|
"Ext. filters :" up to 1 result from -list_extras
|
||||||
argv[0]= "yes" or "no" , possibly more info
|
argv[0]= "yes" or "no" , possibly more info
|
||||||
(Note: prefix is "Ext. filters : ")
|
(Note: prefix is "Ext. filters : ")
|
||||||
|
"File damaged :" up to 10000 results from -find ... -exec report_damage
|
||||||
|
argv[0]= damage start byte in file
|
||||||
|
argv[1]= damage range size in file
|
||||||
|
argv[2]= file size
|
||||||
|
argv[3]= path in ISO image
|
||||||
|
"File data lba:" up to 10000 results from -find ... -exec report_lba
|
||||||
|
argv[0]= extent number (all extents of same path together
|
||||||
|
are the content of one file)
|
||||||
|
argv[1]= start block number of extent
|
||||||
|
argv[2]= number of blocks of extent
|
||||||
|
argv[3]= overall file content size in all extents
|
||||||
|
argv[4]= path in ISO image
|
||||||
"Format idx :" up to 100 results from -list_formats
|
"Format idx :" up to 100 results from -list_formats
|
||||||
argv[0]= index
|
argv[0]= index
|
||||||
argv[1]= MMC code
|
argv[1]= MMC code
|
||||||
@ -785,6 +812,8 @@ int Xorriso_sieve_dispose(struct XorrisO *xorriso, int flag);
|
|||||||
argv[0]= "yes" or "no"
|
argv[0]= "yes" or "no"
|
||||||
"Local xattr :" up to 1 result from -list_extras
|
"Local xattr :" up to 1 result from -list_extras
|
||||||
argv[0]= "yes" or "no"
|
argv[0]= "yes" or "no"
|
||||||
|
"MD5 MISMATCH:" up to 10000 results from -check_md5*
|
||||||
|
argv[0]= path of mismatching file
|
||||||
"MD5 tag range:" up to 10000 results from -check_media
|
"MD5 tag range:" up to 10000 results from -check_media
|
||||||
argv[0]= lba
|
argv[0]= lba
|
||||||
argv[1]= size in blocks
|
argv[1]= size in blocks
|
||||||
@ -826,6 +855,10 @@ int Xorriso_sieve_dispose(struct XorrisO *xorriso, int flag);
|
|||||||
(Note: prefix is "Publisher Id : ")
|
(Note: prefix is "Publisher Id : ")
|
||||||
"Readline :" up to 1 result from -list_extras
|
"Readline :" up to 1 result from -list_extras
|
||||||
argv[0]= "yes" or "no"
|
argv[0]= "yes" or "no"
|
||||||
|
"Size lower :" up to 1 result from -findx ... -exec estimate_size
|
||||||
|
argv[0]= size with appended "s"
|
||||||
|
"Size upper :" up to 1 result from -findx ... -exec estimate_size
|
||||||
|
argv[0]= size with appended "s"
|
||||||
"System Id :" up to 1 result from -pvd_info
|
"System Id :" up to 1 result from -pvd_info
|
||||||
argv[0]= id
|
argv[0]= id
|
||||||
(Note: prefix is "System Id : ")
|
(Note: prefix is "System Id : ")
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Xorriso_timestamP "2012.12.06.132118"
|
#define Xorriso_timestamP "2012.12.07.193658"
|
||||||
|
Loading…
Reference in New Issue
Block a user