aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--networking/nc_bloaty.c24
1 files 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 @@
84//usage: ) 84//usage: )
85//usage: "\n -n Don't do DNS resolution" 85//usage: "\n -n Don't do DNS resolution"
86//usage: "\n -u UDP mode" 86//usage: "\n -u UDP mode"
87//usage: "\n -b Allow broadcasts"
87//usage: "\n -v Verbose" 88//usage: "\n -v Verbose"
88//usage: IF_NC_EXTRA( 89//usage: IF_NC_EXTRA(
89//usage: "\n -o FILE Hex dump traffic" 90//usage: "\n -o FILE Hex dump traffic"
@@ -171,17 +172,19 @@ enum {
171 OPT_p = (1 << 1), 172 OPT_p = (1 << 1),
172 OPT_s = (1 << 2), 173 OPT_s = (1 << 2),
173 OPT_u = (1 << 3), 174 OPT_u = (1 << 3),
174 OPT_v = (1 << 4), 175 OPT_b = (1 << 4),
175 OPT_w = (1 << 5), 176 OPT_v = (1 << 5),
176 OPT_l = (1 << 6) * ENABLE_NC_SERVER, 177 OPT_w = (1 << 6),
177 OPT_k = (1 << 7) * ENABLE_NC_SERVER, 178 OPT_l = (1 << 7) * ENABLE_NC_SERVER,
178 OPT_i = (1 << (6+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA, 179 OPT_k = (1 << 8) * ENABLE_NC_SERVER,
179 OPT_o = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA, 180 OPT_i = (1 << (7+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
180 OPT_z = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA, 181 OPT_o = (1 << (8+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
182 OPT_z = (1 << (9+2*ENABLE_NC_SERVER)) * ENABLE_NC_EXTRA,
181}; 183};
182 184
183#define o_nflag (option_mask32 & OPT_n) 185#define o_nflag (option_mask32 & OPT_n)
184#define o_udpmode (option_mask32 & OPT_u) 186#define o_udpmode (option_mask32 & OPT_u)
187#define o_bcmode (option_mask32 & OPT_b)
185#if ENABLE_NC_EXTRA 188#if ENABLE_NC_EXTRA
186#define o_ofile (option_mask32 & OPT_o) 189#define o_ofile (option_mask32 & OPT_o)
187#define o_zero (option_mask32 & OPT_z) 190#define o_zero (option_mask32 & OPT_z)
@@ -788,7 +791,7 @@ int nc_main(int argc UNUSED_PARAM, char **argv)
788 791
789 // -g -G -t -r deleted, unimplemented -a deleted too 792 // -g -G -t -r deleted, unimplemented -a deleted too
790 getopt32(argv, "^" 793 getopt32(argv, "^"
791 "np:s:uvw:+"/* -w N */ IF_NC_SERVER("lk") 794 "np:s:ubvw:+"/* -w N */ IF_NC_SERVER("lk")
792 IF_NC_EXTRA("i:o:z") 795 IF_NC_EXTRA("i:o:z")
793 "\0" 796 "\0"
794 "?2:vv"IF_NC_SERVER(":ll"), /* max 2 params; -v and -l are counters */ 797 "?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)
851 } 854 }
852 xmove_fd(x, netfd); 855 xmove_fd(x, netfd);
853 setsockopt_reuseaddr(netfd); 856 setsockopt_reuseaddr(netfd);
854 if (o_udpmode) 857 if (o_udpmode) {
858 if (o_bcmode)
859 setsockopt_broadcast(netfd);
855 socket_want_pktinfo(netfd); 860 socket_want_pktinfo(netfd);
861 }
856 if (!ENABLE_FEATURE_UNIX_LOCAL 862 if (!ENABLE_FEATURE_UNIX_LOCAL
857 || cnt_l != 0 /* listen */ 863 || cnt_l != 0 /* listen */
858 || ouraddr->u.sa.sa_family != AF_UNIX 864 || ouraddr->u.sa.sa_family != AF_UNIX