• Home
  • Raw
  • Download

Lines Matching full:args

127 	va_list args;  in log_msg()  local
135 va_start(args, format); in log_msg()
136 vfprintf(stdout, format, args); in log_msg()
137 va_end(args); in log_msg()
145 va_list args; in log_error() local
153 va_start(args, format); in log_error()
154 vfprintf(stderr, format, args); in log_error()
155 va_end(args); in log_error()
163 va_list args; in log_err_errno() local
171 va_start(args, fmt); in log_err_errno()
172 vfprintf(stderr, fmt, args); in log_err_errno()
173 va_end(args); in log_err_errno()
210 static int tcp_md5sig(int sd, void *addr, socklen_t alen, struct sock_args *args) in tcp_md5sig() argument
212 int keylen = strlen(args->password); in tcp_md5sig()
218 memcpy(md5sig.tcpm_key, args->password, keylen); in tcp_md5sig()
220 if (args->prefix_len) { in tcp_md5sig()
224 md5sig.tcpm_prefixlen = args->prefix_len; in tcp_md5sig()
225 addr = &args->md5_prefix; in tcp_md5sig()
229 if (args->ifindex) { in tcp_md5sig()
233 md5sig.tcpm_ifindex = args->ifindex; in tcp_md5sig()
248 static int tcp_md5_remote(int sd, struct sock_args *args) in tcp_md5_remote() argument
259 switch (args->version) { in tcp_md5_remote()
261 sin.sin_port = htons(args->port); in tcp_md5_remote()
262 sin.sin_addr = args->remote_addr.in; in tcp_md5_remote()
267 sin6.sin6_port = htons(args->port); in tcp_md5_remote()
268 sin6.sin6_addr = args->remote_addr.in6; in tcp_md5_remote()
277 if (tcp_md5sig(sd, addr, alen, args)) in tcp_md5_remote()
335 static int check_device(int sd, struct sock_args *args) in check_device() argument
348 if (!args->expected_ifindex) in check_device()
351 if (args->expected_ifindex != ifindex) { in check_device()
353 args->expected_ifindex, ifindex); in check_device()
358 args->expected_ifindex, ifindex); in check_device()
565 static int show_sockstat(int sd, struct sock_args *args) in show_sockstat() argument
578 if (args->has_expected_laddr) { in show_sockstat()
579 rc = expected_addr_match(sa, &args->expected_laddr, in show_sockstat()
591 if (args->has_expected_raddr) { in show_sockstat()
592 rc |= expected_addr_match(sa, &args->expected_raddr, in show_sockstat()
719 static int send_msg(int sd, void *addr, socklen_t alen, struct sock_args *args) in send_msg() argument
721 if (args->type == SOCK_STREAM) { in send_msg()
726 } else if (args->ifindex && args->use_cmsg) { in send_msg()
727 if (send_msg_cmsg(sd, addr, alen, args->ifindex, args->version)) in send_msg()
740 static int socket_read_dgram(int sd, struct sock_args *args) in socket_read_dgram() argument
781 if (args->expected_ifindex) { in socket_read_dgram()
782 if (args->expected_ifindex != ifindex) { in socket_read_dgram()
784 args->expected_ifindex, ifindex); in socket_read_dgram()
788 args->expected_ifindex, ifindex); in socket_read_dgram()
814 if (args->version == AF_INET6) { in socket_read_dgram()
817 if (args->dev) { in socket_read_dgram()
885 static int socket_read(int sd, struct sock_args *args) in socket_read() argument
887 if (args->type == SOCK_STREAM) in socket_read()
890 return socket_read_dgram(sd, args); in socket_read()
941 struct sock_args *args) in msg_loop() argument
948 if (args->type != SOCK_STREAM) in msg_loop()
949 set_recv_attr(sd, args->version); in msg_loop()
956 if (send_msg(sd, addr, alen, args)) in msg_loop()
988 rc = socket_read(sd, args); in msg_loop()
1000 if (stdin_to_socket(sd, args->type, addr, alen) <= 0) in msg_loop()
1017 if (send_msg(sd, addr, alen, args)) { in msg_loop()
1027 static int msock_init(struct sock_args *args, int server) in msock_init() argument
1032 .sin_port = htons(args->port), in msock_init()
1037 if (!server && args->has_local_ip) in msock_init()
1038 if_addr = args->local_addr.in.s_addr; in msock_init()
1056 if (args->dev && bind_to_device(sd, args->dev) != 0) in msock_init()
1058 else if (args->use_setsockopt && in msock_init()
1059 set_multicast_if(sd, args->ifindex)) in msock_init()
1070 set_membership(sd, args->grp.s_addr, in msock_init()
1071 args->local_addr.in.s_addr, args->ifindex)) in msock_init()
1080 static int msock_server(struct sock_args *args) in msock_server() argument
1082 return msock_init(args, 1); in msock_server()
1085 static int msock_client(struct sock_args *args) in msock_client() argument
1087 return msock_init(args, 0); in msock_client()
1090 static int bind_socket(int sd, struct sock_args *args) in bind_socket() argument
1101 if (!args->has_local_ip && args->type == SOCK_RAW) in bind_socket()
1104 switch (args->version) { in bind_socket()
1106 serv_addr.sin_port = htons(args->port); in bind_socket()
1107 serv_addr.sin_addr = args->local_addr.in; in bind_socket()
1113 serv6_addr.sin6_port = htons(args->port); in bind_socket()
1114 serv6_addr.sin6_addr = args->local_addr.in6; in bind_socket()
1132 static int lsock_init(struct sock_args *args) in lsock_init() argument
1137 sd = socket(args->version, args->type, args->protocol); in lsock_init()
1149 if (args->dev && bind_to_device(sd, args->dev) != 0) in lsock_init()
1151 else if (args->use_setsockopt && in lsock_init()
1152 set_unicast_if(sd, args->ifindex, args->version)) in lsock_init()
1155 if (bind_socket(sd, args)) in lsock_init()
1158 if (args->bind_test_only) in lsock_init()
1161 if (args->type == SOCK_STREAM && listen(sd, 1) < 0) { in lsock_init()
1183 static int do_server(struct sock_args *args) in do_server() argument
1196 if (args->has_grp) in do_server()
1197 lsd = msock_server(args); in do_server()
1199 lsd = lsock_init(args); in do_server()
1204 if (args->bind_test_only) { in do_server()
1209 if (args->type != SOCK_STREAM) { in do_server()
1210 rc = msg_loop(0, lsd, (void *) addr, alen, args); in do_server()
1215 if (args->password && tcp_md5_remote(lsd, args)) { in do_server()
1248 rc = show_sockstat(csd, args); in do_server()
1252 rc = check_device(csd, args); in do_server()
1257 rc = msg_loop(0, csd, (void *) addr, alen, args); in do_server()
1304 static int connectsock(void *addr, socklen_t alen, struct sock_args *args) in connectsock() argument
1309 sd = socket(args->version, args->type, args->protocol); in connectsock()
1324 if (args->dev && bind_to_device(sd, args->dev) != 0) in connectsock()
1326 else if (args->use_setsockopt && in connectsock()
1327 set_unicast_if(sd, args->ifindex, args->version)) in connectsock()
1330 if (args->has_local_ip && bind_socket(sd, args)) in connectsock()
1333 if (args->type != SOCK_STREAM) in connectsock()
1336 if (args->password && tcp_md5sig(sd, addr, alen, args)) in connectsock()
1339 if (args->bind_test_only) in connectsock()
1360 static int do_client(struct sock_args *args) in do_client() argument
1373 if (!args->has_remote_ip && !args->has_grp) { in do_client()
1378 switch (args->version) { in do_client()
1380 sin.sin_port = htons(args->port); in do_client()
1381 if (args->has_grp) in do_client()
1382 sin.sin_addr = args->grp; in do_client()
1384 sin.sin_addr = args->remote_addr.in; in do_client()
1389 sin6.sin6_port = htons(args->port); in do_client()
1390 sin6.sin6_addr = args->remote_addr.in6; in do_client()
1391 sin6.sin6_scope_id = args->scope_id; in do_client()
1397 if (args->has_grp) in do_client()
1398 sd = msock_client(args); in do_client()
1400 sd = connectsock(addr, alen, args); in do_client()
1405 if (args->bind_test_only) in do_client()
1408 if (args->type == SOCK_STREAM) { in do_client()
1409 rc = show_sockstat(sd, args); in do_client()
1414 rc = msg_loop(1, sd, addr, alen, args); in do_client()
1431 static int convert_addr(struct sock_args *args, const char *_str, in convert_addr() argument
1434 int pfx_len_max = args->version == AF_INET6 ? 128 : 32; in convert_addr()
1435 int family = args->version; in convert_addr()
1450 addr = &args->local_addr; in convert_addr()
1454 addr = &args->remote_addr; in convert_addr()
1458 addr = &args->grp; in convert_addr()
1462 addr = &args->expected_laddr; in convert_addr()
1466 addr = &args->expected_raddr; in convert_addr()
1471 args->md5_prefix.v4.sin_family = AF_INET; in convert_addr()
1472 addr = &args->md5_prefix.v4.sin_addr; in convert_addr()
1474 args->md5_prefix.v6.sin6_family = AF_INET6; in convert_addr()
1475 addr = &args->md5_prefix.v6.sin6_addr; in convert_addr()
1484 &args->prefix_len) != 0) { in convert_addr()
1489 args->prefix_len = pfx_len_max; in convert_addr()
1529 args->scope_id = get_ifidx(dev); in convert_addr()
1530 if (args->scope_id < 0) { in convert_addr()
1615 struct sock_args args = { in main() local
1629 * process input args in main()
1641 args.has_local_ip = 1; in main()
1642 if (convert_addr(&args, optarg, ADDR_TYPE_LOCAL) < 0) in main()
1646 args.has_remote_ip = 1; in main()
1647 if (convert_addr(&args, optarg, ADDR_TYPE_REMOTE) < 0) in main()
1655 args.port = (unsigned short) tmp; in main()
1665 args.type = SOCK_DGRAM; in main()
1668 args.type = SOCK_RAW; in main()
1669 args.port = 0; in main()
1670 if (!args.protocol) in main()
1671 args.protocol = IPPROTO_RAW; in main()
1676 args.protocol = pe->p_proto; in main()
1682 args.protocol = tmp; in main()
1692 args.password = optarg; in main()
1695 if (convert_addr(&args, optarg, ADDR_TYPE_MD5_PREFIX) < 0) in main()
1699 args.use_setsockopt = 1; in main()
1702 args.use_cmsg = 1; in main()
1705 args.dev = optarg; in main()
1706 args.ifindex = get_ifidx(optarg); in main()
1707 if (args.ifindex < 0) { in main()
1716 args.has_grp = 1; in main()
1717 if (convert_addr(&args, optarg, ADDR_TYPE_MCAST) < 0) in main()
1719 args.type = SOCK_DGRAM; in main()
1722 args.version = AF_INET6; in main()
1725 args.bind_test_only = 1; in main()
1728 args.has_expected_laddr = 1; in main()
1729 if (convert_addr(&args, optarg, in main()
1734 args.has_expected_raddr = 1; in main()
1735 if (convert_addr(&args, optarg, in main()
1742 args.expected_ifindex = (int)tmp; in main()
1744 args.expected_ifindex = get_ifidx(optarg); in main()
1745 if (args.expected_ifindex < 0) { in main()
1761 if (args.password && in main()
1762 ((!args.has_remote_ip && !args.prefix_len) || args.type != SOCK_STREAM)) { in main()
1767 if (args.prefix_len && !args.password) { in main()
1772 if ((args.use_setsockopt || args.use_cmsg) && !args.ifindex) { in main()
1776 if (args.use_setsockopt || args.use_cmsg) in main()
1777 args.dev = NULL; in main()
1784 if (args.type == SOCK_STREAM && !args.protocol) in main()
1785 args.protocol = IPPROTO_TCP; in main()
1786 if (args.type == SOCK_DGRAM && !args.protocol) in main()
1787 args.protocol = IPPROTO_UDP; in main()
1789 if ((args.type == SOCK_STREAM || args.type == SOCK_DGRAM) && in main()
1790 args.port == 0) { in main()
1795 if (!server_mode && !args.has_grp && in main()
1796 !args.has_remote_ip && !args.has_local_ip) { in main()
1809 rc = do_server(&args); in main()
1814 return do_client(&args); in main()