[PATCH v2] nc_bloaty: support udp broadcast ports

Denys Vlasenko vda.linux at googlemail.com
Mon Jun 29 11:53:37 UTC 2020


Applied, thanks!

On Fri, Feb 14, 2020 at 10:14 PM Norbert Lange <nolange79 at gmail.com> wrote:
>
> Add a -b option, identical to debians "tradional" netcat.
> This allows sending (subnet) UDP Broadcasts.
>
> Signed-off-by: Norbert Lange <nolange79 at gmail.com>
> ---
>  networking/nc_bloaty.c | 24 +++++++++++++++---------
>  1 file changed, 15 insertions(+), 9 deletions(-)
>
> diff --git a/networking/nc_bloaty.c b/networking/nc_bloaty.c
> index 034e03d21..88eda6b28 100644
> --- a/networking/nc_bloaty.c
> +++ b/networking/nc_bloaty.c
> @@ -84,6 +84,7 @@
>  //usage:       )
>  //usage:     "\n       -n      Don't do DNS resolution"
>  //usage:     "\n       -u      UDP mode"
> +//usage:     "\n       -b      Allow broadcasts"
>  //usage:     "\n       -v      Verbose"
>  //usage:       IF_NC_EXTRA(
>  //usage:     "\n       -o FILE Hex dump traffic"
> @@ -171,17 +172,19 @@ enum {
>         OPT_p = (1 << 1),
>         OPT_s = (1 << 2),
>         OPT_u = (1 << 3),
> -       OPT_v = (1 << 4),
> -       OPT_w = (1 << 5),
> -       OPT_l = (1 << 6) * ENABLE_NC_SERVER,
> -       OPT_k = (1 << 7) * ENABLE_NC_SERVER,
> -       OPT_i = (1 << (6+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
> -       OPT_o = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
> -       OPT_z = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
> +       OPT_b = (1 << 4),
> +       OPT_v = (1 << 5),
> +       OPT_w = (1 << 6),
> +       OPT_l = (1 << 7) * ENABLE_NC_SERVER,
> +       OPT_k = (1 << 8) * ENABLE_NC_SERVER,
> +       OPT_i = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
> +       OPT_o = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
> +       OPT_z = (1 << (9+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
>  };
>
>  #define o_nflag   (option_mask32 & OPT_n)
>  #define o_udpmode (option_mask32 & OPT_u)
> +#define o_bcmode  (option_mask32 & OPT_b)
>  #if ENABLE_NC_EXTRA
>  #define o_ofile   (option_mask32 & OPT_o)
>  #define o_zero    (option_mask32 & OPT_z)
> @@ -788,7 +791,7 @@ int nc_main(int argc UNUSED_PARAM, char **argv)
>
>         // -g -G -t -r deleted, unimplemented -a deleted too
>         getopt32(argv, "^"
> -               "np:s:uvw:+"/* -w N */ IF_NC_SERVER("lk")
> +               "np:s:ubvw:+"/* -w N */ IF_NC_SERVER("lk")
>                 IF_NC_EXTRA("i:o:z")
>                         "\0"
>                         "?2:vv"IF_NC_SERVER(":ll"), /* max 2 params; -v and -l are counters */
> @@ -851,8 +854,11 @@ int nc_main(int argc UNUSED_PARAM, char **argv)
>         }
>         xmove_fd(x, netfd);
>         setsockopt_reuseaddr(netfd);
> -       if (o_udpmode)
> +       if (o_udpmode) {
> +               if (o_bcmode)
> +                       setsockopt_broadcast(netfd);
>                 socket_want_pktinfo(netfd);
> +       }
>         if (!ENABLE_FEATURE_UNIX_LOCAL
>          || cnt_l != 0 /* listen */
>          || ouraddr->u.sa.sa_family != AF_UNIX
> --
> 2.25.0
>
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://lists.busybox.net/mailman/listinfo/busybox


More information about the busybox mailing list