On 11.01.2018 18:02, Samo PogaÄ?nik wrote: > Allow usage of an already existing fifo (named pipe) within the > pipe-sink module. Also, the used fifo is going to be removed upon > module unload only if the fifo is created by the same module. > --- > src/modules/module-pipe-sink.c | 15 +++++++++++---- > 1 file changed, 11 insertions(+), 4 deletions(-) > > diff --git a/src/modules/module-pipe-sink.c b/src/modules/module-pipe-sink.c > index fe2af70..a2074c1 100644 > --- a/src/modules/module-pipe-sink.c > +++ b/src/modules/module-pipe-sink.c > @@ -78,6 +78,7 @@ struct userdata { > > char *filename; > int fd; > + bool do_unlink_fifo; > size_t buffer_size; > size_t bytes_dropped; > bool fifo_error; > @@ -450,11 +451,16 @@ int pa__init(pa_module *m) { > u->write_type = 0; > > u->filename = pa_runtime_path(pa_modargs_get_value(ma, "file", DEFAULT_FILE_NAME)); > + u->do_unlink_fifo = false; > > if (mkfifo(u->filename, 0666) < 0) { > - pa_log("mkfifo('%s'): %s", u->filename, pa_cstrerror(errno)); > - goto fail; > - } > + if (errno != EEXIST) { > + pa_log("mkfifo('%s'): %s", u->filename, pa_cstrerror(errno)); > + goto fail; > + } > + } else > + u->do_unlink_fifo = true; > + > if ((u->fd = pa_open_cloexec(u->filename, O_RDWR, 0)) < 0) { > pa_log("open('%s'): %s", u->filename, pa_cstrerror(errno)); > goto fail; > @@ -584,7 +590,8 @@ void pa__done(pa_module *m) { > pa_rtpoll_free(u->rtpoll); > > if (u->filename) { > - unlink(u->filename); > + if (u->do_unlink_fifo) > + unlink(u->filename); > pa_xfree(u->filename); > } > Thanks, I applied the patch.