Peter Maydell <[email protected]> writes:
> On 19 June 2017 at 11:46, Alex Bennée <[email protected]> wrote:
>> Trace files can get quite large so it would be useful to be able to
>> just capture the trace stream with stdin/stdout for processing in a
>> pipe line. The sort of case where this is useful is for building
>> static binaries where zlib support is missing for whatever reason.
>>
>> It can also be used in testing pipelines.
>>
>> Signed-off-by: Alex Bennée <[email protected]>
>> ---
>> risu.c | 12 ++++++++++--
>> 1 file changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/risu.c b/risu.c
>> index 93c274b..e94b54b 100644
>> --- a/risu.c
>> +++ b/risu.c
>> @@ -312,7 +312,11 @@ int main(int argc, char **argv)
>>
>> if (ismaster) {
>> if (trace) {
>> - master_fd = open(trace_fn, O_WRONLY|O_CREAT, S_IRWXU);
>> + if (strncmp(trace_fn, "-", strlen(trace_fn))==0) {
>
> Why not just strcmp() ?
Years of habit...
>
>> + master_fd = fileno(stdout);
>
> = STDOUT_FILENO;
heh , the original version used that. I'll put it back.
>
>> + } else {
>> + master_fd = open(trace_fn, O_WRONLY|O_CREAT, S_IRWXU);
>> + }
>> } else {
>> fprintf(stderr, "master port %d\n", port);
>> master_fd = master_connect(port);
>> @@ -320,7 +324,11 @@ int main(int argc, char **argv)
>> return master();
>> } else {
>> if (trace) {
>> - apprentice_fd = open(trace_fn, O_RDONLY);
>> + if (strncmp(trace_fn, "-", strlen(trace_fn))==0) {
>> + apprentice_fd = fileno(stdin);
>
> = STDIN_FILENO;
>
>> + } else {
>> + apprentice_fd = open(trace_fn, O_RDONLY);
>> + }
>> } else {
>> fprintf(stderr, "apprentice host %s port %d\n", hostname, port);
>> apprentice_fd = apprentice_connect(hostname, port);
>> --
>> 2.13.0
>>
>
> thanks
> -- PMM
--
Alex Bennée