libbb: introduce and use bb_getsockname()

function                                             old     new   delta
bb_getsockname                                         -      18     +18
xrtnl_open                                            88      83      -5
do_iplink                                           1216    1209      -7
arping_main                                         1686    1668     -18
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/3 up/down: 18/-30)            Total: -12 bytes

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko
2018-02-11 14:55:46 +01:00
parent d3162773d5
commit ba3b9dbf06
6 changed files with 29 additions and 20 deletions

19
libbb/bb_getsockname.c Normal file
View File

@@ -0,0 +1,19 @@
/* vi: set sw=4 ts=4: */
/*
* Utility routines.
*
* Licensed under GPLv2, see file LICENSE in this source tree.
*/
//kbuild:lib-y += bb_getsockname.o
#include "libbb.h"
int FAST_FUNC bb_getsockname(int sockfd, void *addr, socklen_t addrlen)
{
/* The usefullness of this function is that for getsockname(),
* addrlen must go on stack (to _have_ an address to be passed),
* but many callers do not need its modified value.
* By using this shim, they can avoid unnecessary stack spillage.
*/
return getsockname(sockfd, (struct sockaddr *)addr, &addrlen);
}