Hello Brett,

A well formed MI command should end with two '\n\n' characters. When you do
    echo -e ":address_dump:my_fifo\n\n"

,your MI command ends with three '\n', because echo adds an extra \n at the end, unless you use the -n parameter.

So what happens is that OpenSIPS successfully processes your address_dump MI command, and then reads the third \n. It treats it as an empty MI command, and attempts to block and read the second \n signaling the end of the MI command, and there it gets stuck.


Regards,

--
Vlad Paiu
OpenSIPS Developer




On 05/09/2011 07:40 PM, Brett Nemeroff wrote:
Hello List,
So I've been doing some testing with the mi_fifo and found that it appears to be really fragile. Here's what I've done:

mkfifo /tmp/my_fifo
cat /tmp/my_fifo&
echo -e ":address_dump:my_fifo\n\n" > /tmp/opensips_fifo
*returns*
200 OK
  48 <1.2.3.4,2, 0, 0, NULL, NULL>
** cat process ends
cat /tmp/my_fifo&
echo -e ":address_dump:my_fifo\n\n" > /tmp/opensips_fifo
** nothing

At this point, I can't make the fifo work again until I restart opensips. If I detach from the fifo (kill the cat, so to speak), and reattach it doesn't work. Nothing seems to make it responsive again. At first I though something was horribly broken, but then I removed one of my \n from the fifo command and now it works "as expected". Two new-lines shouldn't break the fifo, right?

Thanks!
-Brett




_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to