Lines Matching refs:sk
12 static void make_listen(int sk) in make_listen() argument
17 if (bind(sk, (struct sockaddr *)&addr, sizeof(addr)) < 0) in make_listen()
19 if (listen(sk, 1)) in make_listen()
23 static void test_vefify_ao_info(int sk, struct tcp_ao_info_opt *info, in test_vefify_ao_info() argument
29 if (getsockopt(sk, IPPROTO_TCP, TCP_AO_INFO, &tmp, &len)) in test_vefify_ao_info()
58 static void __setsockopt_checked(int sk, int optname, bool get, in __setsockopt_checked() argument
71 ret = getsockopt(sk, IPPROTO_TCP, optname, optval, len); in __setsockopt_checked()
73 ret = setsockopt(sk, IPPROTO_TCP, optname, optval, *len); in __setsockopt_checked()
80 close(sk); in __setsockopt_checked()
90 test_verify_socket_key(sk, optval); in __setsockopt_checked()
92 test_vefify_ao_info(sk, optval, tst2); in __setsockopt_checked()
99 close(sk); in __setsockopt_checked()
102 static void setsockopt_checked(int sk, int optname, void *optval, in setsockopt_checked() argument
125 __setsockopt_checked(sk, optname, false, optval, &len, err, cmd, tst); in setsockopt_checked()
130 int sk = socket(test_family, SOCK_STREAM, IPPROTO_TCP); in prepare_defs() local
132 if (sk < 0) in prepare_defs()
147 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, in prepare_defs()
160 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, in prepare_defs()
169 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, in prepare_defs()
181 return sk; in prepare_defs()
196 int sk; in test_extend() local
199 sk = prepare_defs(cmd, &tmp_opt); in test_extend()
200 __setsockopt_checked(sk, cmd, get, &tmp_opt, &under_size, in test_extend()
204 sk = prepare_defs(cmd, &tmp_opt); in test_extend()
205 __setsockopt_checked(sk, cmd, get, &tmp_opt, &extended_size, in test_extend()
209 sk = prepare_defs(cmd, &tmp_opt); in test_extend()
210 __setsockopt_checked(sk, cmd, get, NULL, &extended_size, in test_extend()
215 sk = prepare_defs(cmd, &tmp_opt); in test_extend()
216 __setsockopt_checked(sk, cmd, get, &tmp_opt, NULL, in test_extend()
238 int sk; in test_optmem_limit() local
243 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_optmem_limit()
251 err = setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, in test_optmem_limit()
270 close(sk); in test_optmem_limit()
276 int sk; in test_einval_add_key() local
278 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
280 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "too big keylen"); in test_einval_add_key()
282 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
284 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "using reserved padding"); in test_einval_add_key()
286 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
288 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "using reserved2 padding"); in test_einval_add_key()
291 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
294 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "wrong address family"); in test_einval_add_key()
296 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
298 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "port (unsupported)"); in test_einval_add_key()
300 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
302 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "no prefix, addr"); in test_einval_add_key()
304 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
307 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, 0, "no prefix, any addr"); in test_einval_add_key()
309 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
312 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "prefix, any addr"); in test_einval_add_key()
314 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
316 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "too big prefix"); in test_einval_add_key()
318 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
320 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "too short prefix"); in test_einval_add_key()
322 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
324 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "bad key flags"); in test_einval_add_key()
326 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
327 make_listen(sk); in test_einval_add_key()
329 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "add current key on a listen socket"); in test_einval_add_key()
331 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
332 make_listen(sk); in test_einval_add_key()
334 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "add rnext key on a listen socket"); in test_einval_add_key()
336 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
337 make_listen(sk); in test_einval_add_key()
340 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "add current+rnext key on a listen socket"); in test_einval_add_key()
342 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
344 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, 0, "add key and set as current"); in test_einval_add_key()
346 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
348 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, 0, "add key and set as rnext"); in test_einval_add_key()
350 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
353 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, 0, "add key and set as current+rnext"); in test_einval_add_key()
355 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
357 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, in test_einval_add_key()
360 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
363 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EINVAL, "non-existent VRF"); in test_einval_add_key()
372 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
374 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EMSGSIZE, "maclen bigger than TCP hdr"); in test_einval_add_key()
376 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in test_einval_add_key()
378 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, ENOENT, "bad algo"); in test_einval_add_key()
384 int sk; in test_einval_del_key() local
386 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
388 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, EINVAL, "using reserved padding"); in test_einval_del_key()
390 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
392 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, EINVAL, "using reserved2 padding"); in test_einval_del_key()
394 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
395 make_listen(sk); in test_einval_del_key()
396 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, DEFAULT_TEST_PREFIX, 0, 0)) in test_einval_del_key()
399 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, EINVAL, "del and set current key on a listen socket"); in test_einval_del_key()
401 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
402 make_listen(sk); in test_einval_del_key()
403 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, DEFAULT_TEST_PREFIX, 0, 0)) in test_einval_del_key()
406 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, EINVAL, "del and set rnext key on a listen socket"); in test_einval_del_key()
408 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
409 make_listen(sk); in test_einval_del_key()
410 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, DEFAULT_TEST_PREFIX, 0, 0)) in test_einval_del_key()
414 …setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, EINVAL, "del and set current+rnext key on a listen so… in test_einval_del_key()
416 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
418 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, EINVAL, "bad key flags"); in test_einval_del_key()
420 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
422 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, EINVAL, in test_einval_del_key()
425 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
428 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "non-existent VRF"); in test_einval_del_key()
430 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
432 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "set non-existing current key"); in test_einval_del_key()
434 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
436 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "set non-existing rnext key"); in test_einval_del_key()
438 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
441 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "set non-existing current+rnext key"); in test_einval_del_key()
443 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
444 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, DEFAULT_TEST_PREFIX, 0, 0)) in test_einval_del_key()
447 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, 0, "set current key"); in test_einval_del_key()
449 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
450 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, DEFAULT_TEST_PREFIX, 0, 0)) in test_einval_del_key()
453 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, 0, "set rnext key"); in test_einval_del_key()
455 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
456 if (test_add_key(sk, DEFAULT_TEST_PASSWORD, this_ip_dest, DEFAULT_TEST_PREFIX, 0, 0)) in test_einval_del_key()
460 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, 0, "set current+rnext key"); in test_einval_del_key()
462 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
465 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "set as current key to be removed"); in test_einval_del_key()
467 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
470 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "set as rnext key to be removed"); in test_einval_del_key()
472 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
477 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "set as current+rnext key to be removed"); in test_einval_del_key()
479 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
481 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, EINVAL, "async on non-listen"); in test_einval_del_key()
483 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
485 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "non-existing sndid"); in test_einval_del_key()
487 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
489 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "non-existing rcvid"); in test_einval_del_key()
491 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
493 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, ENOENT, "incorrect addr"); in test_einval_del_key()
495 sk = prepare_defs(TCP_AO_DEL_KEY, &del); in test_einval_del_key()
496 setsockopt_checked(sk, TCP_AO_DEL_KEY, &del, 0, "correct key delete"); in test_einval_del_key()
502 int sk; in test_einval_ao_info() local
504 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
505 make_listen(sk); in test_einval_ao_info()
507 setsockopt_checked(sk, TCP_AO_INFO, &info, EINVAL, "set current key on a listen socket"); in test_einval_ao_info()
509 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
510 make_listen(sk); in test_einval_ao_info()
512 setsockopt_checked(sk, TCP_AO_INFO, &info, EINVAL, "set rnext key on a listen socket"); in test_einval_ao_info()
514 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
515 make_listen(sk); in test_einval_ao_info()
518 setsockopt_checked(sk, TCP_AO_INFO, &info, EINVAL, "set current+rnext key on a listen socket"); in test_einval_ao_info()
520 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
522 setsockopt_checked(sk, TCP_AO_INFO, &info, EINVAL, "using reserved padding"); in test_einval_ao_info()
524 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
526 setsockopt_checked(sk, TCP_AO_INFO, &info, EINVAL, "using reserved2 padding"); in test_einval_ao_info()
528 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
530 setsockopt_checked(sk, TCP_AO_INFO, &info, 0, "accept_icmps"); in test_einval_ao_info()
532 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
534 setsockopt_checked(sk, TCP_AO_INFO, &info, 0, "ao required"); in test_einval_ao_info()
537 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
539 if (test_set_md5(sk, tcp_md5_client, TEST_PREFIX, -1, in test_einval_ao_info()
542 close(sk); in test_einval_ao_info()
544 setsockopt_checked(sk, TCP_AO_INFO, &info, EKEYREJECTED, in test_einval_ao_info()
549 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
551 setsockopt_checked(sk, TCP_AO_INFO, &info, ENOENT, "set non-existing current key"); in test_einval_ao_info()
553 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
555 setsockopt_checked(sk, TCP_AO_INFO, &info, ENOENT, "set non-existing rnext key"); in test_einval_ao_info()
557 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
560 setsockopt_checked(sk, TCP_AO_INFO, &info, ENOENT, "set non-existing current+rnext key"); in test_einval_ao_info()
562 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
565 setsockopt_checked(sk, TCP_AO_INFO, &info, 0, "set current key"); in test_einval_ao_info()
567 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
570 setsockopt_checked(sk, TCP_AO_INFO, &info, 0, "set rnext key"); in test_einval_ao_info()
572 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
577 setsockopt_checked(sk, TCP_AO_INFO, &info, 0, "set current+rnext key"); in test_einval_ao_info()
579 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
586 setsockopt_checked(sk, TCP_AO_INFO, &info, 0, "set counters"); in test_einval_ao_info()
588 sk = prepare_defs(TCP_AO_INFO, &info); in test_einval_ao_info()
589 setsockopt_checked(sk, TCP_AO_INFO, &info, 0, "no-op"); in test_einval_ao_info()
592 static void getsockopt_checked(int sk, struct tcp_ao_getsockopt *optval, in getsockopt_checked() argument
597 __setsockopt_checked(sk, TCP_AO_GET_KEYS, true, optval, &len, err, in getsockopt_checked()
604 int sk; in test_einval_get_keys() local
606 sk = socket(test_family, SOCK_STREAM, IPPROTO_TCP); in test_einval_get_keys()
607 if (sk < 0) in test_einval_get_keys()
609 getsockopt_checked(sk, &out, ENOENT, "no ao_info"); in test_einval_get_keys()
611 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
612 getsockopt_checked(sk, &out, 0, "proper tcp_ao_get_mkts()"); in test_einval_get_keys()
614 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
616 getsockopt_checked(sk, &out, EINVAL, "set out-only pkt_good counter"); in test_einval_get_keys()
618 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
620 getsockopt_checked(sk, &out, EINVAL, "set out-only pkt_bad counter"); in test_einval_get_keys()
622 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
624 getsockopt_checked(sk, &out, EINVAL, "bad keyflags"); in test_einval_get_keys()
626 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
628 getsockopt_checked(sk, &out, EINVAL, in test_einval_get_keys()
631 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
633 getsockopt_checked(sk, &out, EINVAL, "using reserved field"); in test_einval_get_keys()
635 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
639 getsockopt_checked(sk, &out, EINVAL, "no prefix, addr"); in test_einval_get_keys()
641 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
645 getsockopt_checked(sk, &out, 0, "no prefix, any addr"); in test_einval_get_keys()
647 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
651 getsockopt_checked(sk, &out, EINVAL, "prefix, any addr"); in test_einval_get_keys()
653 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
657 getsockopt_checked(sk, &out, EINVAL, "too big prefix"); in test_einval_get_keys()
659 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
663 getsockopt_checked(sk, &out, EINVAL, "too short prefix"); in test_einval_get_keys()
665 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
669 getsockopt_checked(sk, &out, 0, "prefix + addr"); in test_einval_get_keys()
671 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
674 getsockopt_checked(sk, &out, EINVAL, "get_all + prefix"); in test_einval_get_keys()
676 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
679 getsockopt_checked(sk, &out, EINVAL, "get_all + addr"); in test_einval_get_keys()
681 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
684 getsockopt_checked(sk, &out, EINVAL, "get_all + sndid"); in test_einval_get_keys()
686 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
689 getsockopt_checked(sk, &out, EINVAL, "get_all + rcvid"); in test_einval_get_keys()
691 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
695 getsockopt_checked(sk, &out, EINVAL, "current + prefix"); in test_einval_get_keys()
697 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
701 getsockopt_checked(sk, &out, EINVAL, "current + addr"); in test_einval_get_keys()
703 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
707 getsockopt_checked(sk, &out, EINVAL, "current + sndid"); in test_einval_get_keys()
709 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
713 getsockopt_checked(sk, &out, EINVAL, "current + rcvid"); in test_einval_get_keys()
715 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
719 getsockopt_checked(sk, &out, EINVAL, "rnext + prefix"); in test_einval_get_keys()
721 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
725 getsockopt_checked(sk, &out, EINVAL, "rnext + addr"); in test_einval_get_keys()
727 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
731 getsockopt_checked(sk, &out, EINVAL, "rnext + sndid"); in test_einval_get_keys()
733 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
737 getsockopt_checked(sk, &out, EINVAL, "rnext + rcvid"); in test_einval_get_keys()
739 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
742 getsockopt_checked(sk, &out, EINVAL, "get_all + current"); in test_einval_get_keys()
744 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
747 getsockopt_checked(sk, &out, EINVAL, "get_all + rnext"); in test_einval_get_keys()
749 sk = prepare_defs(TCP_AO_GET_KEYS, &out); in test_einval_get_keys()
753 getsockopt_checked(sk, &out, 0, "current + rnext"); in test_einval_get_keys()
768 int sk; in duplicate_tests() local
770 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in duplicate_tests()
771 if (setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, &ao, sizeof(ao))) in duplicate_tests()
773 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EEXIST, "duplicate: full copy"); in duplicate_tests()
775 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in duplicate_tests()
779 if (setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, &ao2, sizeof(ao))) in duplicate_tests()
781 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EEXIST, "duplicate: any addr key on the socket"); in duplicate_tests()
783 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in duplicate_tests()
784 if (setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, &ao, sizeof(ao))) in duplicate_tests()
788 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EEXIST, "duplicate: add any addr key"); in duplicate_tests()
792 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in duplicate_tests()
793 if (setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, &ao, sizeof(ao))) in duplicate_tests()
798 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EEXIST, "duplicate: add any addr for the same subnet"); in duplicate_tests()
800 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in duplicate_tests()
801 if (setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, &ao, sizeof(ao))) in duplicate_tests()
803 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EEXIST, "duplicate: full copy of a key"); in duplicate_tests()
805 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in duplicate_tests()
806 if (setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, &ao, sizeof(ao))) in duplicate_tests()
809 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EEXIST, "duplicate: RecvID differs"); in duplicate_tests()
811 sk = prepare_defs(TCP_AO_ADD_KEY, &ao); in duplicate_tests()
812 if (setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, &ao, sizeof(ao))) in duplicate_tests()
815 setsockopt_checked(sk, TCP_AO_ADD_KEY, &ao, EEXIST, "duplicate: SendID differs"); in duplicate_tests()
818 static void fetch_all_keys(int sk, struct tcp_ao_getsockopt *keys) in fetch_all_keys() argument
825 if (getsockopt(sk, IPPROTO_TCP, TCP_AO_GET_KEYS, &keys[0], &optlen)) in fetch_all_keys()
835 int sk; in prepare_test_keys() local
837 sk = socket(test_family, SOCK_STREAM, IPPROTO_TCP); in prepare_test_keys()
838 if (sk < 0) in prepare_test_keys()
859 if (setsockopt(sk, IPPROTO_TCP, TCP_AO_ADD_KEY, in prepare_test_keys()
866 fetch_all_keys(sk, keys); in prepare_test_keys()
868 return sk; in prepare_test_keys()
887 static void filter_keys_checked(int sk, struct tcp_ao_getsockopt *filter, in filter_keys_checked() argument
895 fetch_all_keys(sk, all_keys); in filter_keys_checked()
898 if (getsockopt(sk, IPPROTO_TCP, TCP_AO_GET_KEYS, filtered_keys, &len)) in filter_keys_checked()
913 close(sk); in filter_keys_checked()
922 int sk, f, nmatches; in filter_tests() local
926 sk = prepare_test_keys(original_keys); in filter_tests()
932 filter_keys_checked(sk, &filter, &original_keys[f], 1, in filter_tests()
936 sk = prepare_test_keys(original_keys); in filter_tests()
946 filter_keys_checked(sk, &filter, &original_keys[f], 1, "by is_current"); in filter_tests()
949 sk = prepare_test_keys(original_keys); in filter_tests()
959 filter_keys_checked(sk, &filter, &original_keys[f], 1, "by is_rnext"); in filter_tests()
963 sk = prepare_test_keys(original_keys); in filter_tests()
979 filter_keys_checked(sk, &filter, expected_keys, nmatches, in filter_tests()
982 sk = prepare_test_keys(original_keys); in filter_tests()
986 if (getsockopt(sk, IPPROTO_TCP, TCP_AO_GET_KEYS, &filter, &len)) in filter_tests()