Can you explain in more details what is happening now and how it changes with this PR?
Also, I noticed that instead of a reference in an output parameter, now it makes a hard copy:
``` - *from = &si->su; + memcpy(*from, &si->su, sockaddru_len(si->su)); ```
A reference has the size of a pointer, but the commit is copying data of size `sockaddru_len(si->su)`. Is it really correct and what you wanted to do?