Lines Matching refs:args
120 va_list args; in log_msg() local
128 va_start(args, format); in log_msg()
129 vfprintf(stdout, format, args); in log_msg()
130 va_end(args); in log_msg()
138 va_list args; in log_error() local
146 va_start(args, format); in log_error()
147 vfprintf(stderr, format, args); in log_error()
148 va_end(args); in log_error()
156 va_list args; in log_err_errno() local
164 va_start(args, fmt); in log_err_errno()
165 vfprintf(stderr, fmt, args); in log_err_errno()
166 va_end(args); in log_err_errno()
228 static int tcp_md5_remote(int sd, struct sock_args *args) in tcp_md5_remote() argument
239 switch (args->version) { in tcp_md5_remote()
241 sin.sin_port = htons(args->port); in tcp_md5_remote()
242 sin.sin_addr = args->remote_addr.in; in tcp_md5_remote()
247 sin6.sin6_port = htons(args->port); in tcp_md5_remote()
248 sin6.sin6_addr = args->remote_addr.in6; in tcp_md5_remote()
257 if (tcp_md5sig(sd, addr, alen, args->password)) in tcp_md5_remote()
315 static int check_device(int sd, struct sock_args *args) in check_device() argument
328 if (!args->expected_ifindex) in check_device()
331 if (args->expected_ifindex != ifindex) { in check_device()
333 args->expected_ifindex, ifindex); in check_device()
338 args->expected_ifindex, ifindex); in check_device()
545 static int show_sockstat(int sd, struct sock_args *args) in show_sockstat() argument
558 if (args->has_expected_laddr) { in show_sockstat()
559 rc = expected_addr_match(sa, &args->expected_laddr, in show_sockstat()
571 if (args->has_expected_raddr) { in show_sockstat()
572 rc |= expected_addr_match(sa, &args->expected_raddr, in show_sockstat()
699 static int send_msg(int sd, void *addr, socklen_t alen, struct sock_args *args) in send_msg() argument
701 if (args->type == SOCK_STREAM) { in send_msg()
706 } else if (args->ifindex && args->use_cmsg) { in send_msg()
707 if (send_msg_cmsg(sd, addr, alen, args->ifindex, args->version)) in send_msg()
720 static int socket_read_dgram(int sd, struct sock_args *args) in socket_read_dgram() argument
761 if (args->expected_ifindex) { in socket_read_dgram()
762 if (args->expected_ifindex != ifindex) { in socket_read_dgram()
764 args->expected_ifindex, ifindex); in socket_read_dgram()
768 args->expected_ifindex, ifindex); in socket_read_dgram()
794 if (args->version == AF_INET6) { in socket_read_dgram()
797 if (args->dev) { in socket_read_dgram()
865 static int socket_read(int sd, struct sock_args *args) in socket_read() argument
867 if (args->type == SOCK_STREAM) in socket_read()
870 return socket_read_dgram(sd, args); in socket_read()
921 struct sock_args *args) in msg_loop() argument
928 if (args->type != SOCK_STREAM) in msg_loop()
929 set_recv_attr(sd, args->version); in msg_loop()
936 if (send_msg(sd, addr, alen, args)) in msg_loop()
968 rc = socket_read(sd, args); in msg_loop()
980 if (stdin_to_socket(sd, args->type, addr, alen) <= 0) in msg_loop()
997 if (send_msg(sd, addr, alen, args)) { in msg_loop()
1007 static int msock_init(struct sock_args *args, int server) in msock_init() argument
1012 .sin_port = htons(args->port), in msock_init()
1017 if (!server && args->has_local_ip) in msock_init()
1018 if_addr = args->local_addr.in.s_addr; in msock_init()
1036 if (args->dev && bind_to_device(sd, args->dev) != 0) in msock_init()
1038 else if (args->use_setsockopt && in msock_init()
1039 set_multicast_if(sd, args->ifindex)) in msock_init()
1050 set_membership(sd, args->grp.s_addr, in msock_init()
1051 args->local_addr.in.s_addr, args->ifindex)) in msock_init()
1060 static int msock_server(struct sock_args *args) in msock_server() argument
1062 return msock_init(args, 1); in msock_server()
1065 static int msock_client(struct sock_args *args) in msock_client() argument
1067 return msock_init(args, 0); in msock_client()
1070 static int bind_socket(int sd, struct sock_args *args) in bind_socket() argument
1081 if (!args->has_local_ip && args->type == SOCK_RAW) in bind_socket()
1084 switch (args->version) { in bind_socket()
1086 serv_addr.sin_port = htons(args->port); in bind_socket()
1087 serv_addr.sin_addr = args->local_addr.in; in bind_socket()
1093 serv6_addr.sin6_port = htons(args->port); in bind_socket()
1094 serv6_addr.sin6_addr = args->local_addr.in6; in bind_socket()
1112 static int lsock_init(struct sock_args *args) in lsock_init() argument
1117 sd = socket(args->version, args->type, args->protocol); in lsock_init()
1129 if (args->dev && bind_to_device(sd, args->dev) != 0) in lsock_init()
1131 else if (args->use_setsockopt && in lsock_init()
1132 set_unicast_if(sd, args->ifindex, args->version)) in lsock_init()
1135 if (bind_socket(sd, args)) in lsock_init()
1138 if (args->bind_test_only) in lsock_init()
1141 if (args->type == SOCK_STREAM && listen(sd, 1) < 0) { in lsock_init()
1163 static int do_server(struct sock_args *args) in do_server() argument
1176 if (args->has_grp) in do_server()
1177 lsd = msock_server(args); in do_server()
1179 lsd = lsock_init(args); in do_server()
1184 if (args->bind_test_only) { in do_server()
1189 if (args->type != SOCK_STREAM) { in do_server()
1190 rc = msg_loop(0, lsd, (void *) addr, alen, args); in do_server()
1195 if (args->password && tcp_md5_remote(lsd, args)) { in do_server()
1228 rc = show_sockstat(csd, args); in do_server()
1232 rc = check_device(csd, args); in do_server()
1237 rc = msg_loop(0, csd, (void *) addr, alen, args); in do_server()
1284 static int connectsock(void *addr, socklen_t alen, struct sock_args *args) in connectsock() argument
1289 sd = socket(args->version, args->type, args->protocol); in connectsock()
1304 if (args->dev && bind_to_device(sd, args->dev) != 0) in connectsock()
1306 else if (args->use_setsockopt && in connectsock()
1307 set_unicast_if(sd, args->ifindex, args->version)) in connectsock()
1310 if (args->has_local_ip && bind_socket(sd, args)) in connectsock()
1313 if (args->type != SOCK_STREAM) in connectsock()
1316 if (args->password && tcp_md5sig(sd, addr, alen, args->password)) in connectsock()
1319 if (args->bind_test_only) in connectsock()
1340 static int do_client(struct sock_args *args) in do_client() argument
1353 if (!args->has_remote_ip && !args->has_grp) { in do_client()
1358 switch (args->version) { in do_client()
1360 sin.sin_port = htons(args->port); in do_client()
1361 if (args->has_grp) in do_client()
1362 sin.sin_addr = args->grp; in do_client()
1364 sin.sin_addr = args->remote_addr.in; in do_client()
1369 sin6.sin6_port = htons(args->port); in do_client()
1370 sin6.sin6_addr = args->remote_addr.in6; in do_client()
1371 sin6.sin6_scope_id = args->scope_id; in do_client()
1377 if (args->has_grp) in do_client()
1378 sd = msock_client(args); in do_client()
1380 sd = connectsock(addr, alen, args); in do_client()
1385 if (args->bind_test_only) in do_client()
1388 if (args->type == SOCK_STREAM) { in do_client()
1389 rc = show_sockstat(sd, args); in do_client()
1394 rc = msg_loop(1, sd, addr, alen, args); in do_client()
1410 static int convert_addr(struct sock_args *args, const char *_str, in convert_addr() argument
1413 int family = args->version; in convert_addr()
1428 addr = &args->local_addr; in convert_addr()
1432 addr = &args->remote_addr; in convert_addr()
1436 addr = &args->grp; in convert_addr()
1440 addr = &args->expected_laddr; in convert_addr()
1444 addr = &args->expected_raddr; in convert_addr()
1483 args->scope_id = get_ifidx(dev); in convert_addr()
1484 if (args->scope_id < 0) { in convert_addr()
1568 struct sock_args args = { in main() local
1594 args.has_local_ip = 1; in main()
1595 if (convert_addr(&args, optarg, ADDR_TYPE_LOCAL) < 0) in main()
1599 args.has_remote_ip = 1; in main()
1600 if (convert_addr(&args, optarg, ADDR_TYPE_REMOTE) < 0) in main()
1608 args.port = (unsigned short) tmp; in main()
1618 args.type = SOCK_DGRAM; in main()
1621 args.type = SOCK_RAW; in main()
1622 args.port = 0; in main()
1627 args.protocol = pe->p_proto; in main()
1633 args.protocol = tmp; in main()
1643 args.password = optarg; in main()
1646 args.use_setsockopt = 1; in main()
1649 args.use_cmsg = 1; in main()
1652 args.dev = optarg; in main()
1653 args.ifindex = get_ifidx(optarg); in main()
1654 if (args.ifindex < 0) { in main()
1663 args.has_grp = 1; in main()
1664 if (convert_addr(&args, optarg, ADDR_TYPE_MCAST) < 0) in main()
1666 args.type = SOCK_DGRAM; in main()
1669 args.version = AF_INET6; in main()
1672 args.bind_test_only = 1; in main()
1675 args.has_expected_laddr = 1; in main()
1676 if (convert_addr(&args, optarg, in main()
1681 args.has_expected_raddr = 1; in main()
1682 if (convert_addr(&args, optarg, in main()
1689 args.expected_ifindex = (int)tmp; in main()
1691 args.expected_ifindex = get_ifidx(optarg); in main()
1692 if (args.expected_ifindex < 0) { in main()
1708 if (args.password && in main()
1709 (!args.has_remote_ip || args.type != SOCK_STREAM)) { in main()
1714 if ((args.use_setsockopt || args.use_cmsg) && !args.ifindex) { in main()
1718 if (args.use_setsockopt || args.use_cmsg) in main()
1719 args.dev = NULL; in main()
1726 if (args.type == SOCK_STREAM && !args.protocol) in main()
1727 args.protocol = IPPROTO_TCP; in main()
1728 if (args.type == SOCK_DGRAM && !args.protocol) in main()
1729 args.protocol = IPPROTO_UDP; in main()
1731 if ((args.type == SOCK_STREAM || args.type == SOCK_DGRAM) && in main()
1732 args.port == 0) { in main()
1737 if (!server_mode && !args.has_grp && in main()
1738 !args.has_remote_ip && !args.has_local_ip) { in main()
1751 rc = do_server(&args); in main()
1756 return do_client(&args); in main()