<blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;"><p style="white-space: pre-wrap; word-wrap: break-word;">Patch Set 4:</p><blockquote style="border-left: 1px solid #aaa; margin: 10px 0; padding: 0 10px;"><p style="white-space: pre-wrap; word-wrap: break-word;">Patch Set 4: Code-Review-1</p><p style="white-space: pre-wrap; word-wrap: break-word;">(1 comment)</p><p style="white-space: pre-wrap; word-wrap: break-word;">Since there's already an "ast_sockaddr_copy_sockaddr" can ast_sockaddr_from_sockaddr just be a #DEFINE that wraps the existing function?</p></blockquote><p style="white-space: pre-wrap; word-wrap: break-word;">Since that function doesn't exist in 13:</p><p style="white-space: pre-wrap; word-wrap: break-word;">jkroon@plastiekpoot ~/projects/asterisk ((HEAD detached at origin/13)) $ grep -r ast_sockaddr_copy_sockaddr .<br>[1] jkroon@plastiekpoot ~/projects/asterisk ((HEAD detached at origin/13)) $          </p><p style="white-space: pre-wrap; word-wrap: break-word;">jkroon@plastiekpoot ~/projects/asterisk (master) $ grep -r ast_sockaddr_copy_sockaddr .<br>./include/asterisk/netsock2.h:static inline void ast_sockaddr_copy_sockaddr(struct ast_sockaddr *dst,<br>./main/io.c:    ast_sockaddr_copy_sockaddr(&fd_addr, &ss, ss_len);<br>jkroon@plastiekpoot ~/projects/asterisk (master) $ </p><p style="white-space: pre-wrap; word-wrap: break-word;">Perhaps I should rather just back-port that existing function?</p><p style="white-space: pre-wrap; word-wrap: break-word;">I mean really, s/copy/from/ ... for all practical purposes.</p></blockquote><p style="white-space: pre-wrap; word-wrap: break-word;">To answer myself after some more reading.  The sizeof is required to the copy command, and to calculate (look up more like it) this size one needs to know the family type.  Maybe a dual function call structure, one of which is a #define perhaps something like:</p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">inline int ast_addressfamily_to_sockaddrsize(int af) {<br>  switch (af) {<br>  case AF_INET:<br>    return sizeof(struct sockaddr_in);<br>  case AF_INET6:<br>    return sizeof(struct sockaddr_in6);<br>  default:<br>    return 0;<br>}</pre><p style="white-space: pre-wrap; word-wrap: break-word;">And then one can action your #define as:</p><p style="white-space: pre-wrap; word-wrap: break-word;">#define ast_sockaddr_from_sockaddr(t, s) ast_sockaddr_copy_sockaddr(t, s, ast_addressfamily_to_sockaddrsize(s))</p><p style="white-space: pre-wrap; word-wrap: break-word;">Seeing that any unsupported protocol returns 0, the net effect is that the resulting ast_sockaddr above would end up being a "null" socket, so one could still use ast_sockaddr_isnull() to test for failure.</p><p style="white-space: pre-wrap; word-wrap: break-word;">Kind Regards,<br>Jaco</p><p><a href="https://gerrit.asterisk.org/c/asterisk/+/13361">View Change</a></p><ul style="list-style: none; padding: 0;"></ul><p>To view, visit <a href="https://gerrit.asterisk.org/c/asterisk/+/13361">change 13361</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/c/asterisk/+/13361"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: 13 </div>
<div style="display:none"> Gerrit-Change-Id: Iee604e96e9096c79b477d6e5ff310cf0b06dae86 </div>
<div style="display:none"> Gerrit-Change-Number: 13361 </div>
<div style="display:none"> Gerrit-PatchSet: 4 </div>
<div style="display:none"> Gerrit-Owner: Jaco Kroon <jaco@uls.co.za> </div>
<div style="display:none"> Gerrit-Reviewer: Friendly Automation </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Joshua C. Colp <jcolp@sangoma.com> </div>
<div style="display:none"> Gerrit-Comment-Date: Thu, 19 Dec 2019 09:53:56 +0000 </div>
<div style="display:none"> Gerrit-HasComments: No </div>
<div style="display:none"> Gerrit-Has-Labels: No </div>
<div style="display:none"> Gerrit-MessageType: comment </div>