jech / babeld

The Babel routing daemon
http://www.irif.fr/~jch/software/babel/
MIT License
385 stars 92 forks source link

Improve babel_send() error handling #109

Open DanielG opened 1 year ago

DanielG commented 1 year ago

Fixes for #108

This is untested, I'm not sure we need to print scope_id but the thinking is this would tell you which interface is involved.

Printing the wireguard error only once ever is the lazy apporach, I suppose it should be per-interface or something really? @jech opinion?

DanielG commented 1 year ago

Looks like the scope_id is set properly but a final newline was still missing in the fprintf(). Should be good now.

jech commented 1 year ago

Concerning the first patch, please use format_address or format_prefix in util.c.

Concerning the second patch, I think that printing the error just once is too drastic. Instead, you should rate-limit the error, for example by printing it at most once every 30 seconds.

DanielG commented 1 year ago

Since the error really is just noise I really don't want to print it periodically, even at a low rate. Instead I make this a per-interface flag. Note I'm not sure I clear the flag in the right place, the idea is to reset whenever interface comes back up from being down.

Let me know if you're ok with this version else I'll go with special handling wireguard interfaces.

jech commented 1 year ago

Since the error really is just noise I really don't want to print it periodically, even at a low rate.

I disagree. Suppressing the error after the first occurrence will make debugging more difficult.