static void start_rpc_service(void) { searpc_server_init(register_marshals); searpc_create_service("searpc-demo"); /* The first parameter is the implementation function. * The second parameter is the name of the rpc function the * client would call. * The third parameter is the signature. */ searpc_server_register_function("searpc-demo", searpc_strlen, "searpc_strlen", searpc_signature_int__string()); searpc_server_register_function("searpc-demo", searpc_objlisttest, "searpc_objlisttest", searpc_signature_objlist__int_int_string()); }
void ccnet_start_rpc(CcnetSession *session) { searpc_server_init (register_marshals); searpc_create_service ("ccnet-rpcserver"); ccnet_proc_factory_register_processor (session->proc_factory, "ccnet-rpcserver", CCNET_TYPE_RPCSERVER_PROC); #ifdef CCNET_SERVER searpc_create_service ("ccnet-threaded-rpcserver"); ccnet_proc_factory_register_processor (session->proc_factory, "ccnet-threaded-rpcserver", CCNET_TYPE_THREADED_RPCSERVER_PROC); #endif searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_list_peers, "list_peers", searpc_signature_string__void()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_list_resolving_peers, "list_resolving_peers", searpc_signature_objlist__void()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_get_peers_by_role, "get_peers_by_role", searpc_signature_objlist__string()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_get_peer, "get_peer", searpc_signature_object__string()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_get_peer_by_idname, "get_peer_by_idname", searpc_signature_object__string()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_update_peer_address, "update_peer_address", searpc_signature_int__string_string_int()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_get_session_info, "get_session_info", searpc_signature_object__void()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_add_client, "add_client", searpc_signature_int__string()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_add_role, "add_role", searpc_signature_int__string_string()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_remove_role, "remove_role", searpc_signature_int__string_string()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_get_config, "get_config", searpc_signature_string__string()); searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_set_config, "set_config", searpc_signature_int__string_string()); /* RSA encrypt a message with peer's public key. */ searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_pubkey_encrypt, "pubkey_encrypt", searpc_signature_string__string_string()); /* RSA decrypt a message with my private key. */ searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_privkey_decrypt, "privkey_decrypt", searpc_signature_string__string()); #ifdef CCNET_SERVER searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_list_peer_stat, "list_peer_stat", searpc_signature_objlist__void()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_add_emailuser, "add_emailuser", searpc_signature_int__string_string_int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_remove_emailuser, "remove_emailuser", searpc_signature_int__string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_validate_emailuser, "validate_emailuser", searpc_signature_int__string_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_emailuser, "get_emailuser", searpc_signature_object__string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_emailuser_by_id, "get_emailuser_by_id", searpc_signature_object__int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_emailusers, "get_emailusers", searpc_signature_objlist__string_int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_search_emailusers, "search_emailusers", searpc_signature_objlist__string_int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_count_emailusers, "count_emailusers", searpc_signature_int64__string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_update_emailuser, "update_emailuser", searpc_signature_int__int_string_int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_update_role_emailuser, "update_role_emailuser", searpc_signature_int__string_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_superusers, "get_superusers", searpc_signature_objlist__void()); /* RSA sign a message with my private key. */ searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_sign_message, "sign_message", searpc_signature_string__string()); /* Verify a message with a peer's public key */ searpc_server_register_function ("ccnet-rpcserver", ccnet_rpc_verify_message, "verify_message", searpc_signature_int__string_string_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_create_group, "create_group", searpc_signature_int__string_string_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_create_org_group, "create_org_group", searpc_signature_int__int_string_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_remove_group, "remove_group", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_group_add_member, "group_add_member", searpc_signature_int__int_string_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_group_remove_member, "group_remove_member", searpc_signature_int__int_string_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_group_set_admin, "group_set_admin", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_group_unset_admin, "group_unset_admin", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_set_group_name, "set_group_name", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_quit_group, "quit_group", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_groups, "get_groups", searpc_signature_objlist__string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_all_groups, "get_all_groups", searpc_signature_objlist__int_int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_group, "get_group", searpc_signature_object__int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_group_members, "get_group_members", searpc_signature_objlist__int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_check_group_staff, "check_group_staff", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_remove_group_user, "remove_group_user", searpc_signature_int__string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_is_group_user, "is_group_user", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_set_group_creator, "set_group_creator", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_create_org, "create_org", searpc_signature_int__string_string_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_remove_org, "remove_org", searpc_signature_int__int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_all_orgs, "get_all_orgs", searpc_signature_objlist__int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_count_orgs, "count_orgs", searpc_signature_int64__void()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_org_by_url_prefix, "get_org_by_url_prefix", searpc_signature_object__string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_org_by_id, "get_org_by_id", searpc_signature_object__int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_add_org_user, "add_org_user", searpc_signature_int__int_string_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_remove_org_user, "remove_org_user", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_orgs_by_user, "get_orgs_by_user", searpc_signature_objlist__string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_org_emailusers, "get_org_emailusers", searpc_signature_objlist__string_int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_add_org_group, "add_org_group", searpc_signature_int__int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_remove_org_group, "remove_org_group", searpc_signature_int__int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_is_org_group, "is_org_group", searpc_signature_int__int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_org_id_by_group, "get_org_id_by_group", searpc_signature_int__int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_get_org_groups, "get_org_groups", searpc_signature_objlist__int_int_int()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_org_user_exists, "org_user_exists", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_is_org_staff, "is_org_staff", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_set_org_staff, "set_org_staff", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_unset_org_staff, "unset_org_staff", searpc_signature_int__int_string()); searpc_server_register_function ("ccnet-threaded-rpcserver", ccnet_rpc_set_org_name, "set_org_name", searpc_signature_int__int_string()); #endif /* CCNET_SERVER */ }