Download raw body.
split daemon(3) functionality for better debugability
I disagree. If daemon() doesn't work for you, write the minimal parts you need yourself and don't use daemon(). It is not magic. It is very simple. To repeat myself, if you can't use it, don't use it, copy what you need and order the parts into your code. Please do not call it "daemon" anything. But this extra complexity you are proposing does not make sense to me.
split daemon(3) functionality for better debugability