nils-ohlmeier / sipsak

SIP swiss army knife
GNU General Public License v2.0
140 stars 37 forks source link

RAW_SUPPORT breaks timeout handling #3

Closed rfuchs closed 8 years ago

rfuchs commented 10 years ago

With RAW_SUPPORT enabled, what happens is:

Sipsak opens a raw socket to listen to (any and all) ICMP messages. Every time an ICMP packet is received, the respective loop branch runs to read/parse the ICMP packet. This branch doesn't check for timeouts and won't terminate the loop. If no actual UDP response is ever received, and if there's enough ICMP traffic on the network so that select() never runs into a timeout, sipsak will continue to run forever and won't honour the requested timeout.

taurus-forever commented 10 years ago

Dear Nils,

Can we have disabled RAW_SUPPORT by default while you have no time to have this properly fixed? Otherwise sipsak is not really usable in real/heavy production due to randomly hanging.

Tnx!