netlabel_calipso.c (d7cce01504a0ccb95b5007d846560cfccbc1947f) | netlabel_calipso.c (ceba1832b1b2da0149c51de62a847c00bca1677a) |
---|---|
1/* 2 * NetLabel CALIPSO/IPv6 Support 3 * 4 * This file defines the CALIPSO/IPv6 functions for the NetLabel system. The 5 * NetLabel system manages static and dynamic label mappings for network 6 * protocols such as CIPSO and CALIPSO. 7 * 8 * Authors: Paul Moore <paul@paul-moore.com> --- 500 unchanged lines hidden (view full) --- 509{ 510 int ret_val = -ENOMSG; 511 const struct netlbl_calipso_ops *ops = netlbl_calipso_ops_get(); 512 513 if (ops) 514 ret_val = ops->doi_walk(skip_cnt, callback, cb_arg); 515 return ret_val; 516} | 1/* 2 * NetLabel CALIPSO/IPv6 Support 3 * 4 * This file defines the CALIPSO/IPv6 functions for the NetLabel system. The 5 * NetLabel system manages static and dynamic label mappings for network 6 * protocols such as CIPSO and CALIPSO. 7 * 8 * Authors: Paul Moore <paul@paul-moore.com> --- 500 unchanged lines hidden (view full) --- 509{ 510 int ret_val = -ENOMSG; 511 const struct netlbl_calipso_ops *ops = netlbl_calipso_ops_get(); 512 513 if (ops) 514 ret_val = ops->doi_walk(skip_cnt, callback, cb_arg); 515 return ret_val; 516} |
517 518/** 519 * calipso_sock_getattr - Get the security attributes from a sock 520 * @sk: the sock 521 * @secattr: the security attributes 522 * 523 * Description: 524 * Query @sk to see if there is a CALIPSO option attached to the sock and if 525 * there is return the CALIPSO security attributes in @secattr. This function 526 * requires that @sk be locked, or privately held, but it does not do any 527 * locking itself. Returns zero on success and negative values on failure. 528 * 529 */ 530int calipso_sock_getattr(struct sock *sk, struct netlbl_lsm_secattr *secattr) 531{ 532 int ret_val = -ENOMSG; 533 const struct netlbl_calipso_ops *ops = netlbl_calipso_ops_get(); 534 535 if (ops) 536 ret_val = ops->sock_getattr(sk, secattr); 537 return ret_val; 538} 539 540/** 541 * calipso_sock_setattr - Add a CALIPSO option to a socket 542 * @sk: the socket 543 * @doi_def: the CALIPSO DOI to use 544 * @secattr: the specific security attributes of the socket 545 * 546 * Description: 547 * Set the CALIPSO option on the given socket using the DOI definition and 548 * security attributes passed to the function. This function requires 549 * exclusive access to @sk, which means it either needs to be in the 550 * process of being created or locked. Returns zero on success and negative 551 * values on failure. 552 * 553 */ 554int calipso_sock_setattr(struct sock *sk, 555 const struct calipso_doi *doi_def, 556 const struct netlbl_lsm_secattr *secattr) 557{ 558 int ret_val = -ENOMSG; 559 const struct netlbl_calipso_ops *ops = netlbl_calipso_ops_get(); 560 561 if (ops) 562 ret_val = ops->sock_setattr(sk, doi_def, secattr); 563 return ret_val; 564} 565 566/** 567 * calipso_sock_delattr - Delete the CALIPSO option from a socket 568 * @sk: the socket 569 * 570 * Description: 571 * Removes the CALIPSO option from a socket, if present. 572 * 573 */ 574void calipso_sock_delattr(struct sock *sk) 575{ 576 const struct netlbl_calipso_ops *ops = netlbl_calipso_ops_get(); 577 578 if (ops) 579 ops->sock_delattr(sk); 580} |
|