aboutsummaryrefslogtreecommitdiff
path: root/libbb/xconnect.c
Commit message (Collapse)AuthorAgeFilesLines
* libbb: reduce the overhead of single parameter bb_error_msg() callsGravatar James Byrne2019-07-021-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Back in 2007, commit 0c97c9d43707 ("'simple' error message functions by Loic Grenie") introduced bb_simple_perror_msg() to allow for a lower overhead call to bb_perror_msg() when only a string was being printed with no parameters. This saves space for some CPU architectures because it avoids the overhead of a call to a variadic function. However there has never been a simple version of bb_error_msg(), and since 2007 many new calls to bb_perror_msg() have been added that only take a single parameter and so could have been using bb_simple_perror_message(). This changeset introduces 'simple' versions of bb_info_msg(), bb_error_msg(), bb_error_msg_and_die(), bb_herror_msg() and bb_herror_msg_and_die(), and replaces all calls that only take a single parameter, or use something like ("%s", arg), with calls to the corresponding 'simple' version. Since it is likely that single parameter calls to the variadic functions may be accidentally reintroduced in the future a new debugging config option WARN_SIMPLE_MSG has been introduced. This uses some macro magic which will cause any such calls to generate a warning, but this is turned off by default to avoid use of the unpleasant macros in normal circumstances. This is a large changeset due to the number of calls that have been replaced. The only files that contain changes other than simple substitution of function calls are libbb.h, libbb/herror_msg.c, libbb/verror_msg.c and libbb/xfuncs_printf.c. In miscutils/devfsd.c, networking/udhcp/common.h and util-linux/mdev.c additonal macros have been added for logging so that single parameter and multiple parameter logging variants exist. The amount of space saved varies considerably by architecture, and was found to be as follows (for 'defconfig' using GCC 7.4): Arm: -92 bytes MIPS: -52 bytes PPC: -1836 bytes x86_64: -938 bytes Note that for the MIPS architecture only an exception had to be made disabling the 'simple' calls for 'udhcp' (in networking/udhcp/common.h) because it made these files larger on MIPS. Signed-off-by: James Byrne <james.byrne@origamienergy.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* tftp: optional tftp-hpa compatGravatar Denys Vlasenko2019-06-091-0/+1
| | | | | | | function old new delta tftp_main 276 394 +118 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: move netlink socket binding to the utility functionGravatar Denys Vlasenko2019-06-031-0/+35
| | | | | | | | | | | | function old new delta create_and_bind_to_netlink - 134 +134 ifplugd_main 1117 1052 -65 uevent_main 399 306 -93 mdev_main 314 215 -99 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/3 up/down: 134/-257) Total: -123 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* whitespace and comment format fixes, no code changesGravatar Denys Vlasenko2017-10-051-1/+0
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: make xmalloc_sockaddr2dotted use NI_NUMERICSCOPEGravatar Denys Vlasenko2016-09-261-2/+5
| | | | | | | | Gives "mount -t cifs //fe80::6a05:caff:fe3e:dbf5%eth0/test test" a chance to work: mount must pass "ip=numeric_IPv6%numeric_iface_id" in the omunt option string. Currently, it does not. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: add setsockopt_foo helpersGravatar Denys Vlasenko2015-08-241-2/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta setsockopt_int - 23 +23 do_load 918 934 +16 setsockopt_SOL_SOCKET_int - 14 +14 setsockopt_keepalive - 10 +10 setsockopt_SOL_SOCKET_1 - 10 +10 buffer_fill_and_print 169 178 +9 setsockopt_1 - 8 +8 nfsmount 3560 3566 +6 redirect 1277 1282 +5 tcpudpsvd_main 1782 1786 +4 d6_send_kernel_packet 272 275 +3 i2cget_main 380 382 +2 ed_main 2544 2545 +1 scan_recursive 380 378 -2 nbdclient_main 492 490 -2 hash_find 235 233 -2 cmdputs 334 332 -2 parse_command 1443 1440 -3 static.two 4 - -4 ntpd_main 1039 1035 -4 const_int_1 4 - -4 const_IPTOS_LOWDELAY 4 - -4 RCVBUF 4 - -4 ntp_init 474 469 -5 change_listen_mode 316 310 -6 uevent_main 416 409 -7 arping_main 1697 1690 -7 telnet_main 1612 1603 -9 socket_want_pktinfo 42 33 -9 setsockopt_reuseaddr 21 10 -11 setsockopt_broadcast 21 10 -11 httpd_main 772 757 -15 get_remote_transfer_fd 109 94 -15 make_new_session 503 487 -16 ftpd_main 2177 2160 -17 read_bunzip 1896 1866 -30 common_traceroute_main 4099 4058 -41 common_ping_main 1836 1783 -53 ------------------------------------------------------------------------------ (add/remove: 5/4 grow/shrink: 8/21 up/down: 111/-283) Total: -172 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: introduce and use is_prefixed_with()Gravatar Denys Vlasenko2015-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta is_prefixed_with - 18 +18 complete_username 78 77 -1 man_main 737 735 -2 fsck_device 429 427 -2 unpack_ar_archive 80 76 -4 strip_unsafe_prefix 105 101 -4 singlemount 1054 1050 -4 rtc_adjtime_is_utc 90 86 -4 resolve_mount_spec 88 84 -4 parse_one_line 1029 1025 -4 parse_conf 1460 1456 -4 may_wakeup 83 79 -4 loadkmap_main 219 215 -4 get_irqs_from_stat 103 99 -4 get_header_cpio 913 909 -4 findfs_main 79 75 -4 fbsplash_main 1230 1226 -4 load_crontab 776 771 -5 expand_vars_to_list 1151 1146 -5 date_main 881 876 -5 skip_dev_pfx 30 24 -6 make_device 2199 2193 -6 complete_cmd_dir_file 773 767 -6 run_applet_and_exit 715 708 -7 uudecode_main 321 313 -8 pwdx_main 197 189 -8 execute 568 560 -8 i2cdetect_main 1186 1176 -10 procps_scan 1242 1230 -12 procps_read_smaps 1017 1005 -12 process_module 746 734 -12 patch_main 1903 1891 -12 nfsmount 3572 3560 -12 stack_machine 126 112 -14 process_timer_stats 449 435 -14 match_fstype 111 97 -14 do_ipaddr 1344 1330 -14 open_list_and_close 359 343 -16 get_header_tar 1795 1779 -16 prepend_new_eth_table 340 323 -17 fsck_main 1811 1794 -17 find_iface_state 56 38 -18 dnsd_main 1321 1303 -18 base_device 179 158 -21 find_keyword 104 82 -22 handle_incoming_and_exit 2785 2762 -23 parse_and_put_prompt 774 746 -28 modinfo 347 317 -30 find_action 204 171 -33 update_passwd 1470 1436 -34 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/49 up/down: 18/-540) Total: -522 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Make unix (local) sockets work without IPv6 enabledGravatar Jonh Wendell2012-02-091-7/+9
| | | | | | | | | | | | | | | | | The xsocket_type() function had an optional "family" argument that was enabled only if IPv6 is enabled. In the case of the function was called with a valid AF_UNIX argument, and IPv6 is disabled, this argument was silently ignored. This patch makes the "family" argument mandatory, while keeping the old behavior i.e., if AF_UNSPEC is passed, we try first IPv6 (if it's enabled) and fallback to IPv4. Also I changed all callers of xsocket_type() to reflect its new interface. Signed-off-by: Jonh Wendell <jonh.wendell@vexcorp.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* libbb: make set_nport accept pointer to sockaddr, not to len_and_sockaddr.Gravatar Denys Vlasenko2011-04-071-7/+9
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* don't call freeaddinfo(NULL)Gravatar Vitaly Magerya2011-03-221-2/+3
| | | | | Signed-off-by: Vitaly Magerya <vmagerya@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: make GNU licensing statement forms more regularGravatar Denys Vlasenko2010-08-161-1/+1
| | | | | | | This change retains "or later" state! No licensing _changes_ here, only form is adjusted (article, space between "GPL" and "v2" and so on). Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* A few minor portability improvementsGravatar Dan Fandrich2010-06-191-0/+1
| | | | | Signed-off-by: Dan Fandrich <dan@coneharvesters.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* telnetd: fill hostname field in utmp/wtmp recordsGravatar Denys Vlasenko2010-04-061-3/+13
| | | | | | | | | | | | | function old new delta get_lsa - 109 +109 make_new_session 438 504 +66 get_peer_lsa - 10 +10 ftpd_main 2340 2267 -73 get_sock_lsa 101 10 -91 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 1/2 up/down: 185/-164) Total: 21 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* Hurd compat fixes. Mostly dealing with absent PATH_MAXGravatar Jérémie Koenig2010-03-261-0/+10
| | | | | Signed-off-by: Jérémie Koenig <jk@jk.fr.eu.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: gethostname-related fixesGravatar Denys Vlasenko2010-02-271-22/+0
| | | | | | | | function old new delta hostname_main 218 231 +13 nfsmount 3541 3474 -67 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ntpd: locally bind every peer socket. +22 bytesGravatar Denys Vlasenko2009-11-241-1/+1
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* fix trivial compile breakageGravatar Denys Vlasenko2009-11-241-2/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* ntp: simplifications; libbb: simpler resolution of numeric hostnamesGravatar Denys Vlasenko2009-11-241-5/+36
| | | | | | | | | | | | | function old new delta str2sockaddr 405 567 +162 ntp_init 310 317 +7 scale_interval 58 59 +1 error_interval 22 23 +1 ntpd_main 3257 3214 -43 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 4/1 up/down: 171/-43) Total: 128 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* *: use "can't" instead of "cannot"Gravatar Denys Vlasenko2009-11-131-2/+2
| | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* more C standard compat fixes from Dan FandrichGravatar Denys Vlasenko2009-09-061-0/+1
| | | | | | | function old new delta docolon 207 204 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* add FEATURE_UNIX_LOCAL. By Ingo van Lil (inguin AT gmx.de)Gravatar Denis Vlasenko2009-04-251-1/+23
|
* *: remove check for errors on getsockaddr in cases we know they can't happenGravatar Denis Vlasenko2009-04-211-8/+13
| | | | | | | | | | | | libbb: make get_sock_lsa use only one getsockaddr syscall, not two function old new delta get_sock_lsa 72 101 +29 do_iplink 1151 1137 -14 arping_main 1585 1569 -16 dolisten 789 755 -34 xrtnl_open 161 94 -67
* *: mass renaming of USE_XXXX to IF_XXXXGravatar Denis Vlasenko2009-04-211-5/+5
| | | | | | and SKIP_XXXX to IF_NOT_XXXX - the second one was especially badly named. It was not skipping anything!
* ftpd: EPSV and SIZE support. Tested to work on IPv6 too.Gravatar Denis Vlasenko2009-03-091-2/+7
| | | | | | | | | | | | | | | | | libbb: str2sockaddr shuld accept [IPv6] addr without port - wget 'ftp://[::1]/file' needs that to work. function old new delta bind_for_passive_mode - 129 +129 get_nport - 30 +30 ftpd_main 1731 1760 +29 str2sockaddr 412 431 +19 ------------------------------------------------------------------------------ (add/remove: 2/0 grow/shrink: 2/0 up/down: 207/0) Total: 207 bytes text data bss dec hex filename 808568 476 7864 816908 c770c busybox_old 808804 476 7864 817144 c77f8 busybox_unstripped
* *: move get_sock_lsa and xwrite_str to libbb, use where appropriateGravatar Denis Vlasenko2009-03-091-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta get_sock_lsa - 72 +72 buffer_fill_and_print 179 196 +17 parse_expr 824 832 +8 read_base64 343 348 +5 nameval 202 206 +4 fbset_main 1694 1698 +4 expand 1849 1853 +4 udhcp_send_kernel_packet 249 252 +3 udhcp_get_option 223 222 -1 chat_main 1246 1245 -1 pack_gzip 1661 1659 -2 doset 299 297 -2 bb__parsespent 119 117 -2 test_main 260 257 -3 qgravechar 109 106 -3 tcpudpsvd_main 1834 1830 -4 sysctl_display_all 589 580 -9 xopen_xwrite_close 44 33 -11 prs 30 18 -12 find_main 418 406 -12 full_write2_str 25 12 -13 adduser_main 667 654 -13 evaltreenr 817 802 -15 evaltree 817 802 -15 tftpd_main 526 493 -33 ftpd_main 2050 1990 -60 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 7/18 up/down: 117/-211) Total: -94 bytes
* add a note that SO_BINDTODEVICE needs padded iface name on 2.6.26Gravatar Denis Vlasenko2008-12-101-1/+3
|
* *: fix SO_BINDTODEVICE. Kernel wants at least IFNAMSIZ bytes there.Gravatar Denis Vlasenko2008-12-101-0/+15
|
* Fix forgotten license commentsGravatar Denis Vlasenko2008-12-071-0/+1
|
* *: introduce and use FAST_FUNC: regparm on i386, otherwise no-onGravatar Denis Vlasenko2008-06-271-25/+25
| | | | | | | text data bss dec hex filename 808035 611 6868 815514 c719a busybox_old 804472 611 6868 811951 c63af busybox_unstripped
* inetd: make it NOMMU-capable and IPv6-friendly. Lots of renamesGravatar Denis Vlasenko2008-03-121-5/+16
| | | | | | | | | | of variable/function names Total: -2474 bytes text data bss dec hex filename 802215 661 7452 810328 c5d58 busybox_old 800120 661 7428 808209 c5511 busybox_unstripped
* - be C99 friendly. Anonymous unions are a GNU extension. This change isGravatar Bernhard Reutner-Fischer2008-01-291-14/+14
| | | | | size-neutral WRT -std=gnu99 and fixes several compilation errors for strict C99 mode.
* Introduce FEATURE_PREFER_IPV4_ADDRESS. If selected, we have:Gravatar Denis Vlasenko2007-11-141-3/+16
| | | | | | function old new delta str2sockaddr 328 344 +16
* introduce and use xdup2(int, int)Gravatar Denis Vlasenko2007-08-181-14/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | stop checking whether setsockopt_reuseaddr(int fd) was successful (it always is) remove second parameter (sockllen) from xmalloc_sockaddr2xxxxx functions sockaddr2str 142 156 +14 collect_blk 467 474 +7 xdup2 28 33 +5 singlemount 4456 4454 -2 print_host 214 212 -2 nslookup_main 139 137 -2 ftpgetput_main 414 412 -2 udhcpd_main 1258 1255 -3 udhcpc_main 2405 2402 -3 traceroute_main 4125 4122 -3 nc_main 1072 1069 -3 buffer_fill_and_print 76 73 -3 xmalloc_sockaddr2hostonly_noport 18 14 -4 xmalloc_sockaddr2host_noport 18 14 -4 xmalloc_sockaddr2host 15 11 -4 xmalloc_sockaddr2dotted_noport 18 14 -4 xmalloc_sockaddr2dotted 18 14 -4 wget_main 2618 2614 -4 ping_main 393 389 -4 ip_port_str 120 115 -5 dhcprelay_main 1146 1141 -5 dnsd_main 1531 1525 -6 passwd_main 1110 1102 -8 udhcp_kernel_packet 206 197 -9 udhcp_listen_socket 154 144 -10 getty_main 2576 2566 -10 setup 655 640 -15 xmove_fd 51 34 -17 dolisten 759 742 -17 tcpudpsvd_main 1866 1836 -30 startservice 339 299 -40
* nc: make connecting to IPv4 from IPv6-enabled hosts easierGravatar Denis Vlasenko2007-06-051-12/+20
| | | | (was requiring -s <local addr>)
* make a few struct bb_applet members conditionalGravatar Denis Vlasenko2007-04-101-1/+1
| | | | | | rename sllep_and_die -> xfunc_die make fflush_stdout_and_exit NOFORK-safe fix some buglets found by randomconfig
* nc: port nc 1.10 to busyboxGravatar Denis Vlasenko2007-04-051-1/+1
|
* test: comment out unused codeGravatar Denis Vlasenko2007-04-021-6/+22
| | | | | udpsvd: fake it compile tcpsvd: more optimal memorizing of IP's for -C
* tcpsvd: new appletGravatar Denis Vlasenko2007-04-011-7/+5
| | | | | | | | | | It's a GPL-ed 'clone' of Dan Bernstein's tcpserver. Author: Gerrit Pape <pape@smarden.org> http://smarden.sunsite.dk/ipsvd/ size tcpsvd.o text data bss dec hex filename 2571 4 16 2591 a1f tcpsvd.o
* ping: support -I addr in family neutral manner; reuse a bit of common codeGravatar Denis Vlasenko2007-02-091-1/+1
|
* tftp: fix IPv6 falloutGravatar Denis Vlasenko2007-02-071-1/+1
|
* udhcp: use improved gethostbyname replacement from IPv6 codeGravatar Denis Vlasenko2007-02-041-0/+5
|
* mount: (try to) support cifs with IPv6Gravatar Denis Vlasenko2007-02-041-1/+7
|
* add x to IPv6 functions which can dieGravatar Denis Vlasenko2007-02-041-20/+21
|
* Unify ping and ping6. ping has -4 and -6 which forceGravatar Denis Vlasenko2007-01-241-0/+2
| | | | | | | | name resolution into IP or IPv6 only, otherwise we take address family returned by host2sockaddr() in lsa->sa.sa_family. IOW: "ping ::1" with do IPv6 ping, "ping 127.0.0.1" will do IPv4 ping. ping6 is aliased to "ping -6".
* ping6: stop using xgethostbyname2, remove it from libbb.Gravatar Denis Vlasenko2007-01-221-4/+23
|
* nslookup: full circle. Here we started IPv6 work. Use "new API"Gravatar Denis Vlasenko2007-01-221-2/+22
| | | | and thus save a few bytes.
* cleanups: unnecessary casts, unified const_1, eliminate cross-.c fileGravatar Denis Vlasenko2007-01-221-3/+2
| | | | | prototypes (heresy!), add spaces in places like "flags&NETSTAT_CONNECTED", removed unused #defines, #ifdef -> #if, use uint32_t for ipv4 addrs.
* comment out unused old networking API partsGravatar Denis Vlasenko2007-01-221-8/+16
| | | | sockaddr2dotted: return IPV6 addrs in [addr]:port form (was addr:port)
* small fixes to ipv6 infrastructureGravatar Denis Vlasenko2007-01-131-0/+2
|
* next part of ipv6-ization. mostly netcat.Gravatar Denis Vlasenko2007-01-121-16/+34
|