static void start_rpc_service (CcnetClient *client, int cloud_mode) { searpc_server_init (register_marshals); searpc_create_service ("seafserv-rpcserver"); ccnet_register_service (client, "seafserv-rpcserver", "rpc-inner", CCNET_TYPE_RPCSERVER_PROC, NULL); searpc_create_service ("seafserv-threaded-rpcserver"); ccnet_register_service (client, "seafserv-threaded-rpcserver", "rpc-inner", CCNET_TYPE_THREADED_RPCSERVER_PROC, NULL); /* threaded services */ /* repo manipulation */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo, "seafile_get_repo", searpc_signature_object__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_destroy_repo, "seafile_destroy_repo", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo_list, "seafile_get_repo_list", searpc_signature_objlist__int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo_owner, "seafile_get_repo_owner", searpc_signature_string__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_edit_repo, "seafile_edit_repo", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_is_repo_owner, "seafile_is_repo_owner", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_owned_repos, "seafile_list_owned_repos", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_server_repo_size, "seafile_server_repo_size", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_repo_set_access_property, "seafile_repo_set_access_property", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_repo_query_access_property, "seafile_repo_query_access_property", searpc_signature_string__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_revert_on_server, "seafile_revert_on_server", searpc_signature_int__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_diff, "seafile_diff", searpc_signature_objlist__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_file, "seafile_post_file", searpc_signature_int__string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_multi_files, "seafile_post_multi_files", searpc_signature_int__string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_put_file, "seafile_put_file", searpc_signature_int__string_string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_empty_file, "seafile_post_empty_file", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_dir, "seafile_post_dir", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_del_file, "seafile_del_file", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_copy_file, "seafile_copy_file", searpc_signature_int__string_string_string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_move_file, "seafile_move_file", searpc_signature_int__string_string_string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_rename_file, "seafile_rename_file", searpc_signature_int__string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_is_valid_filename, "seafile_is_valid_filename", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_create_repo, "seafile_create_repo", searpc_signature_string__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_commit, "seafile_get_commit", searpc_signature_object__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_dir, "seafile_list_dir", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_file_size, "seafile_get_file_size", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_dir_size, "seafile_get_dir_size", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_dir_by_path, "seafile_list_dir_by_path", searpc_signature_objlist__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_dirid_by_path, "seafile_get_dirid_by_path", searpc_signature_string__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_file_id_by_path, "seafile_get_file_id_by_path", searpc_signature_string__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_dir_id_by_path, "seafile_get_dir_id_by_path", searpc_signature_string__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_file_revisions, "seafile_list_file_revisions", searpc_signature_objlist__string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_calc_files_last_modified, "seafile_calc_files_last_modified", searpc_signature_objlist__string_string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_revert_file, "seafile_revert_file", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_revert_dir, "seafile_revert_dir", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_deleted, "get_deleted", searpc_signature_objlist__string_int()); /* share repo to user */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_add_share, "seafile_add_share", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_share_repos, "seafile_list_share_repos", searpc_signature_objlist__string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_org_share_repos, "seafile_list_org_share_repos", searpc_signature_objlist__int_string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_remove_share, "seafile_remove_share", searpc_signature_int__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_share_permission, "set_share_permission", searpc_signature_int__string_string_string_string()); /* share repo to group */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_group_share_repo, "seafile_group_share_repo", searpc_signature_int__string_int_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_group_unshare_repo, "seafile_group_unshare_repo", searpc_signature_int__string_int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_shared_groups_by_repo, "seafile_get_shared_groups_by_repo", searpc_signature_string__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_group_repoids, "seafile_get_group_repoids", searpc_signature_string__int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_group_repos_by_owner, "get_group_repos_by_owner", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_group_repo_owner, "get_group_repo_owner", searpc_signature_string__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_remove_repo_group, "seafile_remove_repo_group", searpc_signature_int__int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_group_repo_permission, "set_group_repo_permission", searpc_signature_int__int_string_string()); /* branch and commit */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_branch_gets, "seafile_branch_gets", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_commit_list, "seafile_get_commit_list", searpc_signature_objlist__string_int_int()); /* token */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_repo_token, "seafile_set_repo_token", searpc_signature_int__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo_token_nonnull, "seafile_get_repo_token_nonnull", searpc_signature_string__string_string()); /* quota */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_user_quota_usage, "seafile_get_user_quota_usage", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_user_share_usage, "seafile_get_user_share_usage", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_quota_usage, "seafile_get_org_quota_usage", searpc_signature_int64__int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_user_quota_usage, "seafile_get_org_user_quota_usage", searpc_signature_int64__int_string()); /* -------- rpc services -------- */ /* token for web access to repo */ searpc_server_register_function ("seafserv-rpcserver", seafile_web_get_access_token, "seafile_web_get_access_token", searpc_signature_string__string_string_string_string()); searpc_server_register_function ("seafserv-rpcserver", seafile_web_query_access_token, "seafile_web_query_access_token", searpc_signature_object__string()); /* chunk server manipulation */ searpc_server_register_function ("seafserv-rpcserver", seafile_add_chunk_server, "seafile_add_chunk_server", searpc_signature_int__string()); searpc_server_register_function ("seafserv-rpcserver", seafile_del_chunk_server, "seafile_del_chunk_server", searpc_signature_int__string()); searpc_server_register_function ("seafserv-rpcserver", seafile_list_chunk_servers, "seafile_list_chunk_servers", searpc_signature_string__void()); /* set monitor */ searpc_server_register_function ("seafserv-rpcserver", seafile_set_monitor, "seafile_set_monitor", searpc_signature_int__string()); searpc_server_register_function ("seafserv-rpcserver", seafile_get_monitor, "seafile_get_monitor", searpc_signature_string__void()); /* password management */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_passwd, "seafile_set_passwd", searpc_signature_int__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_unset_passwd, "seafile_unset_passwd", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-rpcserver", seafile_is_passwd_set, "seafile_is_passwd_set", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-rpcserver", seafile_get_decrypt_key, "seafile_get_decrypt_key", searpc_signature_object__string_string()); /* quota management */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_user_quota, "set_user_quota", searpc_signature_int__string_int64()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_user_quota, "get_user_quota", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_org_quota, "set_org_quota", searpc_signature_int__int_int64()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_quota, "get_org_quota", searpc_signature_int64__int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_org_user_quota, "set_org_user_quota", searpc_signature_int__int_string_int64()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_user_quota, "get_org_user_quota", searpc_signature_int64__int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_check_quota, "check_quota", searpc_signature_int__string()); /* repo permission */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_check_permission, "check_permission", searpc_signature_string__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_file_id_by_commit_and_path, "seafile_get_file_id_by_commit_and_path", searpc_signature_string__string_string()); if (!cloud_mode) { searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_inner_pub_repo, "set_inner_pub_repo", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_unset_inner_pub_repo, "unset_inner_pub_repo", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_is_inner_pub_repo, "is_inner_pub_repo", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_inner_pub_repos, "list_inner_pub_repos", searpc_signature_objlist__void()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_count_inner_pub_repos, "count_inner_pub_repos", searpc_signature_int64__void()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_inner_pub_repos_by_owner, "list_inner_pub_repos_by_owner", searpc_signature_objlist__string()); } /* Org repo */ if (cloud_mode) { searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_create_org_repo, "seafile_create_org_repo", searpc_signature_string__string_string_string_string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_id_by_repo_id, "seafile_get_org_id_by_repo_id", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_repo_list, "seafile_get_org_repo_list", searpc_signature_objlist__int_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_remove_org_repo_by_org_id, "seafile_remove_org_repo_by_org_id", searpc_signature_int__int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_org_repos_by_owner, "list_org_repos_by_owner", searpc_signature_objlist__int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_repo_owner, "get_org_repo_owner", searpc_signature_string__string()); /* org group repo */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_add_org_group_repo, "add_org_group_repo", searpc_signature_int__string_int_int_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_del_org_group_repo, "del_org_group_repo", searpc_signature_int__string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_group_repoids, "get_org_group_repoids", searpc_signature_string__int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_group_repo_owner, "get_org_group_repo_owner", searpc_signature_string__int_int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_group_repos_by_owner, "get_org_group_repos_by_owner", searpc_signature_objlist__int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_org_groups_by_repo, "get_org_groups_by_repo", searpc_signature_string__int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_org_group_repo_permission, "set_org_group_repo_permission", searpc_signature_int__int_int_string_string()); /* org inner pub repo */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_org_inner_pub_repo, "set_org_inner_pub_repo", searpc_signature_int__int_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_unset_org_inner_pub_repo, "unset_org_inner_pub_repo", searpc_signature_int__int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_org_inner_pub_repos, "list_org_inner_pub_repos", searpc_signature_objlist__int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_org_inner_pub_repos_by_owner, "list_org_inner_pub_repos_by_owner", searpc_signature_objlist__int_string()); } /* History */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_repo_history_limit, "set_repo_history_limit", searpc_signature_int__string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo_history_limit, "get_repo_history_limit", searpc_signature_int__string()); }
static void start_rpc_service (CcnetClient *client, int cloud_mode) { searpc_server_init (register_marshals); searpc_create_service ("seafserv-rpcserver"); ccnet_register_service (client, "seafserv-rpcserver", "rpc-inner", CCNET_TYPE_RPCSERVER_PROC, NULL); searpc_create_service ("seafserv-threaded-rpcserver"); ccnet_register_service (client, "seafserv-threaded-rpcserver", "rpc-inner", CCNET_TYPE_THREADED_RPCSERVER_PROC, NULL); /* threaded services */ /* repo manipulation */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo, "seafile_get_repo", searpc_signature_object__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_destroy_repo, "seafile_destroy_repo", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo_list, "seafile_get_repo_list", searpc_signature_objlist__int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_count_repos, "seafile_count_repos", searpc_signature_int64__void()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_repo_owner, "seafile_set_repo_owner", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo_owner, "seafile_get_repo_owner", searpc_signature_string__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_orphan_repo_list, "seafile_get_orphan_repo_list", searpc_signature_objlist__void()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_edit_repo, "seafile_edit_repo", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_change_repo_passwd, "seafile_change_repo_passwd", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_is_repo_owner, "seafile_is_repo_owner", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_owned_repos, "seafile_list_owned_repos", searpc_signature_objlist__string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_server_repo_size, "seafile_server_repo_size", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_repo_set_access_property, "seafile_repo_set_access_property", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_repo_query_access_property, "seafile_repo_query_access_property", searpc_signature_string__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_revert_on_server, "seafile_revert_on_server", searpc_signature_int__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_diff, "seafile_diff", searpc_signature_objlist__string_string_string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_file, "seafile_post_file", searpc_signature_int__string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_file_blocks, "seafile_post_file_blocks", searpc_signature_string__string_string_string_string_string_string_int64_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_multi_files, "seafile_post_multi_files", searpc_signature_string__string_string_string_string_string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_put_file, "seafile_put_file", searpc_signature_string__string_string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_put_file_blocks, "seafile_put_file_blocks", searpc_signature_string__string_string_string_string_string_string_string_int64()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_empty_file, "seafile_post_empty_file", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_post_dir, "seafile_post_dir", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_del_file, "seafile_del_file", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_copy_file, "seafile_copy_file", searpc_signature_object__string_string_string_string_string_string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_move_file, "seafile_move_file", searpc_signature_object__string_string_string_string_string_string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_rename_file, "seafile_rename_file", searpc_signature_int__string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_is_valid_filename, "seafile_is_valid_filename", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_create_repo, "seafile_create_repo", searpc_signature_string__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_create_enc_repo, "seafile_create_enc_repo", searpc_signature_string__string_string_string_string_string_string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_commit, "seafile_get_commit", searpc_signature_object__string_int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_dir, "seafile_list_dir", searpc_signature_objlist__string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_dir_with_perm, "list_dir_with_perm", searpc_signature_objlist__string_string_string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_file_blocks, "seafile_list_file_blocks", searpc_signature_string__string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_file_size, "seafile_get_file_size", searpc_signature_int64__string_int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_dir_size, "seafile_get_dir_size", searpc_signature_int64__string_int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_dir_by_path, "seafile_list_dir_by_path", searpc_signature_objlist__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_dir_id_by_commit_and_path, "seafile_get_dir_id_by_commit_and_path", searpc_signature_string__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_file_id_by_path, "seafile_get_file_id_by_path", searpc_signature_string__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_dir_id_by_path, "seafile_get_dir_id_by_path", searpc_signature_string__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_dirent_by_path, "seafile_get_dirent_by_path", searpc_signature_object__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_file_revisions, "seafile_list_file_revisions", searpc_signature_objlist__string_string_int_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_calc_files_last_modified, "seafile_calc_files_last_modified", searpc_signature_objlist__string_string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_revert_file, "seafile_revert_file", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_revert_dir, "seafile_revert_dir", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_deleted, "get_deleted", searpc_signature_objlist__string_int_string_string_int()); /* share repo to user */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_add_share, "seafile_add_share", searpc_signature_int__string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_share_repos, "seafile_list_share_repos", searpc_signature_objlist__string_string_int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_repo_shared_to, "seafile_list_repo_shared_to", searpc_signature_objlist__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_remove_share, "seafile_remove_share", searpc_signature_int__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_share_permission, "set_share_permission", searpc_signature_int__string_string_string_string()); /* share repo to group */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_group_share_repo, "seafile_group_share_repo", searpc_signature_int__string_int_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_group_unshare_repo, "seafile_group_unshare_repo", searpc_signature_int__string_int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_shared_groups_by_repo, "seafile_get_shared_groups_by_repo", searpc_signature_string__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_group_repoids, "seafile_get_group_repoids", searpc_signature_string__int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_repo_shared_group, "seafile_list_repo_shared_group", searpc_signature_objlist__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repos_by_group, "seafile_get_repos_by_group", searpc_signature_objlist__int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_group_repos_by_owner, "get_group_repos_by_owner", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_group_repo_owner, "get_group_repo_owner", searpc_signature_string__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_remove_repo_group, "seafile_remove_repo_group", searpc_signature_int__int_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_group_repo_permission, "set_group_repo_permission", searpc_signature_int__int_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_shared_users_for_subdir, "seafile_get_shared_users_for_subdir", searpc_signature_objlist__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_shared_groups_for_subdir, "seafile_get_shared_groups_for_subdir", searpc_signature_objlist__string_string_string()); /* branch and commit */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_branch_gets, "seafile_branch_gets", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_commit_list, "seafile_get_commit_list", searpc_signature_objlist__string_int_int()); /* token */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_generate_repo_token, "seafile_generate_repo_token", searpc_signature_string__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_delete_repo_token, "seafile_delete_repo_token", searpc_signature_int__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_repo_tokens, "seafile_list_repo_tokens", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_repo_tokens_by_email, "seafile_list_repo_tokens_by_email", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_delete_repo_tokens_by_peer_id, "seafile_delete_repo_tokens_by_peer_id", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_delete_repo_tokens_by_email, "delete_repo_tokens_by_email", searpc_signature_int__string()); /* quota */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_user_quota_usage, "seafile_get_user_quota_usage", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_user_share_usage, "seafile_get_user_share_usage", searpc_signature_int64__string()); /* virtual repo */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_create_virtual_repo, "create_virtual_repo", searpc_signature_string__string_string_string_string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_virtual_repos_by_owner, "get_virtual_repos_by_owner", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_virtual_repo, "get_virtual_repo", searpc_signature_object__string_string_string()); /* Clean trash */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_clean_up_repo_history, "clean_up_repo_history", searpc_signature_int__string_int()); /* -------- rpc services -------- */ /* token for web access to repo */ searpc_server_register_function ("seafserv-rpcserver", seafile_web_get_access_token, "seafile_web_get_access_token", searpc_signature_string__string_string_string_string_int()); searpc_server_register_function ("seafserv-rpcserver", seafile_web_query_access_token, "seafile_web_query_access_token", searpc_signature_object__string()); /* Copy task related. */ searpc_server_register_function ("seafserv-rpcserver", seafile_get_copy_task, "get_copy_task", searpc_signature_object__string()); searpc_server_register_function ("seafserv-rpcserver", seafile_cancel_copy_task, "cancel_copy_task", searpc_signature_int__string()); /* chunk server manipulation */ searpc_server_register_function ("seafserv-rpcserver", seafile_add_chunk_server, "seafile_add_chunk_server", searpc_signature_int__string()); searpc_server_register_function ("seafserv-rpcserver", seafile_del_chunk_server, "seafile_del_chunk_server", searpc_signature_int__string()); searpc_server_register_function ("seafserv-rpcserver", seafile_list_chunk_servers, "seafile_list_chunk_servers", searpc_signature_string__void()); /* password management */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_check_passwd, "seafile_check_passwd", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_passwd, "seafile_set_passwd", searpc_signature_int__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_unset_passwd, "seafile_unset_passwd", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-rpcserver", seafile_is_passwd_set, "seafile_is_passwd_set", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-rpcserver", seafile_get_decrypt_key, "seafile_get_decrypt_key", searpc_signature_object__string_string()); /* quota management */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_user_quota, "set_user_quota", searpc_signature_int__string_int64()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_user_quota, "get_user_quota", searpc_signature_int64__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_check_quota, "check_quota", searpc_signature_int__string()); /* repo permission */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_check_permission, "check_permission", searpc_signature_string__string_string()); /* folder permission */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_check_permission_by_path, "check_permission_by_path", searpc_signature_string__string_string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_file_id_by_commit_and_path, "seafile_get_file_id_by_commit_and_path", searpc_signature_string__string_string_string()); if (!cloud_mode) { searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_inner_pub_repo, "set_inner_pub_repo", searpc_signature_int__string_string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_unset_inner_pub_repo, "unset_inner_pub_repo", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_is_inner_pub_repo, "is_inner_pub_repo", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_inner_pub_repos, "list_inner_pub_repos", searpc_signature_objlist__void()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_count_inner_pub_repos, "count_inner_pub_repos", searpc_signature_int64__void()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_list_inner_pub_repos_by_owner, "list_inner_pub_repos_by_owner", searpc_signature_objlist__string()); } /* History */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_set_repo_history_limit, "set_repo_history_limit", searpc_signature_int__string_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_repo_history_limit, "get_repo_history_limit", searpc_signature_int__string()); /* System default library */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_system_default_repo_id, "get_system_default_repo_id", searpc_signature_string__void()); /* Trashed repos. */ searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_trash_repo_list, "get_trash_repo_list", searpc_signature_objlist__int_int()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_del_repo_from_trash, "del_repo_from_trash", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_restore_repo_from_trash, "restore_repo_from_trash", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_get_trash_repos_by_owner, "get_trash_repos_by_owner", searpc_signature_objlist__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_empty_repo_trash, "empty_repo_trash", searpc_signature_int__void()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_empty_repo_trash_by_owner, "empty_repo_trash_by_owner", searpc_signature_int__string()); searpc_server_register_function ("seafserv-threaded-rpcserver", seafile_generate_magic_and_random_key, "generate_magic_and_random_key", searpc_signature_object__int_string_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 */ }