MCPcopy Create free account
hub / github.com/corosync/corosync / cpg_membership_get

Function cpg_membership_get

lib/cpg.c:746–807  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

744}
745
746cs_error_t cpg_membership_get (
747 cpg_handle_t handle,
748 struct cpg_name *group_name,
749 struct cpg_address *member_list,
750 int *member_list_entries)
751{
752 cs_error_t error;
753 struct cpg_inst *cpg_inst;
754 struct iovec iov;
755 struct req_lib_cpg_membership_get req_lib_cpg_membership_get;
756 struct res_lib_cpg_membership_get res_lib_cpg_membership_get;
757 unsigned int i;
758
759 if (group_name->length > CPG_MAX_NAME_LENGTH) {
760 return (CS_ERR_NAME_TOO_LONG);
761 }
762 if (member_list == NULL) {
763 return (CS_ERR_INVALID_PARAM);
764 }
765 if (member_list_entries == NULL) {
766 return (CS_ERR_INVALID_PARAM);
767 }
768
769 error = hdb_error_to_cs (hdb_handle_get (&cpg_handle_t_db, handle, (void *)&cpg_inst));
770 if (error != CS_OK) {
771 return (error);
772 }
773
774 req_lib_cpg_membership_get.header.size = sizeof (struct req_lib_cpg_membership_get);
775 req_lib_cpg_membership_get.header.id = MESSAGE_REQ_CPG_MEMBERSHIP;
776
777 marshall_to_mar_cpg_name_t (&req_lib_cpg_membership_get.group_name,
778 group_name);
779
780 iov.iov_base = (void *)&req_lib_cpg_membership_get;
781 iov.iov_len = sizeof (struct req_lib_cpg_membership_get);
782
783 error = coroipcc_msg_send_reply_receive (cpg_inst->c, &iov, 1,
784 &res_lib_cpg_membership_get, sizeof (res_lib_cpg_membership_get));
785
786 if (error != CS_OK) {
787 goto error_exit;
788 }
789
790 error = res_lib_cpg_membership_get.header.error;
791
792 /*
793 * Copy results to caller
794 */
795 *member_list_entries = res_lib_cpg_membership_get.member_count;
796 if (member_list) {
797 for (i = 0; i < res_lib_cpg_membership_get.member_count; i++) {
798 marshall_from_mar_cpg_address_t (&member_list[i],
799 &res_lib_cpg_membership_get.member_list[i]);
800 }
801 }
802
803error_exit:

Callers 2

mainFunction · 0.85
membership_getFunction · 0.85

Calls 6

hdb_error_to_csFunction · 0.85
hdb_handle_getFunction · 0.85
hdb_handle_putFunction · 0.85

Tested by 1

mainFunction · 0.68