SYMBOL INDEX (3546 symbols across 205 files) FILE: ci/run.py function num_jobs (line 36) | def num_jobs(): function make_build_env (line 41) | def make_build_env(): function prepend_env_value (line 81) | def prepend_env_value(name, value, seperator=':', env=None): function get_branch_json_file (line 94) | def get_branch_json_file(): function get_project_branch (line 99) | def get_project_branch(project, default_branch='master'): class Project (line 107) | class Project(object): method __init__ (line 108) | def __init__(self, name): method url (line 113) | def url(self): method projectdir (line 117) | def projectdir(self): method branch (line 120) | def branch(self): method clone (line 123) | def clone(self): method compile_and_install (line 134) | def compile_and_install(self): method use_branch (line 145) | def use_branch(self, branch): class Libsearpc (line 149) | class Libsearpc(Project): method __init__ (line 150) | def __init__(self): method branch (line 153) | def branch(self): class CcnetServer (line 157) | class CcnetServer(Project): method __init__ (line 158) | def __init__(self): method branch (line 161) | def branch(self): class SeafileServer (line 165) | class SeafileServer(Project): method __init__ (line 166) | def __init__(self): class Libevhtp (line 169) | class Libevhtp(Project): method __init__ (line 170) | def __init__(self): method branch (line 173) | def branch(self): method compile_and_install (line 177) | def compile_and_install(self): class Libjwt (line 188) | class Libjwt(Project): method __init__ (line 189) | def __init__(self): method branch (line 192) | def branch(self): method url (line 196) | def url(self): method compile_and_install (line 200) | def compile_and_install(self): class Libhiredis (line 211) | class Libhiredis(Project): method __init__ (line 212) | def __init__(self): method branch (line 215) | def branch(self): method url (line 219) | def url(self): method compile_and_install (line 223) | def compile_and_install(self): function fetch_and_build (line 232) | def fetch_and_build(): function parse_args (line 253) | def parse_args(): function main (line 261) | def main(): function start_and_test_with_db (line 272) | def start_and_test_with_db(db): FILE: ci/serverctl.py class ServerCtl (line 24) | class ServerCtl(object): method __init__ (line 25) | def __init__(self, topdir, projectdir, datadir, fileserver, db='sqlite... method setup (line 50) | def setup(self): method init_seafile (line 60) | def init_seafile(self): method add_seafile_sqlite_db_conf (line 82) | def add_seafile_sqlite_db_conf(self): method add_seafile_db_conf (line 91) | def add_seafile_db_conf(self): method run (line 108) | def run(self): method print_logs (line 118) | def print_logs(self): method wait_ccnet_ready (line 124) | def wait_ccnet_ready(self): method start (line 128) | def start(self): method create_database_tables (line 135) | def create_database_tables(self): method start_ccnet (line 174) | def start_ccnet(self): method start_seafile (line 186) | def start_seafile(self): method start_fileserver (line 201) | def start_fileserver(self): method stop (line 217) | def stop(self): method get_seaserv_envs (line 230) | def get_seaserv_envs(self): function create_mysql_dbs (line 241) | def create_mysql_dbs(): function del_mysql_dbs (line 254) | def del_mysql_dbs(): FILE: ci/utils.py function _color (line 22) | def _color(s, color): function green (line 27) | def green(s): function red (line 31) | def red(s): function debug (line 35) | def debug(fmt, *a): function info (line 39) | def info(fmt, *a): function warning (line 43) | def warning(fmt, *a): function shell (line 47) | def shell(cmd, inputdata=None, wait=True, **kw): function cd (line 63) | def cd(path): function chdir (line 72) | def chdir(func): function setup_logging (line 80) | def setup_logging(): function mkdirs (line 93) | def mkdirs(*paths): function on_github_actions (line 98) | def on_github_actions(): function cd (line 102) | def cd(path): FILE: common/block-backend-fs.c type _BHandle (line 21) | struct _BHandle { type FsPriv (line 30) | typedef struct { function BHandle (line 49) | static BHandle * function block_backend_fs_read_block (line 95) | static int function block_backend_fs_write_block (line 110) | static int function block_backend_fs_close_block (line 125) | static int function block_backend_fs_block_handle_free (line 136) | static void function create_parent_path (line 149) | static int function block_backend_fs_commit_block (line 171) | static int function gboolean (line 196) | static gboolean function block_backend_fs_remove_block (line 211) | static int function BMetadata (line 224) | static BMetadata * function BMetadata (line 247) | static BMetadata * function block_backend_fs_foreach_block (line 266) | static int function block_backend_fs_copy (line 325) | static int function block_backend_fs_remove_store (line 366) | static int function open_tmp_file (line 443) | static int function BlockBackend (line 459) | BlockBackend * FILE: common/block-backend.c function BlockBackend (line 11) | BlockBackend* function BlockBackend (line 37) | BlockBackend* FILE: common/block-backend.h type BlockBackend (line 8) | typedef struct BlockBackend BlockBackend; type BlockBackend (line 10) | struct BlockBackend { FILE: common/block-mgr.c function SeafBlockManager (line 29) | SeafBlockManager * function seaf_block_manager_init (line 52) | int function BlockHandle (line 59) | BlockHandle * function seaf_block_manager_read_block (line 75) | int function seaf_block_manager_write_block (line 83) | int function seaf_block_manager_close_block (line 91) | int function seaf_block_manager_block_handle_free (line 98) | void function seaf_block_manager_commit_block (line 105) | int function gboolean (line 112) | gboolean seaf_block_manager_block_exists (SeafBlockManager *mgr, function seaf_block_manager_remove_block (line 124) | int function BlockMetadata (line 137) | BlockMetadata * function BlockMetadata (line 150) | BlockMetadata * function seaf_block_manager_foreach_block (line 157) | int function seaf_block_manager_copy_block (line 169) | int function gboolean (line 191) | static gboolean function guint64 (line 204) | guint64 function gboolean (line 217) | gboolean function seaf_block_manager_remove_store (line 266) | int FILE: common/block-mgr.h type _SeafileSession (line 12) | struct _SeafileSession type SeafBlockManager (line 14) | typedef struct _SeafBlockManager SeafBlockManager; type _SeafBlockManager (line 16) | struct _SeafBlockManager { type _SeafileSession (line 24) | struct _SeafileSession FILE: common/block-tx-utils.c function blocktx_generate_encrypt_key (line 12) | void function blocktx_encrypt_init (line 26) | int function blocktx_decrypt_init (line 47) | int function send_encrypted_data_frame_begin (line 70) | int function send_encrypted_data (line 91) | int function send_encrypted_data_frame_end (line 115) | int function handle_frame_content (line 137) | static int function handle_one_frame (line 187) | int function handle_frame_fragment_content (line 210) | static int function handle_frame_fragments (line 268) | int FILE: common/block-tx-utils.h type _HandshakeRequest (line 25) | struct _HandshakeRequest { type HandshakeRequest (line 31) | typedef struct _HandshakeRequest HandshakeRequest; type _HandshakeResponse (line 33) | struct _HandshakeResponse { type HandshakeResponse (line 38) | typedef struct _HandshakeResponse HandshakeResponse; type _AuthResponse (line 40) | struct _AuthResponse { type AuthResponse (line 44) | typedef struct _AuthResponse AuthResponse; type _RequestHeader (line 51) | struct _RequestHeader { type RequestHeader (line 56) | typedef struct _RequestHeader RequestHeader; type _ResponseHeader (line 58) | struct _ResponseHeader { type ResponseHeader (line 62) | typedef struct _ResponseHeader ResponseHeader; type FrameParser (line 109) | typedef struct _FrameParser { type evbuffer (line 134) | struct evbuffer type evbuffer (line 140) | struct evbuffer FILE: common/block.h type BlockMetadata (line 6) | typedef struct _BMetadata BlockMetadata; type BMetadata (line 7) | typedef struct _BMetadata BMetadata; type _BMetadata (line 9) | struct _BMetadata { type BlockHandle (line 16) | typedef struct _BHandle BlockHandle; type BHandle (line 17) | typedef struct _BHandle BHandle; type gboolean (line 24) | typedef gboolean (*SeafBlockFunc) (const char *store_id, FILE: common/branch-mgr.c function SeafBranch (line 21) | SeafBranch * function seaf_branch_free (line 39) | void function seaf_branch_list_free (line 47) | void function seaf_branch_set_commit (line 59) | void function seaf_branch_ref (line 66) | void function seaf_branch_unref (line 72) | void type _SeafBranchManagerPriv (line 82) | struct _SeafBranchManagerPriv { function SeafBranchManager (line 91) | SeafBranchManager * function seaf_branch_manager_init (line 107) | int function open_db (line 113) | static int function seaf_branch_manager_add_branch (line 173) | int function seaf_branch_manager_del_branch (line 242) | int function seaf_branch_manager_update_branch (line 271) | int function gboolean (line 307) | static gboolean function publish_repo_update_event (line 320) | static void function notify_repo_update (line 337) | static void function on_branch_updated (line 363) | static void function gboolean (line 378) | static gboolean function seaf_branch_manager_test_and_update_branch (line 388) | int function SeafBranch (line 495) | static SeafBranch * function SeafBranch (line 539) | SeafBranch * function gboolean (line 560) | static gboolean function SeafBranch (line 572) | static SeafBranch * function SeafBranch (line 595) | SeafBranch * function gboolean (line 613) | gboolean function GList (line 642) | GList * function gboolean (line 692) | static gboolean function GList (line 711) | GList * FILE: common/branch-mgr.h type SeafBranch (line 7) | typedef struct _SeafBranch SeafBranch; type _SeafBranch (line 9) | struct _SeafBranch { type SeafBranchManager (line 26) | typedef struct _SeafBranchManager SeafBranchManager; type SeafBranchManagerPriv (line 27) | typedef struct _SeafBranchManagerPriv SeafBranchManagerPriv; type _SeafileSession (line 29) | struct _SeafileSession type _SeafBranchManager (line 30) | struct _SeafBranchManager { type _SeafileSession (line 36) | struct _SeafileSession FILE: common/cdc/cdc.c function default_write_chunk (line 38) | static int default_write_chunk (CDCDescriptor *chunk_descr) function init_cdc_file_descriptor (line 56) | static int init_cdc_file_descriptor (int fd, function file_chunk_cdc (line 112) | int file_chunk_cdc(int fd_src, function filename_chunk_cdc (line 231) | int filename_chunk_cdc(const char *filename, function cdc_init (line 248) | void cdc_init () FILE: common/cdc/cdc.h type _CDCFileDescriptor (line 23) | struct _CDCFileDescriptor type _CDCDescriptor (line 24) | struct _CDCDescriptor type SeafileCrypt (line 25) | struct SeafileCrypt type _CDCDescriptor (line 29) | struct _CDCDescriptor type SeafileCrypt (line 30) | struct SeafileCrypt type CDCFileDescriptor (line 35) | typedef struct _CDCFileDescriptor { type CDCDescriptor (line 52) | typedef struct _CDCDescriptor { type SeafileCrypt (line 62) | struct SeafileCrypt type SeafileCrypt (line 68) | struct SeafileCrypt FILE: common/cdc/rabin-checksum.c type u_int (line 7) | typedef unsigned int u_int; type u_char (line 11) | typedef unsigned char u_char; type u_short (line 15) | typedef unsigned short u_short; type u_long (line 19) | typedef unsigned long u_long; type u_int16_t (line 23) | typedef uint16_t u_int16_t; type u_int32_t (line 27) | typedef uint32_t u_int32_t; type u_int64_t (line 31) | typedef uint64_t u_int64_t; function u_int (line 59) | static inline u_int fls32 (u_int32_t v) function fls64 (line 73) | static inline char fls64 (u_int64_t v) function u_int64_t (line 82) | u_int64_t polymod (u_int64_t nh, u_int64_t nl, u_int64_t d) function polymult (line 107) | void polymult (u_int64_t *php, u_int64_t *plp, u_int64_t x, u_int64_t y) function u_int64_t (line 124) | u_int64_t polymmult (u_int64_t x, u_int64_t y, u_int64_t d) function u_int64_t (line 131) | static u_int64_t append8 (u_int64_t p, u_char m) function calcT (line 136) | static void calcT (u_int64_t poly) function calcU (line 147) | static void calcU(int size) function rabin_init (line 157) | void rabin_init(int len) function rabin_checksum (line 166) | unsigned int rabin_checksum(char *buf, int len) function rabin_rolling_checksum (line 176) | unsigned int rabin_rolling_checksum(unsigned int csum, int len, FILE: common/commit-mgr.c type _SeafCommitManagerPriv (line 20) | struct _SeafCommitManagerPriv { function compute_commit_id (line 41) | static void compute_commit_id (SeafCommit* commit) function SeafCommit (line 62) | SeafCommit* function SeafCommit (line 126) | SeafCommit * function seaf_commit_free (line 158) | static void function seaf_commit_ref (line 179) | void function seaf_commit_unref (line 185) | void function SeafCommitManager (line 195) | SeafCommitManager* function seaf_commit_manager_init (line 207) | int function add_commit_to_cache (line 218) | inline static void function remove_commit_from_cache (line 227) | inline static void function seaf_commit_manager_add_commit (line 235) | int function seaf_commit_manager_del_commit (line 248) | void function SeafCommit (line 274) | SeafCommit* function SeafCommit (line 299) | SeafCommit * function gint (line 318) | static gint function insert_parent_commit (line 328) | inline static int function gboolean (line 359) | gboolean function gboolean (line 467) | static gboolean function gboolean (line 561) | gboolean function gboolean (line 574) | gboolean function gboolean (line 587) | gboolean function json_t (line 602) | static json_t * function SeafCommit (line 666) | static SeafCommit * function SeafCommit (line 841) | static SeafCommit * function save_commit (line 889) | static int function delete_commit (line 933) | static void function seaf_commit_manager_remove_store (line 942) | int FILE: common/commit-mgr.h type _SeafCommitManager (line 6) | struct _SeafCommitManager type SeafCommit (line 7) | typedef struct _SeafCommit SeafCommit; type _SeafCommit (line 14) | struct _SeafCommit { type gboolean (line 82) | typedef gboolean (*CommitTraverseFunc) (SeafCommit *commit, void *data, ... type _SeafileSession (line 84) | struct _SeafileSession type SeafCommitManager (line 86) | typedef struct _SeafCommitManager SeafCommitManager; type SeafCommitManagerPriv (line 87) | typedef struct _SeafCommitManagerPriv SeafCommitManagerPriv; type _SeafCommitManager (line 89) | struct _SeafCommitManager { type _SeafileSession (line 99) | struct _SeafileSession FILE: common/config-mgr.c function seaf_cfg_manager_init (line 6) | int function SeafCfgManager (line 26) | SeafCfgManager * function seaf_cfg_manager_set_config_int (line 39) | int function seaf_cfg_manager_set_config_int64 (line 52) | int function seaf_cfg_manager_set_config_string (line 65) | int function seaf_cfg_manager_set_config_boolean (line 78) | int function seaf_cfg_manager_set_config (line 94) | int function seaf_cfg_manager_get_config_int (line 122) | int function gint64 (line 148) | gint64 function gboolean (line 174) | gboolean FILE: common/config-mgr.h type SeafCfgManager (line 4) | typedef struct _SeafCfgManager SeafCfgManager; type _SeafCfgManager (line 7) | struct _SeafCfgManager { type SeafileSession (line 12) | typedef struct _SeafileSession SeafileSession; FILE: common/diff-simple.c function DiffEntry (line 6) | DiffEntry * function DiffEntry (line 19) | DiffEntry * function diff_entry_free (line 51) | void function gboolean (line 65) | inline static gboolean function diff_files (line 73) | static int function diff_directories (line 97) | static int function diff_trees_recursive (line 156) | static int function diff_trees (line 229) | int type DiffData (line 260) | typedef struct DiffData { function twoway_diff_files (line 265) | static int function twoway_diff_dirs (line 298) | static int function diff_commits (line 335) | int function diff_commit_roots (line 378) | int function threeway_diff_files (line 407) | static int function threeway_diff_dirs (line 454) | static int function diff_merge (line 462) | int function diff_merge_roots (line 534) | int function diff_resolve_renames (line 570) | void function gboolean (line 695) | static gboolean function diff_resolve_empty_dirs (line 727) | void function diff_unmerged_state (line 755) | int diff_unmerged_state(int mask) FILE: common/diff-simple.h type DiffEntry (line 36) | typedef struct DiffEntry { type DiffOptions (line 102) | typedef struct DiffOptions { FILE: common/fs-mgr.c type _SeafFSManagerPriv (line 40) | struct _SeafFSManagerPriv { type SeafileOndisk (line 45) | typedef struct SeafileOndisk { type DirentOndisk (line 51) | typedef struct DirentOndisk { type SeafdirOndisk (line 58) | typedef struct SeafdirOndisk { function SeafFSManager (line 73) | SeafFSManager * function seaf_fs_manager_init (line 92) | int function checkout_block (line 104) | static int function seaf_fs_manager_checkout_file (line 213) | int function seaf_fs_manager_calculate_seafile_id_json (line 398) | void function write_seafile (line 434) | static int function calculate_chunk_size (line 492) | uint32_t function do_write_chunk (line 505) | static int function seafile_write_chunk (line 555) | int function create_cdc_for_empty_file (line 602) | static void type ChunkingData (line 612) | typedef struct ChunkingData { function chunking_worker (line 621) | static void function split_file_to_block (line 672) | static int function seaf_fs_manager_index_blocks (line 772) | int function check_and_write_block (line 849) | static int function check_and_write_file_blocks (line 889) | static int function check_existed_file_blocks (line 920) | static int function init_file_cdc (line 952) | static int function seaf_fs_manager_index_file_blocks (line 973) | int function seaf_fs_manager_index_raw_blocks (line 1017) | int function seaf_fs_manager_index_existed_file_blocks (line 1045) | int function seafile_ref (line 1087) | void function seafile_free (line 1093) | static void function seafile_unref (line 1107) | void function Seafile (line 1117) | static Seafile * function Seafile (line 1163) | static Seafile * function Seafile (line 1222) | static Seafile * function Seafile (line 1252) | static Seafile * function Seafile (line 1261) | Seafile * function guint8 (line 1306) | static guint8 * function guint8 (line 1327) | static guint8 * function guint8 (line 1357) | static guint8 * function seafile_save (line 1380) | int function compute_dir_id_v0 (line 1405) | static void compute_dir_id_v0 (SeafDir *dir, GList *entries) function SeafDir (line 1436) | SeafDir * function seaf_dir_free (line 1460) | void function SeafDirent (line 1477) | SeafDirent * function seaf_dirent_free (line 1508) | void function SeafDirent (line 1518) | SeafDirent * function SeafDir (line 1530) | static SeafDir * function SeafDirent (line 1591) | static SeafDirent * function SeafDir (line 1644) | static SeafDir * function SeafDir (line 1697) | static SeafDir * function SeafDir (line 1727) | SeafDir * function ondisk_dirent_size (line 1737) | inline static int function add_to_dirent_array (line 1779) | static void function seaf_dir_save (line 1852) | int function SeafDir (line 1874) | SeafDir * function gint (line 1905) | static gint function gboolean (line 1913) | static gboolean function SeafDir (line 1936) | SeafDir * function SeafDir (line 1957) | SeafDir * function parse_metadata_type_v0 (line 1981) | static int function parse_metadata_type_json (line 1992) | static int function seaf_metadata_type_from_data (line 2022) | int function SeafFSObject (line 2032) | SeafFSObject * function SeafFSObject (line 2047) | SeafFSObject * function SeafFSObject (line 2089) | SeafFSObject * function seaf_fs_object_free (line 2100) | void function BlockList (line 2112) | BlockList * function block_list_free (line 2123) | void function block_list_insert (line 2132) | void function BlockList (line 2144) | BlockList * function traverse_file (line 2167) | static int function traverse_dir (line 2188) | static int function seaf_fs_manager_traverse_tree (line 2243) | int function traverse_dir_path (line 2258) | static int function seaf_fs_manager_traverse_path (line 2311) | int function gboolean (line 2337) | static gboolean function seaf_fs_manager_populate_blocklist (line 2363) | int function gboolean (line 2375) | gboolean function seaf_fs_manager_delete_object (line 2388) | void function gint64 (line 2397) | gint64 function gint64 (line 2418) | static gint64 function gint64 (line 2462) | gint64 function count_dir_files (line 2473) | static int function get_file_count_info (line 2505) | static int function seaf_fs_manager_count_fs_files (line 2541) | int function SeafDir (line 2552) | SeafDir * function SeafDirent (line 2746) | SeafDirent * function gboolean (line 2793) | static gboolean function gboolean (line 2868) | static gboolean function gboolean (line 2888) | static gboolean function gboolean (line 2898) | gboolean function gboolean (line 2926) | static gboolean function gboolean (line 2965) | static gboolean function gboolean (line 2975) | gboolean function gboolean (line 3003) | static gboolean function gboolean (line 3027) | gboolean function dir_version_from_repo_version (line 3059) | int function seafile_version_from_repo_version (line 3068) | int function seaf_fs_manager_remove_store (line 3077) | int function GObject (line 3084) | GObject * function search_files_recursive (line 3123) | static int function GList (line 3176) | GList * FILE: common/fs-mgr.h type SeafFSManager (line 18) | typedef struct _SeafFSManager SeafFSManager; type SeafFSObject (line 19) | typedef struct _SeafFSObject SeafFSObject; type Seafile (line 20) | typedef struct _Seafile Seafile; type SeafDir (line 21) | typedef struct _SeafDir SeafDir; type SeafDirent (line 22) | typedef struct _SeafDirent SeafDirent; type SeafMetadataType (line 24) | typedef enum { type _SeafFSObject (line 32) | struct _SeafFSObject { type _Seafile (line 36) | struct _Seafile { type SearchResult (line 46) | typedef struct SearchResult { type _SeafDirent (line 67) | struct _SeafDirent { type _SeafDir (line 80) | struct _SeafDir { type BlockList (line 133) | typedef struct { type _SeafileSession (line 156) | struct _SeafileSession type SeafFSManagerPriv (line 158) | typedef struct _SeafFSManagerPriv SeafFSManagerPriv; type _SeafFSManager (line 160) | struct _SeafFSManager { type _SeafileSession (line 169) | struct _SeafileSession type SeafileCrypt (line 185) | struct SeafileCrypt type gboolean (line 270) | typedef gboolean (*TraverseFSTreeCallback) (SeafFSManager *mgr, type gboolean (line 287) | typedef gboolean (*TraverseFSPathCallback) (SeafFSManager *mgr, type _CDCFileDescriptor (line 421) | struct _CDCFileDescriptor type _CDCFileDescriptor (line 424) | struct _CDCFileDescriptor FILE: common/group-mgr.c type _CcnetGroupManagerPriv (line 16) | struct _CcnetGroupManagerPriv { function CcnetGroupManager (line 24) | CcnetGroupManager* ccnet_group_manager_new (SeafileSession *session) function ccnet_group_manager_init (line 34) | int function ccnet_group_manager_prepare (line 40) | int function ccnet_group_manager_start (line 52) | void ccnet_group_manager_start (CcnetGroupManager *manager) function CcnetDB (line 56) | static CcnetDB * function open_db (line 81) | static int function check_db_table (line 111) | static int check_db_table (CcnetGroupManager *manager, CcnetDB *db) function gboolean (line 235) | static gboolean function gboolean (line 245) | static gboolean function create_group_common (line 255) | static int function ccnet_group_manager_create_group (line 346) | int ccnet_group_manager_create_group (CcnetGroupManager *mgr, function ccnet_group_manager_create_org_group (line 387) | int ccnet_group_manager_create_org_group (CcnetGroupManager *mgr, function gboolean (line 417) | static gboolean function ccnet_group_manager_remove_group (line 462) | int ccnet_group_manager_remove_group (CcnetGroupManager *mgr, function gboolean (line 510) | static gboolean function ccnet_group_manager_add_member (line 533) | int ccnet_group_manager_add_member (CcnetGroupManager *mgr, function ccnet_group_manager_remove_member (line 560) | int ccnet_group_manager_remove_member (CcnetGroupManager *mgr, function ccnet_group_manager_set_admin (line 587) | int ccnet_group_manager_set_admin (CcnetGroupManager *mgr, function ccnet_group_manager_unset_admin (line 602) | int ccnet_group_manager_unset_admin (CcnetGroupManager *mgr, function ccnet_group_manager_set_group_name (line 617) | int ccnet_group_manager_set_group_name (CcnetGroupManager *mgr, function ccnet_group_manager_quit_group (line 640) | int ccnet_group_manager_quit_group (CcnetGroupManager *mgr, function gboolean (line 661) | static gboolean function GList (line 687) | GList * function gint (line 730) | static gint function gboolean (line 744) | gboolean function GList (line 758) | GList * function gboolean (line 853) | static gboolean function GList (line 883) | GList * function GList (line 911) | GList * function CcnetGroup (line 947) | CcnetGroup * function gboolean (line 975) | static gboolean function GList (line 999) | GList * function GList (line 1032) | GList * function ccnet_group_manager_check_group_staff (line 1073) | int function ccnet_group_manager_remove_group_user (line 1082) | int function ccnet_group_manager_is_group_user (line 1096) | int function gboolean (line 1135) | static gboolean function GList (line 1167) | GList * function GList (line 1210) | GList* function GList (line 1245) | GList* function ccnet_group_manager_set_group_creator (line 1296) | int function GList (line 1320) | GList * function gboolean (line 1388) | static gboolean function GList (line 1405) | GList * function GList (line 1449) | GList* function ccnet_group_manager_update_group_user (line 1476) | int FILE: common/group-mgr.h type SeafileSession (line 8) | typedef struct _SeafileSession SeafileSession; type CcnetGroupManager (line 9) | typedef struct _CcnetGroupManager CcnetGroupManager; type CcnetGroupManagerPriv (line 10) | typedef struct _CcnetGroupManagerPriv CcnetGroupManagerPriv; type _CcnetGroupManager (line 12) | struct _CcnetGroupManager FILE: common/log.c function get_syslog_level (line 33) | static int function seafile_log (line 54) | static void function ccnet_log (line 98) | static void function get_debug_level (line 136) | static int function seafile_log_init (line 148) | int function seafile_log_reopen (line 182) | int function gboolean (line 218) | gboolean function seafile_debug_set_flags (line 224) | void function seafile_debug_set_flags_string (line 231) | void function seafile_debug_impl (line 241) | void function set_syslog_config (line 254) | void FILE: common/log.h type SeafileDebugFlags (line 33) | typedef enum FILE: common/merge-new.c function twoway_merge (line 118) | int twoway_merge(const char *store_id, int version, const char *basedir, function threeway_merge (line 174) | static int function merge_entries (line 408) | static int function merge_directories (line 427) | static int function gint (line 589) | static gint function merge_trees_recursive (line 597) | static int function seaf_merge_trees (line 715) | int FILE: common/merge-new.h type MergeOptions (line 8) | struct MergeOptions type MergeOptions (line 12) | struct MergeOptions type MergeOptions (line 14) | typedef struct MergeOptions { FILE: common/mq-mgr.c type SeafMqManagerPriv (line 6) | typedef struct SeafMqManagerPriv { function SeafMqManager (line 11) | SeafMqManager * function GAsyncQueue (line 23) | static GAsyncQueue * function seaf_mq_manager_publish_event (line 34) | int function json_t (line 62) | json_t * FILE: common/mq-mgr.h type SeafMqManagerPriv (line 9) | struct SeafMqManagerPriv type SeafMqManager (line 11) | typedef struct SeafMqManager { FILE: common/obj-backend-fs.c type FsPriv (line 23) | typedef struct FsPriv { function id_to_path (line 28) | static void function obj_backend_fs_read (line 52) | static int function fsync_obj_contents (line 95) | static int function rename_and_sync (line 147) | static int function save_obj_contents (line 217) | static int function create_parent_path (line 261) | static int function obj_backend_fs_write (line 284) | static int function gboolean (line 321) | static gboolean function obj_backend_fs_delete (line 338) | static void function obj_backend_fs_foreach_obj (line 350) | static int function obj_backend_fs_copy (line 409) | static int function obj_backend_fs_remove_store (line 450) | static int function ObjBackend (line 497) | ObjBackend * FILE: common/obj-backend-riak.c type RiakPriv (line 11) | typedef struct RiakPriv { function SeafRiakClient (line 21) | static SeafRiakClient * function return_connection (line 35) | static void function obj_backend_riak_read (line 43) | static int function obj_backend_riak_write (line 59) | static int function gboolean (line 76) | static gboolean function obj_backend_riak_delete (line 90) | static void function ObjBackend (line 102) | ObjBackend * function ObjBackend (line 138) | ObjBackend * FILE: common/obj-backend.h type ObjBackend (line 7) | typedef struct ObjBackend ObjBackend; type ObjBackend (line 9) | struct ObjBackend { FILE: common/obj-cache.c type CacheOption (line 13) | typedef struct CacheOption { function cache_option_free (line 22) | static void function load_cache_option_from_env (line 33) | static void function ObjCache (line 72) | ObjCache * function objcache_set_object (line 109) | int function gboolean (line 119) | gboolean function objcache_delete_object (line 125) | int function objcache_set_object_existence (line 131) | int function objcache_get_object_existence (line 148) | int function objcache_delete_object_existence (line 169) | int function objcache_publish (line 183) | int function objcache_push (line 191) | int FILE: common/obj-cache.h type ObjCache (line 10) | typedef struct ObjCache ObjCache; type ObjCache (line 12) | struct ObjCache { type ObjCache (line 49) | struct ObjCache type ObjCache (line 52) | struct ObjCache type ObjCache (line 59) | struct ObjCache type ObjCache (line 62) | struct ObjCache type ObjCache (line 65) | struct ObjCache type ObjCache (line 68) | struct ObjCache type ObjCache (line 71) | struct ObjCache FILE: common/obj-store.c type SeafObjStore (line 12) | struct SeafObjStore { type SeafObjStore (line 15) | typedef struct SeafObjStore SeafObjStore; type SeafObjStore (line 20) | struct SeafObjStore function seaf_obj_store_init (line 38) | int function seaf_obj_store_read_obj (line 44) | int function seaf_obj_store_write_obj (line 61) | int function gboolean (line 79) | gboolean function seaf_obj_store_delete_obj (line 94) | void function seaf_obj_store_foreach_obj (line 109) | int function seaf_obj_store_copy_obj (line 121) | int function seaf_obj_store_remove_store (line 137) | int FILE: common/obj-store.h type _SeafileSession (line 7) | struct _SeafileSession type SeafObjStore (line 8) | struct SeafObjStore type SeafObjStore (line 10) | struct SeafObjStore type _SeafileSession (line 11) | struct _SeafileSession type SeafObjStore (line 14) | struct SeafObjStore type SeafObjStore (line 19) | struct SeafObjStore type SeafObjStore (line 27) | struct SeafObjStore type SeafObjStore (line 36) | struct SeafObjStore type SeafObjStore (line 42) | struct SeafObjStore type gboolean (line 47) | typedef gboolean (*SeafObjFunc) (const char *repo_id, type SeafObjStore (line 53) | struct SeafObjStore type SeafObjStore (line 60) | struct SeafObjStore type SeafObjStore (line 68) | struct SeafObjStore FILE: common/object-list.c function ObjectList (line 8) | ObjectList * function object_list_free (line 19) | void function object_list_serialize (line 28) | void function gboolean (line 46) | gboolean FILE: common/object-list.h type ObjectList (line 8) | typedef struct { function gboolean (line 30) | inline static gboolean function object_list_length (line 36) | inline static int FILE: common/org-mgr.c type _CcnetOrgManagerPriv (line 15) | struct _CcnetOrgManagerPriv function CcnetOrgManager (line 23) | CcnetOrgManager* ccnet_org_manager_new (SeafileSession *session) function ccnet_org_manager_init (line 33) | int function ccnet_org_manager_prepare (line 39) | int function CcnetDB (line 45) | static CcnetDB * function open_db (line 70) | static int function ccnet_org_manager_start (line 98) | void ccnet_org_manager_start (CcnetOrgManager *manager) function check_db_table (line 104) | static int check_db_table (CcnetDB *db) function ccnet_org_manager_create_org (line 211) | int ccnet_org_manager_create_org (CcnetOrgManager *mgr, function ccnet_org_manager_remove_org (line 252) | int function gboolean (line 272) | static gboolean function GList (line 302) | GList * function ccnet_org_manager_count_orgs (line 327) | int function gboolean (line 342) | static gboolean function CcnetOrganization (line 368) | CcnetOrganization * function CcnetOrganization (line 388) | CcnetOrganization * function ccnet_org_manager_add_org_user (line 408) | int function ccnet_org_manager_remove_org_user (line 422) | int function gboolean (line 434) | static gboolean function GList (line 469) | GList * function gboolean (line 491) | static gboolean function GList (line 501) | GList * function ccnet_org_manager_add_org_group (line 534) | int function ccnet_org_manager_remove_org_group (line 546) | int function ccnet_org_manager_is_org_group (line 559) | int function ccnet_org_manager_get_org_id_by_group (line 577) | int function gboolean (line 589) | static gboolean function GList (line 601) | GList * function gboolean (line 634) | static gboolean function GList (line 660) | GList * function GList (line 681) | GList * function GList (line 717) | GList * function ccnet_org_manager_org_user_exists (line 741) | int function ccnet_org_manager_is_org_staff (line 774) | int function ccnet_org_manager_set_org_staff (line 788) | int function ccnet_org_manager_unset_org_staff (line 801) | int function ccnet_org_manager_set_org_name (line 814) | int FILE: common/org-mgr.h type SeafileSession (line 6) | typedef struct _SeafileSession SeafileSession; type CcnetOrgManager (line 7) | typedef struct _CcnetOrgManager CcnetOrgManager; type CcnetOrgManagerPriv (line 8) | typedef struct _CcnetOrgManagerPriv CcnetOrgManagerPriv; type _CcnetOrgManager (line 10) | struct _CcnetOrgManager FILE: common/password-hash.c type Pbkdf2Params (line 14) | typedef struct Pbkdf2Params { function Pbkdf2Params (line 18) | static Pbkdf2Params * function pbkdf2_sha256_derive_key (line 38) | static int type Argon2idParams (line 58) | typedef struct Argon2idParams{ function Argon2idParams (line 68) | static Argon2idParams * function argon2id_derive_key (line 107) | static int function parse_pwd_hash_params (line 125) | void function pwd_hash_derive_key (line 147) | int FILE: common/password-hash.h type PwdHashParams (line 9) | typedef struct _PwdHashParams { FILE: common/processors/objecttx-common.h type ObjectPack (line 47) | typedef struct { FILE: common/redis-cache.c type _RedisConnectionPool (line 11) | struct _RedisConnectionPool { type RedisConnectionPool (line 18) | typedef struct _RedisConnectionPool RedisConnectionPool; type _RedisConnection (line 20) | struct _RedisConnection { type RedisConnection (line 26) | typedef struct _RedisConnection RedisConnection; type RedisPriv (line 28) | typedef struct RedisPriv { function redis_auth (line 33) | static int function RedisConnection (line 65) | static RedisConnection * function redis_connection_free (line 92) | static void function RedisConnectionPool (line 104) | static RedisConnectionPool * function RedisConnection (line 116) | static RedisConnection * function redis_connection_pool_return_connection (line 153) | static void function redis_cache_set_object (line 217) | int function gboolean (line 262) | gboolean function redis_cache_delete_object (line 302) | int function redis_cache_publish (line 341) | int function redis_cache_push (line 379) | int function ObjCache (line 417) | ObjCache * FILE: common/rpc-service.c function GObject (line 38) | static GObject* function free_repo_obj (line 107) | static void function GList (line 115) | static GList * function GList (line 139) | GList * function GList (line 166) | GList* function GList (line 174) | GList * function seafile_del_repo_from_trash (line 187) | int function seafile_empty_repo_trash (line 206) | int function seafile_empty_repo_trash_by_owner (line 212) | int function seafile_restore_repo_from_trash (line 223) | int function seafile_publish_event (line 242) | int function json_t (line 257) | json_t * function GList (line 268) | GList* function gint64 (line 287) | gint64 function GObject (line 294) | GObject* function SeafileCommit (line 322) | SeafileCommit * function GObject (line 345) | GObject* type CollectParam (line 371) | struct CollectParam { function gboolean (line 382) | static gboolean function GList (line 431) | GList* function do_unsync_repo (line 513) | static function cancel_clone_tasks_by_account (line 544) | static void function seafile_unsync_repos_by_account (line 563) | int function seafile_remove_repo_tokens_by_account (line 600) | int function seafile_set_repo_token (line 637) | int function seafile_destroy_repo (line 669) | int function GObject (line 698) | GObject * function GList (line 758) | GList * function GList (line 827) | GList * function filter_error (line 913) | static void function seafile_edit_repo (line 991) | int function seafile_change_repo_passwd (line 1001) | int function set_pwd_hash_to_commit (line 1135) | static void function seafile_upgrade_repo_pwd_hash_algorithm (line 1165) | int function seafile_is_repo_owner (line 1310) | int function seafile_set_repo_owner (line 1335) | int function GList (line 1371) | GList * function GList (line 1388) | GList * function GList (line 1424) | GList * function gint64 (line 1441) | gint64 function gint64 (line 1460) | gint64 function gint64 (line 1479) | gint64 function seafile_set_repo_history_limit (line 1503) | int function seafile_get_repo_history_limit (line 1528) | int function seafile_set_repo_valid_since (line 1545) | int function seafile_repo_set_access_property (line 1555) | int function GObject (line 1625) | GObject * function seafile_cancel_zip_task (line 1655) | int function seafile_add_share (line 1666) | int function GList (line 1701) | GList * function GList (line 1718) | GList * function seafile_unshare_subdir_for_user (line 1814) | int function seafile_update_share_subdir_perm_for_user (line 1862) | int function GList (line 1919) | GList * function seafile_remove_share (line 1939) | int function seafile_group_share_repo (line 1958) | int function seafile_group_unshare_repo (line 1989) | int function seafile_unshare_subdir_for_group (line 2083) | int function seafile_update_share_subdir_perm_for_group (line 2130) | int function GList (line 2242) | GList * function GList (line 2259) | GList * function seafile_remove_repo_group (line 2300) | int function seafile_set_inner_pub_repo (line 2316) | int function seafile_unset_inner_pub_repo (line 2340) | int function GList (line 2361) | GList * function gint64 (line 2367) | gint64 function GList (line 2373) | GList * function seafile_is_inner_pub_repo (line 2384) | int function gint64 (line 2400) | gint64 function gint64 (line 2428) | gint64 function seafile_check_passwd (line 2456) | int function seafile_set_passwd (line 2476) | int function seafile_unset_passwd (line 2497) | int function seafile_is_passwd_set (line 2517) | int function GObject (line 2530) | GObject * function seafile_revert_on_server (line 2552) | int function seafile_post_file (line 2583) | int function seafile_post_dir (line 2850) | int function seafile_post_empty_file (line 2900) | int function seafile_del_file (line 2950) | int function seafile_batch_del_files (line 3000) | int function GObject (line 3040) | GObject * function GObject (line 3116) | GObject * function GObject (line 3193) | GObject * function seafile_cancel_copy_task (line 3199) | int function seafile_rename_file (line 3205) | int function seafile_is_valid_filename (line 3267) | int function seafile_set_user_quota (line 3343) | int function gint64 (line 3355) | gint64 function seafile_check_quota (line 3367) | int function GList (line 3383) | GList * function GObject (line 3488) | GObject * function gint (line 3618) | static gint function GList (line 3632) | GList * function GList (line 3707) | GList * function GList (line 3736) | GList * function seafile_revert_file (line 3763) | int function seafile_revert_dir (line 3796) | int function GList (line 3881) | GList * function seafile_delete_repo_token (line 3932) | int function GList (line 3952) | GList * function GList (line 3973) | GList * function seafile_delete_repo_tokens_by_peer_id (line 3989) | int function seafile_delete_repo_tokens_by_email (line 4029) | int function GList (line 4068) | GList * function seafile_set_share_permission (line 4112) | int function seafile_set_group_repo_permission (line 4143) | int function GList (line 4259) | GList * function GObject (line 4315) | GObject * function update_valid_since_time (line 4349) | static int function seafile_clean_up_repo_history (line 4379) | int function GList (line 4414) | GList * function GList (line 4440) | GList * function gint64 (line 4466) | gint64 function gint64 (line 4472) | gint64 function GObject (line 4478) | GObject * function seafile_mkdir_with_parents (line 4519) | int function seafile_set_server_config_int (line 4543) | int function seafile_get_server_config_int (line 4555) | int function seafile_set_server_config_int64 (line 4566) | int function gint64 (line 4578) | gint64 function seafile_set_server_config_string (line 4589) | int function seafile_set_server_config_boolean (line 4612) | int function seafile_get_server_config_boolean (line 4624) | int function GObject (line 4635) | GObject * function GObject (line 4651) | GObject * function GList (line 4667) | GList * function GList (line 4679) | GList * function seafile_repo_has_been_shared (line 4691) | int function GList (line 4704) | GList * function GList (line 4716) | GList * function gint64 (line 4732) | gint64 function seafile_set_repo_status (line 4776) | int function seafile_get_repo_status (line 4788) | int function GList (line 4803) | GList * function GList (line 4809) | GList * function ccnet_rpc_add_emailuser (line 4835) | int function ccnet_rpc_remove_emailuser (line 4853) | int function ccnet_rpc_validate_emailuser (line 4869) | int function GObject (line 4888) | GObject* function GObject (line 4904) | GObject* function GObject (line 4920) | GObject* function GList (line 4931) | GList* function GList (line 4945) | GList* function GList (line 4962) | GList* function GList (line 4976) | GList * function GList (line 4987) | GList* function GList (line 4998) | GList* function GList (line 5009) | GList* function gint64 (line 5020) | gint64 function gint64 (line 5028) | gint64 function ccnet_rpc_update_emailuser (line 5036) | int function ccnet_rpc_update_role_emailuser (line 5047) | int function GList (line 5056) | GList* function GList (line 5064) | GList * function ccnet_rpc_update_emailuser_id (line 5076) | int function ccnet_rpc_create_group (line 5088) | int function ccnet_rpc_create_org_group (line 5106) | int function ccnet_rpc_remove_group (line 5124) | int function ccnet_rpc_group_add_member (line 5142) | int function ccnet_rpc_group_remove_member (line 5161) | int function ccnet_rpc_group_set_admin (line 5180) | int function ccnet_rpc_group_unset_admin (line 5198) | int function ccnet_rpc_set_group_name (line 5216) | int function ccnet_rpc_quit_group (line 5234) | int function GList (line 5251) | GList * function GList (line 5268) | GList * function GList (line 5279) | GList* function GList (line 5304) | GList * function GList (line 5316) | GList * function GObject (line 5327) | GObject * function GList (line 5343) | GList * function GList (line 5360) | GList * function ccnet_rpc_check_group_staff (line 5371) | int function ccnet_rpc_remove_group_user (line 5388) | int function ccnet_rpc_is_group_user (line 5400) | int function ccnet_rpc_set_group_creator (line 5412) | int function GList (line 5426) | GList * function ccnet_rpc_create_org (line 5438) | int function ccnet_rpc_remove_org (line 5453) | int function GList (line 5489) | GList * function gint64 (line 5500) | gint64 function GObject (line 5509) | GObject * function GObject (line 5527) | GObject * function ccnet_rpc_add_org_user (line 5545) | int function ccnet_rpc_remove_org_user (line 5560) | int function GList (line 5573) | GList * function GList (line 5584) | GList * function ccnet_rpc_add_org_group (line 5621) | int function ccnet_rpc_remove_org_group (line 5634) | int function ccnet_rpc_is_org_group (line 5648) | int function ccnet_rpc_get_org_id_by_group (line 5661) | int function GList (line 5674) | GList * function GList (line 5695) | GList * function GList (line 5710) | GList * function ccnet_rpc_org_user_exists (line 5725) | int function ccnet_rpc_is_org_staff (line 5738) | int function ccnet_rpc_set_org_staff (line 5751) | int function ccnet_rpc_unset_org_staff (line 5764) | int function ccnet_rpc_set_org_name (line 5777) | int FILE: common/seaf-db.c type DBConnPool (line 16) | struct DBConnPool { type DBConnPool (line 21) | typedef struct DBConnPool DBConnPool; type SeafDB (line 23) | struct SeafDB { type DBConnection (line 28) | typedef struct DBConnection { type SeafDBRow (line 34) | struct SeafDBRow { type SeafDBTrans (line 38) | struct SeafDBTrans { type DBOperations (line 43) | typedef struct DBOperations { function DBConnPool (line 97) | static DBConnPool * function DBConnection (line 108) | static DBConnection * function mysql_conn_pool_release_connection (line 162) | static void function SeafDB (line 231) | SeafDB * function SeafDB (line 300) | SeafDB * function seaf_db_type (line 323) | int function seaf_db_query (line 329) | int function gboolean (line 355) | gboolean function seaf_db_foreach_selected_row (line 361) | int function seaf_db_row_get_column_int (line 376) | int function gint64 (line 384) | gint64 function seaf_db_get_int (line 392) | int function gint64 (line 398) | gint64 function seaf_db_statement_query (line 410) | int function gboolean (line 439) | gboolean function seaf_db_statement_foreach_row (line 476) | int function gboolean (line 507) | static gboolean function seaf_db_statement_get_int (line 517) | int function gboolean (line 547) | static gboolean function gint64 (line 557) | gint64 function gboolean (line 587) | static gboolean function SeafDBTrans (line 629) | SeafDBTrans * function seaf_db_trans_close (line 649) | void function seaf_db_commit (line 656) | int function seaf_db_rollback (line 669) | int function seaf_db_trans_query (line 682) | int function gboolean (line 698) | gboolean function seaf_db_trans_foreach_selected_row (line 721) | int function seaf_db_row_get_column_count (line 739) | int type MySQLDB (line 749) | typedef struct MySQLDB { type MySQLDBConnection (line 763) | typedef struct MySQLDBConnection { function gboolean (line 768) | static gboolean function SeafDB (line 776) | static SeafDB * type my_bool (line 806) | typedef char my_bool; function DBConnection (line 808) | static DBConnection * function mysql_db_release_connection (line 886) | static void function mysql_db_execute_sql_no_stmt (line 899) | static int function MYSQL_STMT (line 919) | static MYSQL_STMT * function _bind_params_mysql (line 944) | static int function mysql_db_execute_sql (line 995) | static int type MySQLDBRow (line 1046) | typedef struct MySQLDBRow { function mysql_db_query_foreach_row (line 1057) | static int function mysql_db_row_get_column_count (line 1190) | static int function mysql_db_row_get_column_int (line 1231) | static int function gint64 (line 1253) | static gint64 type UnlockNotification (line 1283) | typedef struct UnlockNotification { function unlock_notify_cb (line 1289) | static void function wait_for_unlock_notify (line 1303) | static int function sqlite3_blocking_step (line 1326) | static int function sqlite3_blocking_prepare_v2 (line 1339) | static int function sqlite3_blocking_exec (line 1351) | static int type SQLiteDB (line 1363) | typedef struct SQLiteDB { type SQLiteDBConnection (line 1368) | typedef struct SQLiteDBConnection { function SeafDB (line 1373) | static SeafDB * function DBConnection (line 1382) | static DBConnection * function sqlite_db_release_connection (line 1404) | static void function sqlite_db_execute_sql_no_stmt (line 1417) | static int function _bind_parameters_sqlite (line 1435) | static int function sqlite_db_execute_sql (line 1470) | static int type SQLiteDBRow (line 1503) | typedef struct SQLiteDBRow { function sqlite_db_query_foreach_row (line 1510) | static int function sqlite_db_row_get_column_count (line 1559) | static int function sqlite_db_row_get_column_int (line 1575) | static int function gint64 (line 1583) | static gint64 FILE: common/seaf-db.h type SeafDB (line 10) | typedef struct SeafDB SeafDB; type CcnetDB (line 11) | typedef struct SeafDB CcnetDB; type SeafDBRow (line 12) | typedef struct SeafDBRow SeafDBRow; type CcnetDBRow (line 13) | typedef struct SeafDBRow CcnetDBRow; type SeafDBTrans (line 14) | typedef struct SeafDBTrans SeafDBTrans; type CcnetDBTrans (line 15) | typedef struct SeafDBTrans CcnetDBTrans; type gboolean (line 17) | typedef gboolean (*SeafDBRowFunc) (SeafDBRow *, void *); type gboolean (line 18) | typedef gboolean (*CcnetDBRowFunc) (CcnetDBRow *, void *); FILE: common/seaf-utils.c function sqlite_db_start (line 37) | static int type DBOption (line 63) | typedef struct DBOption { function db_option_free (line 77) | static void function load_db_option_from_env (line 92) | static int function DBOption (line 140) | static DBOption * function mysql_db_start (line 229) | static int function pgsql_db_start (line 256) | static int function load_database_config (line 314) | int function ccnet_init_sqlite_database (line 344) | static int function ccnet_init_mysql_database (line 360) | static int function load_ccnet_database_config (line 385) | int function split_filename (line 489) | void function gboolean (line 504) | static gboolean function seaf_delete_repo_tokens (line 516) | int FILE: common/seaf-utils.h type _SeafileSession (line 6) | struct _SeafileSession type _SeafileSession (line 9) | struct _SeafileSession type _SeafileSession (line 14) | struct _SeafileSession type _SeafileSession (line 17) | struct _SeafileSession FILE: common/seafile-crypt.c function SeafileCrypt (line 26) | SeafileCrypt * function seafile_derive_key (line 39) | int function seafile_generate_repo_salt (line 91) | int function seafile_generate_random_key (line 107) | int function seafile_generate_magic (line 139) | void function seafile_generate_pwd_hash (line 160) | void function seafile_verify_repo_passwd (line 191) | int function seafile_pwd_hash_verify_repo_passwd (line 224) | int function seafile_decrypt_repo_enc_key (line 257) | int function seafile_update_random_key (line 306) | int function seafile_encrypt (line 350) | int function seafile_decrypt (line 459) | int function seafile_decrypt_init (line 558) | int FILE: common/seafile-crypt.h type SeafileCrypt (line 22) | struct SeafileCrypt { type SeafileCrypt (line 28) | typedef struct SeafileCrypt SeafileCrypt; FILE: common/user-mgr.c type CcnetUserManagerPriv (line 36) | struct CcnetUserManagerPriv { function ccnet_user_manager_class_init (line 41) | static void function ccnet_user_manager_init (line 48) | static void function CcnetUserManager (line 54) | CcnetUserManager* function get_current_user_number (line 69) | static int function gboolean (line 84) | static gboolean function ccnet_user_manager_prepare (line 106) | int function ccnet_user_manager_free (line 126) | void function ccnet_user_manager_start (line 132) | void function ccnet_user_manager_on_exit (line 138) | void ccnet_user_manager_on_exit (CcnetUserManager *manager) function ccnet_user_manager_set_max_users (line 142) | void function check_db_table (line 150) | static int check_db_table (SeafDB *db) function CcnetDB (line 272) | static CcnetDB * function open_db (line 295) | static int function hash_password (line 334) | static void function hash_password_salted (line 346) | static void function hash_password_pbkdf2_sha256 (line 359) | static void function gboolean (line 392) | static gboolean function gboolean (line 432) | static gboolean function update_user_passwd (line 457) | static int function ccnet_user_manager_add_emailuser (line 484) | int function ccnet_user_manager_remove_emailuser (line 527) | int function gboolean (line 549) | static gboolean function ccnet_user_manager_validate_emailuser (line 558) | int function gboolean (line 619) | static gboolean function CcnetEmailUser (line 654) | static CcnetEmailUser* function CcnetEmailUser (line 700) | CcnetEmailUser* function CcnetEmailUser (line 708) | CcnetEmailUser* function CcnetEmailUser (line 716) | CcnetEmailUser* function gboolean (line 733) | static gboolean function GList (line 765) | GList* function GList (line 832) | GList* function gint64 (line 885) | gint64 function gint64 (line 903) | gint64 function GList (line 922) | GList* function ccnet_user_manager_update_emailuser (line 957) | int function gboolean (line 993) | static gboolean function ccnet_user_manager_update_role_emailuser (line 1018) | int function GList (line 1035) | GList* function GList (line 1067) | GList * function ccnet_user_manager_update_emailuser_id (line 1128) | int FILE: common/user-mgr.h type SeafileSession (line 17) | typedef struct _SeafileSession SeafileSession; type CcnetUserManager (line 18) | typedef struct _CcnetUserManager CcnetUserManager; type CcnetUserManagerClass (line 19) | typedef struct _CcnetUserManagerClass CcnetUserManagerClass; type CcnetUserManagerPriv (line 21) | typedef struct CcnetUserManagerPriv CcnetUserManagerPriv; type _CcnetUserManager (line 24) | struct _CcnetUserManager type _CcnetUserManagerClass (line 53) | struct _CcnetUserManagerClass FILE: common/vc-common.c function gint (line 12) | static gint function gint (line 22) | static gint function gboolean (line 31) | static gboolean function GHashTable (line 42) | static GHashTable * function GList (line 66) | static GList * type MergeTraverseData (line 118) | typedef struct { function gboolean (line 123) | static gboolean function GList (line 149) | static GList * function SeafCommit (line 212) | SeafCommit * function gboolean (line 259) | gboolean function VCCompareResult (line 270) | VCCompareResult function diff_parents_with_path (line 317) | static int function get_file_modifier_mtime_v0 (line 423) | static int function get_file_modifier_mtime_v1 (line 499) | static int function get_file_modifier_mtime (line 564) | int FILE: common/vc-common.h type VCCompareResult (line 16) | typedef enum { FILE: controller/seafile-controller.c type option (line 41) | struct option function controller_exit (line 60) | static void function spawn_process (line 74) | static int function read_pid_from_pidfile (line 141) | static int function kill_by_force (line 165) | static void function start_seaf_server (line 185) | static int function start_go_fileserver (line 215) | static int function init_seafile_path (line 275) | static void function setup_python_path (line 297) | static void function setup_env (line 344) | static void function start_seafdav (line 360) | static int function run_controller_loop (line 410) | static void function gboolean (line 418) | static gboolean function gboolean (line 443) | static gboolean function gboolean (line 488) | static gboolean function start_process_monitor (line 513) | static void function stop_services (line 522) | static void function init_pidfile_path (line 532) | static void function seaf_controller_init (line 548) | static int function seaf_controller_start (line 593) | static int function write_controller_pidfile (line 612) | static int function remove_controller_pidfile (line 641) | static void function sigint_handler (line 649) | static void function sigchld_handler (line 660) | static void function sigusr1_handler (line 666) | static void function set_signal_handlers (line 672) | static void function usage (line 682) | static void function test_config (line 694) | static void function read_seafdav_config (line 740) | static int function init_syslog_config (line 819) | static int function main (line 843) | int main (int argc, char **argv) FILE: controller/seafile-controller.h type SeafileController (line 23) | typedef struct _SeafileController SeafileController; type SeafDavConfig (line 34) | typedef struct SeafDavConfig { type _SeafileController (line 42) | struct _SeafileController { FILE: fileserver/blockmgr/blockmgr.go function Init (line 12) | func Init(seafileConfPath string, seafileDataDir string) { function Read (line 17) | func Read(repoID string, blockID string, w io.Writer) error { function Write (line 27) | func Write(repoID string, blockID string, r io.Reader) error { function Exists (line 37) | func Exists(repoID string, blockID string) bool { function Stat (line 43) | func Stat(repoID string, blockID string) (int64, error) { FILE: fileserver/blockmgr/blockmgr_test.go constant blockID (line 12) | blockID = "0401fc662e3bc87a41f299a907c056aaf8322a27" constant repoID (line 13) | repoID = "b1f2ad61-9164-418a-a47f-ab805dbd5694" constant seafileConfPath (line 14) | seafileConfPath = "/tmp/conf" constant seafileDataDir (line 15) | seafileDataDir = "/tmp/conf/seafile-data" constant testFile (line 16) | testFile = "output.data" function delFile (line 19) | func delFile() error { function createFile (line 33) | func createFile() error { function TestMain (line 48) | func TestMain(m *testing.M) { function testBlockRead (line 63) | func testBlockRead(t *testing.T) { function testBlockWrite (line 71) | func testBlockWrite(t *testing.T) { function testBlockExists (line 84) | func testBlockExists(t *testing.T) { function TestBlock (line 98) | func TestBlock(t *testing.T) { FILE: fileserver/commitmgr/commitmgr.go type Commit (line 19) | type Commit struct method FromData (line 89) | func (commit *Commit) FromData(p []byte) error { method ToData (line 115) | func (commit *Commit) ToData(w io.Writer) error { function Init (line 51) | func Init(seafileConfPath string, seafileDataDir string) { function NewCommit (line 56) | func NewCommit(repoID, parentID, newRoot, user, desc string) *Commit { function computeCommitID (line 72) | func computeCommitID(commit *Commit) string { function ReadRaw (line 130) | func ReadRaw(repoID string, commitID string, w io.Writer) error { function WriteRaw (line 139) | func WriteRaw(repoID string, commitID string, r io.Reader) error { function Load (line 148) | func Load(repoID string, commitID string) (*Commit, error) { function Save (line 164) | func Save(commit *Commit) error { function Exists (line 180) | func Exists(repoID string, commitID string) (bool, error) { FILE: fileserver/commitmgr/commitmgr_test.go constant commitID (line 11) | commitID = "0401fc662e3bc87a41f299a907c056aaf8322a27" constant rootID (line 12) | rootID = "6a1608dc2a1248838464e9b194800d35252e2ce3" constant repoID (line 13) | repoID = "b1f2ad61-9164-418a-a47f-ab805dbd5694" constant seafileConfPath (line 14) | seafileConfPath = "/tmp/conf" constant seafileDataDir (line 15) | seafileDataDir = "/tmp/conf/seafile-data" function delFile (line 18) | func delFile() error { function TestMain (line 27) | func TestMain(m *testing.M) { function assertEqual (line 37) | func assertEqual(t *testing.T, a, b interface{}) { function TestCommit (line 43) | func TestCommit(t *testing.T) { FILE: fileserver/commitmgr/null.go type String (line 15) | type String struct method ValueOrZero (line 33) | func (s String) ValueOrZero() string { method UnmarshalJSON (line 52) | func (s *String) UnmarshalJSON(data []byte) error { method MarshalJSON (line 68) | func (s String) MarshalJSON() ([]byte, error) { method MarshalText (line 77) | func (s String) MarshalText() ([]byte, error) { method UnmarshalText (line 86) | func (s *String) UnmarshalText(text []byte) error { method SetValid (line 93) | func (s *String) SetValid(v string) { method Ptr (line 99) | func (s String) Ptr() *string { method IsZero (line 107) | func (s String) IsZero() bool { method Equal (line 112) | func (s String) Equal(other String) bool { function StringFrom (line 20) | func StringFrom(s string) String { function StringFromPtr (line 25) | func StringFromPtr(s *string) String { function NewString (line 41) | func NewString(s string, valid bool) String { FILE: fileserver/crypt.go type seafileCrypt (line 9) | type seafileCrypt struct method encrypt (line 15) | func (crypt *seafileCrypt) encrypt(input []byte) ([]byte, error) { method decrypt (line 41) | func (crypt *seafileCrypt) decrypt(input []byte) ([]byte, error) { function pkcs7Padding (line 70) | func pkcs7Padding(p []byte, blockSize int) []byte { function pkcs7UnPadding (line 76) | func pkcs7UnPadding(p []byte) []byte { function to16Bytes (line 82) | func to16Bytes(input []byte) []byte { FILE: fileserver/diff/diff.go constant EmptySha1 (line 17) | EmptySha1 = "0000000000000000000000000000000000000000" type fileCB (line 20) | type fileCB type dirCB (line 21) | type dirCB type DiffOptions (line 23) | type DiffOptions struct type diffData (line 32) | type diffData struct function DiffTrees (line 37) | func DiffTrees(roots []string, opt *DiffOptions) error { function diffTreesRecursive (line 60) | func diffTreesRecursive(trees []*fsmgr.SeafDir, baseDir string, opt *Dif... function diffFiles (line 127) | func diffFiles(baseDir string, dents []*fsmgr.SeafDirent, opt *DiffOptio... function diffDirectories (line 145) | func diffDirectories(baseDir string, dents []*fsmgr.SeafDirent, opt *Dif... function direntSame (line 188) | func direntSame(dentA, dentB *fsmgr.SeafDirent) bool { constant DiffTypeCommits (line 196) | DiffTypeCommits = 'C' constant DiffStatusAdded (line 198) | DiffStatusAdded = 'A' constant DiffStatusDeleted (line 199) | DiffStatusDeleted = 'D' constant DiffStatusModified (line 200) | DiffStatusModified = 'M' constant DiffStatusRenamed (line 201) | DiffStatusRenamed = 'R' constant DiffStatusUnmerged (line 202) | DiffStatusUnmerged = 'U' constant DiffStatusDirAdded (line 203) | DiffStatusDirAdded = 'B' constant DiffStatusDirDeleted (line 204) | DiffStatusDirDeleted = 'C' constant DiffStatusDirRenamed (line 205) | DiffStatusDirRenamed = 'E' type DiffEntry (line 208) | type DiffEntry struct function diffEntryNewFromDirent (line 218) | func diffEntryNewFromDirent(diffType, status rune, dent *fsmgr.SeafDiren... function diffEntryNew (line 229) | func diffEntryNew(diffType, status rune, dirID, name string) *DiffEntry { function DiffMergeRoots (line 239) | func DiffMergeRoots(storeID, mergedRoot, p1Root, p2Root string, results ... function threewayDiffFiles (line 259) | func threewayDiffFiles(ctx context.Context, baseDir string, dents []*fsm... function threewayDiffDirs (line 296) | func threewayDiffDirs(ctx context.Context, baseDir string, dents []*fsmg... function DiffCommitRoots (line 301) | func DiffCommitRoots(storeID, p1Root, p2Root string, results *[]*DiffEnt... function DiffCommits (line 321) | func DiffCommits(commit1, commit2 *commitmgr.Commit, results *[]*DiffEnt... function twowayDiffFiles (line 346) | func twowayDiffFiles(ctx context.Context, baseDir string, dents []*fsmgr... function twowayDiffDirs (line 377) | func twowayDiffDirs(ctx context.Context, baseDir string, dents []*fsmgr.... function diffResolveRenames (line 412) | func diffResolveRenames(des *[]*DiffEntry) error { function DiffResultsToDesc (line 535) | func DiffResultsToDesc(results []*DiffEntry) string { FILE: fileserver/diff/diff_test.go constant emptySHA1 (line 14) | emptySHA1 = "0000000000000000000000000000000000000000" constant diffTestSeafileConfPath (line 15) | diffTestSeafileConfPath = "/tmp/conf" constant diffTestSeafileDataDir (line 16) | diffTestSeafileDataDir = "/tmp/conf/seafile-data" constant diffTestRepoID (line 17) | diffTestRepoID = "0d18a711-c988-4f7b-960c-211b34705ce3" function TestDiffTrees (line 46) | func TestDiffTrees(t *testing.T) { function diffTestCreateTestDir (line 67) | func diffTestCreateTestDir() error { function testDiffTrees1 (line 117) | func testDiffTrees1(t *testing.T) { function testDiffTrees2 (line 137) | func testDiffTrees2(t *testing.T) { function testDiffTrees3 (line 158) | func testDiffTrees3(t *testing.T) { function testDiffTrees4 (line 182) | func testDiffTrees4(t *testing.T) { function testDiffTrees5 (line 206) | func testDiffTrees5(t *testing.T) { function diffTestCreateSeafdir (line 226) | func diffTestCreateSeafdir(dents []*fsmgr.SeafDirent) (string, error) { function diffTestDelFile (line 239) | func diffTestDelFile() error { function diffTestFileCB (line 248) | func diffTestFileCB(ctx context.Context, baseDir string, files []*fsmgr.... function diffTestDirCB (line 265) | func diffTestDirCB(ctx context.Context, baseDir string, dirs []*fsmgr.Se... FILE: fileserver/fileop.go constant cacheBlockMapThreshold (line 46) | cacheBlockMapThreshold = 1 << 23 constant blockMapCacheExpiretime (line 47) | blockMapCacheExpiretime int64 = 3600 * 24 constant fileopCleaningIntervalSec (line 48) | fileopCleaningIntervalSec = 3600 constant duplicateNamesCount (line 49) | duplicateNamesCount = 1000 type Dirents (line 58) | type Dirents method Less (line 60) | func (d Dirents) Less(i, j int) bool { method Swap (line 64) | func (d Dirents) Swap(i, j int) { method Len (line 67) | func (d Dirents) Len() int { function fileopInit (line 71) | func fileopInit() { function initUpload (line 82) | func initUpload() { function parseContentType (line 88) | func parseContentType(fileName string) string { function accessCB (line 154) | func accessCB(rsp http.ResponseWriter, r *http.Request) *appError { function parseCryptKey (line 221) | func parseCryptKey(rsp http.ResponseWriter, repoID string, user string, ... function accessV2CB (line 263) | func accessV2CB(rsp http.ResponseWriter, r *http.Request) *appError { type UserInfo (line 345) | type UserInfo struct function checkFileAccess (line 349) | func checkFileAccess(repoID, token, cookie, filePath, op, ipAddr, userAg... function doFile (line 399) | func doFile(rsp http.ResponseWriter, r *http.Request, repo *repomgr.Repo... function isNetworkErr (line 465) | func isNetworkErr(err error) bool { type blockMap (line 470) | type blockMap struct function doFileRange (line 475) | func doFileRange(rsp http.ResponseWriter, r *http.Request, repo *repomgr... function parseRange (line 633) | func parseRange(byteRanges string, fileSize uint64) (uint64, uint64, boo... function setCommonHeaders (line 683) | func setCommonHeaders(rsp http.ResponseWriter, r *http.Request, operatio... function accessBlksCB (line 713) | func accessBlksCB(rsp http.ResponseWriter, r *http.Request) *appError { function doBlock (line 762) | func doBlock(rsp http.ResponseWriter, r *http.Request, repo *repomgr.Rep... function accessZipCB (line 817) | func accessZipCB(rsp http.ResponseWriter, r *http.Request) *appError { function downloadZipFile (line 856) | func downloadZipFile(rsp http.ResponseWriter, r *http.Request, data, rep... function genUniqueFileName (line 948) | func genUniqueFileName(fileName string, fileList []string) string { function nameInFileList (line 972) | func nameInFileList(fileName string, fileList []string) bool { function parseDirFilelist (line 981) | func parseDirFilelist(repo *repomgr.Repo, obj map[string]interface{}) ([... function packDir (line 1040) | func packDir(ar *zip.Writer, repo *repomgr.Repo, dirID, dirPath string, ... function packFiles (line 1078) | func packFiles(ar *zip.Writer, dirent *fsmgr.SeafDirent, repo *repomgr.R... type recvData (line 1125) | type recvData struct function uploadAPICB (line 1138) | func uploadAPICB(rsp http.ResponseWriter, r *http.Request) *appError { function setAccessControl (line 1159) | func setAccessControl(rsp http.ResponseWriter) { function uploadAjaxCB (line 1166) | func uploadAjaxCB(rsp http.ResponseWriter, r *http.Request) *appError { function formatJSONError (line 1187) | func formatJSONError(rsp http.ResponseWriter, err *appError) { function normalizeUTF8Path (line 1194) | func normalizeUTF8Path(p string) string { function doUpload (line 1199) | func doUpload(rsp http.ResponseWriter, r *http.Request, fsm *recvData, i... function writeBlockDataToTmpFile (line 1361) | func writeBlockDataToTmpFile(r *http.Request, fsm *recvData, formFiles m... function getFileNameFromMimeHeader (line 1414) | func getFileNameFromMimeHeader(r *http.Request) (string, error) { function createRelativePath (line 1435) | func createRelativePath(repoID, parentDir, relativePath, user string) *a... function mkdirWithParents (line 1450) | func mkdirWithParents(repoID, parentDir, newDirPath, user string) error { function checkAndCreateDir (line 1517) | func checkAndCreateDir(repo *repomgr.Repo, rootID, parentDir string, sub... function genDirRecursive (line 1567) | func genDirRecursive(repo *repomgr.Repo, toPath []string) (string, error) { function clearTmpFile (line 1613) | func clearTmpFile(fsm *recvData, parentDir string) { function parseUploadHeaders (line 1624) | func parseUploadHeaders(r *http.Request) (*recvData, *appError) { function checkQuotaByContentLength (line 1718) | func checkQuotaByContentLength(r *http.Request, repoID string, contentLe... function checkFileSizeByContentLength (line 1737) | func checkFileSizeByContentLength(r *http.Request, contentLen int64) *ap... function postMultiFiles (line 1750) | func postMultiFiles(rsp http.ResponseWriter, r *http.Request, repoID, pa... function checkFilesWithSameName (line 1864) | func checkFilesWithSameName(repo *repomgr.Repo, canonPath string, fileNa... function postFilesAndGenCommit (line 1884) | func postFilesAndGenCommit(fileNames []string, repoID string, user, cano... function formatJSONRet (line 1965) | func formatJSONRet(nameList, idList []string, sizeList []int64) ([]byte,... function getCanonPath (line 1987) | func getCanonPath(p string) string { function genNewCommit (line 1997) | func genNewCommit(repo *repomgr.Repo, base *commitmgr.Commit, newRoot, u... function fastForwardOrMerge (line 2042) | func fastForwardOrMerge(user, token string, repo *repomgr.Repo, base, ne... function genCommitNeedRetry (line 2074) | func genCommitNeedRetry(repo *repomgr.Repo, base *commitmgr.Commit, comm... function genMergeDesc (line 2141) | func genMergeDesc(repo *repomgr.Repo, mergedRoot, p1Root, p2Root string)... function updateBranch (line 2153) | func updateBranch(repoID, originRepoID, newCommitID, oldCommitID, second... function onBranchUpdated (line 2225) | func onBranchUpdated(repoID string, commitID string, updateRepoInfo bool... type notifEvent (line 2247) | type notifEvent struct type repoUpdateEvent (line 2251) | type repoUpdateEvent struct function notifRepoUpdate (line 2256) | func notifRepoUpdate(repoID string, commitID string) error { function doPostMultiFiles (line 2288) | func doPostMultiFiles(repo *repomgr.Repo, rootID, parentDir string, dent... function postMultiFilesRecursive (line 2302) | func postMultiFilesRecursive(repo *repomgr.Repo, dirID, toPath, user str... function addNewEntries (line 2378) | func addNewEntries(repo *repomgr.Repo, user string, oldDents *[]*fsmgr.S... function genUniqueName (line 2412) | func genUniqueName(fileName string, entries []*fsmgr.SeafDirent) string { function nameExists (line 2439) | func nameExists(entries []*fsmgr.SeafDirent, fileName string) bool { function shouldIgnore (line 2449) | func shouldIgnore(fileName string) bool { function shouldIgnoreFile (line 2459) | func shouldIgnoreFile(fileName string) bool { function indexBlocks (line 2480) | func indexBlocks(ctx context.Context, repoID string, version int, filePa... type indexFileRequest (line 2497) | type indexFileRequest struct type indexFileResult (line 2506) | type indexFileResult struct function indexFileWorker (line 2512) | func indexFileWorker(args ...any) error { function writeSeafile (line 2614) | func writeSeafile(repoID string, version int, fileSize int64, blkIDs []s... type chunkingData (line 2630) | type chunkingData struct type chunkingResult (line 2638) | type chunkingResult struct function createChunkPool (line 2644) | func createChunkPool(ctx context.Context, n int, chunkJobs chan chunking... function chunkingWorker (line 2659) | func chunkingWorker(ctx context.Context, wg *sync.WaitGroup, chunkJobs c... function chunkFile (line 2685) | func chunkFile(job chunkingData) (string, error) { function writeChunk (line 2732) | func writeChunk(repoID string, input []byte, blkSize int64, cryptKey *se... function checkTmpFileList (line 2768) | func checkTmpFileList(fsm *recvData) *appError { function checkParentDir (line 2794) | func checkParentDir(repoID string, parentDir string) *appError { function isParentMatched (line 2820) | func isParentMatched(uploadDir, parentDir string) bool { function parseContentRange (line 2826) | func parseContentRange(ranges string, fsm *recvData) bool { type webaccessInfo (line 2862) | type webaccessInfo struct function parseWebaccessInfo (line 2869) | func parseWebaccessInfo(token string) (*webaccessInfo, *appError) { function updateDir (line 2913) | func updateDir(repoID, dirPath, newDirID, user, headID string) (string, ... function genCommitDesc (line 2990) | func genCommitDesc(repo *repomgr.Repo, root, parentRoot string) string { function doPutFile (line 3002) | func doPutFile(repo *repomgr.Repo, rootID, parentDir string, dent *fsmgr... function putFileRecursive (line 3010) | func putFileRecursive(repo *repomgr.Repo, dirID, toPath string, newDent ... function updateAPICB (line 3088) | func updateAPICB(rsp http.ResponseWriter, r *http.Request) *appError { function updateAjaxCB (line 3109) | func updateAjaxCB(rsp http.ResponseWriter, r *http.Request) *appError { function doUpdate (line 3130) | func doUpdate(rsp http.ResponseWriter, r *http.Request, fsm *recvData, i... function putFile (line 3269) | func putFile(rsp http.ResponseWriter, r *http.Request, repoID, parentDir... function formatUpdateJSONRet (line 3411) | func formatUpdateJSONRet(fileName, fileID string, size int64) ([]byte, e... function checkFileExists (line 3428) | func checkFileExists(storeID, rootID, parentDir, fileName string) (bool,... function uploadBlksAPICB (line 3447) | func uploadBlksAPICB(rsp http.ResponseWriter, r *http.Request) *appError { function doUploadBlks (line 3462) | func doUploadBlks(rsp http.ResponseWriter, r *http.Request, fsm *recvDat... function commitFileBlocks (line 3563) | func commitFileBlocks(repoID, parentDir, fileName, blockIDsJSON, user st... function checkQuotaBeforeCommitBlocks (line 3640) | func checkQuotaBeforeCommitBlocks(storeID string, blockIDs []string) *ap... function indexExistedFileBlocks (line 3664) | func indexExistedFileBlocks(repoID string, version int, blkIDs []string,... function uploadRawBlksAPICB (line 3685) | func uploadRawBlksAPICB(rsp http.ResponseWriter, r *http.Request) *appEr... function doUploadRawBlks (line 3700) | func doUploadRawBlks(rsp http.ResponseWriter, r *http.Request, fsm *recv... function postBlocks (line 3755) | func postBlocks(repoID, user string, fsm *recvData) *appError { function indexRawBlocks (line 3775) | func indexRawBlocks(repoID string, blockIDs []string, fileHeaders []*mul... type ShareLinkInfo (line 3881) | type ShareLinkInfo struct function queryShareLinkInfo (line 3888) | func queryShareLinkInfo(token, cookie, opType, ipAddr, userAgent string)... function accessLinkCB (line 3934) | func accessLinkCB(rsp http.ResponseWriter, r *http.Request) *appError { function removeFileopExpireCache (line 4194) | func removeFileopExpireCache() { FILE: fileserver/fileserver.go function init (line 47) | func init() { constant timestampFormat (line 63) | timestampFormat = "[2006-01-02 15:04:05] " type LogFormatter (line 66) | type LogFormatter struct method Format (line 68) | func (f *LogFormatter) Format(entry *log.Entry) ([]byte, error) { function loadCcnetDB (line 91) | func loadCcnetDB() { function registerCA (line 120) | func registerCA(capath string) { function loadSeafileDB (line 134) | func loadSeafileDB() { function writePidFile (line 163) | func writePidFile(pid_file_path string) error { function removePidfile (line 180) | func removePidfile(pid_file_path string) error { function main (line 188) | func main() { function handleSignals (line 302) | func handleSignals() { function handleUser1Signal (line 311) | func handleUser1Signal() { function logRotate (line 321) | func logRotate() { function rpcClientInit (line 341) | func rpcClientInit() { function newHTTPRouter (line 351) | func newHTTPRouter() *mux.Router { function handleProtocolVersion (line 419) | func handleProtocolVersion(rsp http.ResponseWriter, r *http.Request) { type appError (line 423) | type appError struct type appHandler (line 429) | type appHandler method ServeHTTP (line 431) | func (fn appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { function RecoverWrapper (line 440) | func RecoverWrapper(f func()) { type profileHandler (line 450) | type profileHandler struct method ServeHTTP (line 454) | func (p *profileHandler) ServeHTTP(w http.ResponseWriter, r *http.Requ... type traceHandler (line 465) | type traceHandler struct method ServeHTTP (line 468) | func (p *traceHandler) ServeHTTP(w http.ResponseWriter, r *http.Reques... FILE: fileserver/fsmgr/fsmgr.go type Seafile (line 28) | type Seafile struct method toJSON (line 39) | func (file *Seafile) toJSON() ([]byte, error) { method FromData (line 476) | func (seafile *Seafile) FromData(p []byte, reader io.ReadCloser) error { method ToData (line 505) | func (seafile *Seafile) ToData(w io.Writer) error { function writeField (line 85) | func writeField(buf *bytes.Buffer, key string, value []byte) { type SeafDirent (line 93) | type SeafDirent struct method toJSON (line 102) | func (dent *SeafDirent) toJSON() ([]byte, error) { function jsonNoEscape (line 161) | func jsonNoEscape(data interface{}) ([]byte, error) { type SeafDir (line 184) | type SeafDir struct method toJSON (line 192) | func (dir *SeafDir) toJSON() ([]byte, error) { method ToData (line 520) | func (seafdir *SeafDir) ToData(w io.Writer) error { method FromData (line 535) | func (seafdir *SeafDir) FromData(p []byte, reader io.ReadCloser) error { type FileCountInfo (line 231) | type FileCountInfo struct constant SeafMetadataTypeInvalid (line 239) | SeafMetadataTypeInvalid = iota constant SeafMetadataTypeFile (line 240) | SeafMetadataTypeFile constant SeafMetadataTypeLink (line 241) | SeafMetadataTypeLink constant SeafMetadataTypeDir (line 242) | SeafMetadataTypeDir constant EmptySha1 (line 249) | EmptySha1 = "0000000000000000000000000000000000000000" function Init (line 262) | func Init(seafileConfPath string, seafileDataDir string, fsCacheLimit in... function calCost (line 272) | func calCost(value interface{}) int64 { constant sizeOfString (line 277) | sizeOfString = int64(unsafe.Sizeof(string(""))) constant sizeOfPointer (line 278) | sizeOfPointer = int64(unsafe.Sizeof(uintptr(0))) constant sizeOfSeafile (line 279) | sizeOfSeafile = int64(unsafe.Sizeof(Seafile{})) constant sizeOfSeafDir (line 280) | sizeOfSeafDir = int64(unsafe.Sizeof(SeafDir{})) constant sizeOfSeafDirent (line 281) | sizeOfSeafDirent = int64(unsafe.Sizeof(SeafDirent{})) function sizeOf (line 284) | func sizeOf(a interface{}) int64 { function initZlibReader (line 320) | func initZlibReader() (io.ReadCloser, error) { function GetOneZlibReader (line 337) | func GetOneZlibReader() io.ReadCloser { function ReturnOneZlibReader (line 354) | func ReturnOneZlibReader(reader io.ReadCloser) { function NewDirent (line 364) | func NewDirent(id string, name string, mode uint32, mtime int64, modifie... function NewSeafdir (line 382) | func NewSeafdir(version int, entries []*SeafDirent) (*SeafDir, error) { function NewSeafile (line 403) | func NewSeafile(version int, fileSize int64, blkIDs []string) (*Seafile,... function uncompress (line 425) | func uncompress(p []byte, reader io.ReadCloser) ([]byte, error) { function compress (line 460) | func compress(p []byte) ([]byte, error) { function ReadRaw (line 563) | func ReadRaw(repoID string, objID string, w io.Writer) error { function WriteRaw (line 573) | func WriteRaw(repoID string, objID string, r io.Reader) error { function GetSeafile (line 582) | func GetSeafile(repoID string, fileID string) (*Seafile, error) { function GetSeafileWithZlibReader (line 587) | func GetSeafileWithZlibReader(repoID string, fileID string, reader io.Re... function getSeafile (line 591) | func getSeafile(repoID string, fileID string, reader io.ReadCloser) (*Se... function SaveSeafile (line 623) | func SaveSeafile(repoID string, seafile *Seafile) error { function GetSeafdir (line 652) | func GetSeafdir(repoID string, dirID string) (*SeafDir, error) { function GetSeafdirWithZlibReader (line 657) | func GetSeafdirWithZlibReader(repoID string, dirID string, reader io.Rea... function getSeafdir (line 661) | func getSeafdir(repoID string, dirID string, reader io.ReadCloser, useCa... function getSeafdirFromCache (line 702) | func getSeafdirFromCache(repoID string, dirID string) *SeafDir { function setSeafdirToCache (line 716) | func setSeafdirToCache(repoID string, seafdir *SeafDir) error { function SaveSeafdir (line 724) | func SaveSeafdir(repoID string, seafdir *SeafDir) error { function Exists (line 752) | func Exists(repoID string, objID string) (bool, error) { function comp (line 759) | func comp(c rune) bool { function IsDir (line 764) | func IsDir(m uint32) bool { function IsRegular (line 769) | func IsRegular(m uint32) bool { function GetSeafdirByPath (line 777) | func GetSeafdirByPath(repoID string, rootID string, path string) (*SeafD... function GetSeafdirIDByPath (line 811) | func GetSeafdirIDByPath(repoID, rootID, path string) (string, error) { function GetObjIDByPath (line 825) | func GetObjIDByPath(repoID, rootID, path string) (string, uint32, error) { function GetFileCountInfoByPath (line 867) | func GetFileCountInfoByPath(repoID, rootID, path string) (*FileCountInfo... function getFileCountInfo (line 883) | func getFileCountInfo(repoID, dirID string) (*FileCountInfo, error) { function GetDirentByPath (line 912) | func GetDirentByPath(repoID, rootID, rpath string) (*SeafDirent, error) { FILE: fileserver/fsmgr/fsmgr_test.go constant seafileConfPath (line 10) | seafileConfPath = "/tmp/conf" constant seafileDataDir (line 11) | seafileDataDir = "/tmp/conf/seafile-data" constant repoID (line 12) | repoID = "b1f2ad61-9164-418a-a47f-ab805dbd5694" constant blkID (line 13) | blkID = "0401fc662e3bc87a41f299a907c056aaf8322a26" constant subDirID (line 14) | subDirID = "0401fc662e3bc87a41f299a907c056aaf8322a27" function createFile (line 20) | func createFile() error { function delFile (line 58) | func delFile() error { function TestMain (line 67) | func TestMain(m *testing.M) { function TestGetSeafile (line 82) | func TestGetSeafile(t *testing.T) { function TestGetSeafdir (line 100) | func TestGetSeafdir(t *testing.T) { function TestGetSeafdirByPath (line 119) | func TestGetSeafdirByPath(t *testing.T) { FILE: fileserver/http_code.go constant seafHTTPResBadFileName (line 4) | seafHTTPResBadFileName = 440 constant seafHTTPResExists (line 5) | seafHTTPResExists = 441 constant seafHTTPResNotExists (line 6) | seafHTTPResNotExists = 441 constant seafHTTPResTooLarge (line 7) | seafHTTPResTooLarge = 442 constant seafHTTPResNoQuota (line 8) | seafHTTPResNoQuota = 443 constant seafHTTPResRepoDeleted (line 9) | seafHTTPResRepoDeleted = 444 constant seafHTTPResRepoCorrupted (line 10) | seafHTTPResRepoCorrupted = 445 constant seafHTTPResBlockMissing (line 11) | seafHTTPResBlockMissing = 446 FILE: fileserver/merge.go type mergeOptions (line 19) | type mergeOptions struct function mergeTrees (line 27) | func mergeTrees(storeID string, roots []string, opt *mergeOptions) error { function mergeTreesRecursive (line 54) | func mergeTreesRecursive(storeID string, trees []*fsmgr.SeafDir, baseDir... function mergeEntries (line 143) | func mergeEntries(storeID string, dents []*fsmgr.SeafDirent, baseDir str... function mergeDirectories (line 243) | func mergeDirectories(storeID string, dents []*fsmgr.SeafDirent, baseDir... function mergeConflictFileName (line 328) | func mergeConflictFileName(storeID string, opt *mergeOptions, baseDir, f... function genConflictPath (line 350) | func genConflictPath(originPath, modifier string, mtime int64) string { function getNickNameByModifier (line 376) | func getNickNameByModifier(emailToNickname map[string]string, modifier s... function postGetNickName (line 397) | func postGetNickName(modifier string) string { function getFileModifierMtime (line 448) | func getFileModifierMtime(repoID, storeID, head, filePath string) (strin... FILE: fileserver/merge_test.go constant mergeTestCommitID (line 15) | mergeTestCommitID = "0401fc662e3bc87a41f299a907c056aaf8322a27" constant mergeTestRepoID (line 16) | mergeTestRepoID = "b1f2ad61-9164-418a-a47f-ab805dbd5694" constant mergeTestSeafileConfPath (line 17) | mergeTestSeafileConfPath = "/tmp/conf" constant mergeTestSeafileDataDir (line 18) | mergeTestSeafileDataDir = "/tmp/conf/seafile-data" function mergeTestCreateTestDir (line 54) | func mergeTestCreateTestDir() error { function mergeTestCreateSeafdir (line 194) | func mergeTestCreateSeafdir(dents []*fsmgr.SeafDirent) (string, error) { function mergeTestDelFile (line 208) | func mergeTestDelFile() error { function TestMergeTrees (line 217) | func TestMergeTrees(t *testing.T) { function testMergeTrees1 (line 247) | func testMergeTrees1(t *testing.T) { function testMergeTrees2 (line 268) | func testMergeTrees2(t *testing.T) { function testMergeTrees3 (line 289) | func testMergeTrees3(t *testing.T) { function testMergeTrees4 (line 310) | func testMergeTrees4(t *testing.T) { function testMergeTrees5 (line 331) | func testMergeTrees5(t *testing.T) { function testMergeTrees6 (line 351) | func testMergeTrees6(t *testing.T) { function testMergeTrees7 (line 371) | func testMergeTrees7(t *testing.T) { function testMergeTrees8 (line 391) | func testMergeTrees8(t *testing.T) { function testMergeTrees9 (line 411) | func testMergeTrees9(t *testing.T) { function testMergeTrees10 (line 431) | func testMergeTrees10(t *testing.T) { function testMergeTrees11 (line 451) | func testMergeTrees11(t *testing.T) { function testMergeTrees12 (line 471) | func testMergeTrees12(t *testing.T) { FILE: fileserver/metrics/metrics.go constant RedisChannel (line 21) | RedisChannel = "metric_channel" constant ComponentName (line 22) | ComponentName = "go_fileserver" constant MetricInterval (line 23) | MetricInterval = 30 * time.Second type MetricMgr (line 26) | type MetricMgr struct method AddReq (line 37) | func (m *MetricMgr) AddReq(urlPath, method string) *list.Element { method DecReq (line 50) | func (m *MetricMgr) DecReq(e *list.Element) { type RequestInfo (line 31) | type RequestInfo struct function Init (line 64) | func Init() { function Stop (line 75) | func Stop() { function metricsHandler (line 82) | func metricsHandler() { function MetricMiddleware (line 116) | func MetricMiddleware(next http.Handler) http.Handler { type MetricMessage (line 124) | type MetricMessage struct function publishMetrics (line 133) | func publishMetrics() error { function publishRedisMsg (line 159) | func publishRedisMsg(channel string, msg []byte) error { FILE: fileserver/objstore/backend_fs.go type fsBackend (line 10) | type fsBackend struct method read (line 35) | func (b *fsBackend) read(repoID string, objID string, w io.Writer) err... method write (line 51) | func (b *fsBackend) write(repoID string, objID string, r io.Reader, sy... method exists (line 94) | func (b *fsBackend) exists(repoID string, objID string) (bool, error) { method stat (line 106) | func (b *fsBackend) stat(repoID string, objID string) (int64, error) { function newFSBackend (line 17) | func newFSBackend(seafileDataDir string, objType string) (*fsBackend, er... FILE: fileserver/objstore/objstore.go type ObjectStore (line 10) | type ObjectStore struct method Read (line 39) | func (s *ObjectStore) Read(repoID string, objID string, w io.Writer) (... method Write (line 44) | func (s *ObjectStore) Write(repoID string, objID string, r io.Reader, ... method Exists (line 49) | func (s *ObjectStore) Exists(repoID string, objID string) (res bool, e... method Stat (line 54) | func (s *ObjectStore) Stat(repoID string, objID string) (res int64, er... type storageBackend (line 18) | type storageBackend interface function New (line 31) | func New(seafileConfPath string, seafileDataDir string, objType string) ... FILE: fileserver/objstore/objstore_test.go constant testFile (line 11) | testFile = "output.data" constant seafileConfPath (line 12) | seafileConfPath = "/tmp/conf" constant seafileDataDir (line 13) | seafileDataDir = "/tmp/conf/seafile-data" constant repoID (line 14) | repoID = "b1f2ad61-9164-418a-a47f-ab805dbd5694" constant objID (line 15) | objID = "0401fc662e3bc87a41f299a907c056aaf8322a27" function createFile (line 18) | func createFile() error { function delFile (line 33) | func delFile() error { function TestMain (line 47) | func TestMain(m *testing.M) { function testWrite (line 62) | func testWrite(t *testing.T) { function testRead (line 73) | func testRead(t *testing.T) { function testExists (line 87) | func testExists(t *testing.T) { function TestObjStore (line 101) | func TestObjStore(t *testing.T) { FILE: fileserver/option/option.go constant InfiniteQuota (line 16) | InfiniteQuota = -2 constant KB (line 20) | KB = 1000 constant MB (line 21) | MB = 1000000 constant GB (line 22) | GB = 1000000000 constant TB (line 23) | TB = 1000000000000 type DBOption (line 88) | type DBOption struct function initDefaultOptions (line 102) | func initDefaultOptions() { function LoadFileServerOptions (line 122) | func LoadFileServerOptions(centralDir string) { function parseFileServerSection (line 174) | func parseFileServerSection(section *ini.Section) { function parseQuota (line 254) | func parseQuota(quotaStr string) int64 { function loadCacheOptionFromEnv (line 296) | func loadCacheOptionFromEnv() { function LoadSeahubConfig (line 335) | func LoadSeahubConfig() error { function LoadDBOption (line 351) | func LoadDBOption(centralDir string) (*DBOption, error) { function loadDBOptionFromFile (line 373) | func loadDBOptionFromFile(centralDir string) (*DBOption, error) { function loadDBOptionFromEnv (line 439) | func loadDBOptionFromEnv(dbOpt *DBOption) *DBOption { FILE: fileserver/quota.go constant InfiniteQuota (line 14) | InfiniteQuota = -2 function checkQuota (line 17) | func checkQuota(repoID string, delta int64) (int, error) { function getUserQuota (line 64) | func getUserQuota(user string) (int64, error) { function getUserUsage (line 83) | func getUserUsage(user string) (int64, error) { FILE: fileserver/repomgr/repomgr.go constant RepoStatusNormal (line 19) | RepoStatusNormal = iota constant RepoStatusReadOnly (line 20) | RepoStatusReadOnly constant NRepoStatus (line 21) | NRepoStatus type Repo (line 25) | type Repo struct type VRepoInfo (line 54) | type VRepoInfo struct function Init (line 64) | func Init(seafDB *sql.DB) { function Get (line 69) | func Get(id string) *Repo { function RepoToCommit (line 168) | func RepoToCommit(repo *Repo, commit *commitmgr.Commit) { function GetEx (line 200) | func GetEx(id string) *Repo { function GetVirtualRepoInfo (line 301) | func GetVirtualRepoInfo(repoID string) (*VRepoInfo, error) { function GetVirtualRepoInfoByOrigin (line 318) | func GetVirtualRepoInfoByOrigin(originRepo string) ([]*VRepoInfo, error) { function GetEmailByToken (line 343) | func GetEmailByToken(repoID string, token string) (string, error) { function GetRepoStatus (line 359) | func GetRepoStatus(repoID string) (int, error) { function TokenPeerInfoExists (line 393) | func TokenPeerInfoExists(token string) (bool, error) { function AddTokenPeerInfo (line 410) | func AddTokenPeerInfo(token, peerID, peerIP, peerName, clientVer string,... function UpdateTokenPeerInfo (line 423) | func UpdateTokenPeerInfo(token, peerID, clientVer string, syncTime int64... function GetUploadTmpFile (line 435) | func GetUploadTmpFile(repoID, filePath string) (string, error) { function AddUploadTmpFile (line 468) | func AddUploadTmpFile(repoID, filePath, tmpFile string) error { function DelUploadTmpFile (line 486) | func DelUploadTmpFile(repoID, filePath string) error { function setRepoCommitToDb (line 507) | func setRepoCommitToDb(repoID, repoName string, updateTime int64, versio... function SetVirtualRepoBaseCommitPath (line 546) | func SetVirtualRepoBaseCommitPath(repoID, baseCommitID, newPath string) ... function GetVirtualRepoIDsByOrigin (line 557) | func GetVirtualRepoIDsByOrigin(repoID string) ([]string, error) { function DelVirtualRepo (line 582) | func DelVirtualRepo(repoID string, cloudMode bool) error { function removeVirtualRepoOndisk (line 599) | func removeVirtualRepoOndisk(repoID string, cloudMode bool) error { function IsVirtualRepo (line 701) | func IsVirtualRepo(repoID string) (bool, error) { function GetRepoOwner (line 719) | func GetRepoOwner(repoID string) (string, error) { function UpdateRepoInfo (line 735) | func UpdateRepoInfo(repoID, commitID string) error { function HasLastGCID (line 747) | func HasLastGCID(repoID, clientID string) (bool, error) { function GetLastGCID (line 765) | func GetLastGCID(repoID, clientID string) (string, error) { function GetCurrentGCID (line 781) | func GetCurrentGCID(repoID string) (string, error) { function RemoveLastGCID (line 797) | func RemoveLastGCID(repoID, clientID string) error { function SetLastGCID (line 807) | func SetLastGCID(repoID, clientID, gcID string) error { FILE: fileserver/repomgr/repomgr_test.go constant user (line 16) | user = "seafile" constant password (line 17) | password = "seafile" constant host (line 18) | host = "127.0.0.1" constant port (line 19) | port = 3306 constant dbName (line 20) | dbName = "seafile-db" constant useTLS (line 21) | useTLS = false constant seafileConfPath (line 22) | seafileConfPath = "/root/conf" constant seafileDataDir (line 23) | seafileDataDir = "/root/conf/seafile-data" constant repoName (line 24) | repoName = "repo" constant userName (line 25) | userName = "seafile@seafile.com" constant encVersion (line 26) | encVersion = 2 constant pipePath (line 27) | pipePath = "/root/runtime/seafile.sock" constant service (line 28) | service = "seafserv-threaded-rpcserver" function createRepo (line 34) | func createRepo() string { function delRepo (line 51) | func delRepo() { function TestMain (line 59) | func TestMain(m *testing.M) { function TestGet (line 74) | func TestGet(t *testing.T) { FILE: fileserver/searpc/searpc.go type Client (line 14) | type Client struct method Call (line 44) | func (c *Client) Call(funcname string, params ...interface{}) (interfa... method getConn (line 140) | func (c *Client) getConn() (*net.UnixConn, error) { method returnConn (line 159) | func (c *Client) returnConn(conn *net.UnixConn) { type request (line 24) | type request struct function Init (line 30) | func Init(pipePath string, service string, maxConn int) *Client { FILE: fileserver/searpc/searpc_test.go constant repoName (line 9) | repoName = "repo" constant userName (line 10) | userName = "seafile@seafile.com" constant encVersion (line 11) | encVersion = 2 constant pipePath (line 12) | pipePath = "/root/runtime/seafile.sock" constant service (line 13) | service = "seafserv-threaded-rpcserver" function TestMain (line 18) | func TestMain(m *testing.M) { function TestCallRpc (line 24) | func TestCallRpc(t *testing.T) { FILE: fileserver/share/share.go type group (line 18) | type group struct function Init (line 32) | func Init(cnDB *sql.DB, seafDB *sql.DB, grpTableName string, clMode bool) { function CheckPerm (line 40) | func CheckPerm(repoID string, user string) string { function checkVirtualRepoPerm (line 56) | func checkVirtualRepoPerm(repoID, originRepoID, user, vPath string) stri... function getUserGroups (line 74) | func getUserGroups(sqlStr string, args ...interface{}) ([]group, error) { function getGroupsByUser (line 101) | func getGroupsByUser(userName string, returnAncestors bool) ([]group, er... function getGroupPaths (line 153) | func getGroupPaths(sqlStr string) (string, error) { function checkGroupPermByUser (line 180) | func checkGroupPermByUser(repoID string, userName string) (string, error) { function checkSharedRepoPerm (line 229) | func checkSharedRepoPerm(repoID string, email string) (string, error) { function checkInnerPubRepoPerm (line 245) | func checkInnerPubRepoPerm(repoID string) (string, error) { function checkRepoSharePerm (line 262) | func checkRepoSharePerm(repoID string, userName string) string { function getSharedDirsToUser (line 296) | func getSharedDirsToUser(originRepoID string, toEmail string) (map[strin... function getDirPerm (line 326) | func getDirPerm(perms map[string]string, path string) string { function convertGroupListToStr (line 340) | func convertGroupListToStr(groups []group) string { function getSharedDirsToGroup (line 352) | func getSharedDirsToGroup(originRepoID string, groups []group) (map[stri... function checkPermOnParentRepo (line 387) | func checkPermOnParentRepo(originRepoID, user, vPath string) string { type SharedRepo (line 424) | type SharedRepo struct function GetReposByOwner (line 437) | func GetReposByOwner(email string) ([]*SharedRepo, error) { function ListInnerPubRepos (line 497) | func ListInnerPubRepos() ([]*SharedRepo, error) { function ListShareRepos (line 551) | func ListShareRepos(email, columnType string) ([]*SharedRepo, error) { function GetGroupReposByUser (line 623) | func GetGroupReposByUser(user string, orgID int) ([]*SharedRepo, error) { FILE: fileserver/size_sched.go constant RepoSizeList (line 26) | RepoSizeList = "repo_size_task" function sizeSchedulerInit (line 32) | func sizeSchedulerInit() { function computeRepoSize (line 65) | func computeRepoSize(args ...interface{}) error { function setRepoSizeAndFileCount (line 149) | func setRepoSizeAndFileCount(repoID, newHeadID string, size, fileCount i... type RepoSizeChangeTask (line 216) | type RepoSizeChangeTask struct function notifyRepoSizeChange (line 220) | func notifyRepoSizeChange(repoID string) error { type RepoInfo (line 244) | type RepoInfo struct function getOldRepoInfo (line 250) | func getOldRepoInfo(repoID string) (*RepoInfo, error) { FILE: fileserver/sync_api.go type checkExistType (line 33) | type checkExistType constant checkFSExist (line 36) | checkFSExist checkExistType = 0 constant checkBlockExist (line 37) | checkBlockExist checkExistType = 1 constant seafileServerChannelEvent (line 41) | seafileServerChannelEvent = "seaf_server.event" constant seafileServerChannelStats (line 42) | seafileServerChannelStats = "seaf_server.stats" constant emptySHA1 (line 43) | emptySHA1 = "0000000000000000000000000000000000000000" constant tokenExpireTime (line 44) | tokenExpireTime = 7200 constant permExpireTime (line 45) | permExpireTime = 7200 constant virtualRepoExpireTime (line 46) | virtualRepoExpireTime = 7200 constant syncAPICleaningIntervalSec (line 47) | syncAPICleaningIntervalSec = 300 constant maxObjectPackSize (line 48) | maxObjectPackSize = 1 << 20 constant fsIdWorkers (line 49) | fsIdWorkers = 10 type tokenInfo (line 59) | type tokenInfo struct type permInfo (line 65) | type permInfo struct type virtualRepoInfo (line 70) | type virtualRepoInfo struct type repoEventData (line 75) | type repoEventData struct type statsEventData (line 84) | type statsEventData struct function syncAPIInit (line 91) | func syncAPIInit() { type calResult (line 102) | type calResult struct function getFsId (line 107) | func getFsId(args ...interface{}) error { function permissionCheckCB (line 194) | func permissionCheckCB(rsp http.ResponseWriter, r *http.Request) *appErr... function getBlockMapCB (line 275) | func getBlockMapCB(rsp http.ResponseWriter, r *http.Request) *appError { function getAccessibleRepoListCB (line 329) | func getAccessibleRepoListCB(rsp http.ResponseWriter, r *http.Request) *... function filterGroupRepos (line 434) | func filterGroupRepos(repos []*share.SharedRepo) map[string]*share.Share... function recvFSCB (line 453) | func recvFSCB(rsp http.ResponseWriter, r *http.Request) *appError { function checkFSCB (line 511) | func checkFSCB(rsp http.ResponseWriter, r *http.Request) *appError { function checkBlockCB (line 515) | func checkBlockCB(rsp http.ResponseWriter, r *http.Request) *appError { function postCheckExistCB (line 519) | func postCheckExistCB(rsp http.ResponseWriter, r *http.Request, existTyp... function packFSCB (line 576) | func packFSCB(rsp http.ResponseWriter, r *http.Request) *appError { function headCommitsMultiCB (line 630) | func headCommitsMultiCB(rsp http.ResponseWriter, r *http.Request) *appEr... function getCheckQuotaCB (line 693) | func getCheckQuotaCB(rsp http.ResponseWriter, r *http.Request) *appError { function getJWTTokenCB (line 728) | func getJWTTokenCB(rsp http.ResponseWriter, r *http.Request) *appError { function getFsObjIDCB (line 754) | func getFsObjIDCB(rsp http.ResponseWriter, r *http.Request) *appError { function headCommitOperCB (line 762) | func headCommitOperCB(rsp http.ResponseWriter, r *http.Request) *appError { function commitOperCB (line 771) | func commitOperCB(rsp http.ResponseWriter, r *http.Request) *appError { function blockOperCB (line 780) | func blockOperCB(rsp http.ResponseWriter, r *http.Request) *appError { function putSendBlockCB (line 789) | func putSendBlockCB(rsp http.ResponseWriter, r *http.Request) *appError { function getBlockInfo (line 820) | func getBlockInfo(rsp http.ResponseWriter, r *http.Request) *appError { function getRepoStoreID (line 863) | func getRepoStoreID(repoID string) (string, error) { function sendStatisticMsg (line 906) | func sendStatisticMsg(repoID, user, operation string, bytes uint64) { function publishStatsEvent (line 912) | func publishStatsEvent(rData *statsEventData) { function saveLastGCID (line 928) | func saveLastGCID(repoID, token string) error { function putCommitCB (line 940) | func putCommitCB(rsp http.ResponseWriter, r *http.Request) *appError { function getCommitInfo (line 985) | func getCommitInfo(rsp http.ResponseWriter, r *http.Request) *appError { function putUpdateBranchCB (line 1016) | func putUpdateBranchCB(rsp http.ResponseWriter, r *http.Request) *appErr... type checkBlockAux (line 1096) | type checkBlockAux struct function checkBlocks (line 1102) | func checkBlocks(ctx context.Context, repo *repomgr.Repo, base, remote *... function checkFileBlocks (line 1127) | func checkFileBlocks(ctx context.Context, baseDir string, files []*fsmgr... function checkDirCB (line 1161) | func checkDirCB(ctx context.Context, baseDir string, dirs []*fsmgr.SeafD... function includeInvalidPath (line 1196) | func includeInvalidPath(baseCommit, newCommit *commitmgr.Commit) bool { function getHeadCommit (line 1218) | func getHeadCommit(rsp http.ResponseWriter, r *http.Request) *appError { function checkPermission (line 1266) | func checkPermission(repoID, user, op string, skipCache bool) *appError { function validateToken (line 1305) | func validateToken(r *http.Request, repoID string, skipCache bool) (stri... function validateClientVer (line 1348) | func validateClientVer(clientVer string) int { function getClientIPAddr (line 1366) | func getClientIPAddr(r *http.Request) string { function onRepoOper (line 1390) | func onRepoOper(eType, repoID, user, ip, clientName string) { function publishRepoEvent (line 1412) | func publishRepoEvent(rData *repoEventData) { function publishUpdateEvent (line 1433) | func publishUpdateEvent(repoID string, commitID string) { function removeSyncAPIExpireCache (line 1448) | func removeSyncAPIExpireCache() { type collectFsInfo (line 1481) | type collectFsInfo struct function calculateSendObjectList (line 1489) | func calculateSendObjectList(ctx context.Context, repo *repomgr.Repo, se... function collectFileIDs (line 1539) | func collectFileIDs(ctx context.Context, baseDir string, files []*fsmgr.... function collectFileIDsNOp (line 1563) | func collectFileIDsNOp(ctx context.Context, baseDir string, files []*fsm... function collectDirIDs (line 1567) | func collectDirIDs(ctx context.Context, baseDir string, dirs []*fsmgr.Se... FILE: fileserver/utils/dup2.go function Dup (line 9) | func Dup(from, to int) error { FILE: fileserver/utils/dup3.go function Dup (line 9) | func Dup(from, to int) error { FILE: fileserver/utils/http.go function GetAuthorizationToken (line 13) | func GetAuthorizationToken(h http.Header) string { function HttpCommon (line 22) | func HttpCommon(method, url string, header map[string][]string, reader i... function parseErrorMessage (line 52) | func parseErrorMessage(r io.Reader) []byte { FILE: fileserver/utils/utils.go function IsValidUUID (line 12) | func IsValidUUID(u string) bool { function IsObjectIDValid (line 17) | func IsObjectIDValid(objID string) bool { type SeahubClaims (line 31) | type SeahubClaims struct method Valid (line 37) | func (*SeahubClaims) Valid() error { function GenSeahubJWTToken (line 41) | func GenSeahubJWTToken() (string, error) { type MyClaims (line 56) | type MyClaims struct method Valid (line 63) | func (*MyClaims) Valid() error { function GenNotifJWTToken (line 67) | func GenNotifJWTToken(repoID, user string, exp int64) (string, error) { FILE: fileserver/virtual_repo.go constant mergeVirtualRepoWorkerNumber (line 22) | mergeVirtualRepoWorkerNumber = 5 function virtualRepoInit (line 29) | func virtualRepoInit() { function mergeVirtualRepo (line 33) | func mergeVirtualRepo(args ...interface{}) error { function mergeRepo (line 100) | func mergeRepo(repoID string) error { function cleanupVirtualRepos (line 204) | func cleanupVirtualRepos(repoID string) error { function handleMissingVirtualRepo (line 234) | func handleMissingVirtualRepo(repo *repomgr.Repo, head *commitmgr.Commit... function editRepo (line 306) | func editRepo(repoID, name, desc, user string) error { function editRepoNeedRetry (line 331) | func editRepoNeedRetry(repoID, name, desc, user string) (bool, error) { FILE: fileserver/workerpool/workerpool.go type WorkPool (line 10) | type WorkPool struct method AddTask (line 35) | func (pool *WorkPool) AddTask(args ...interface{}) { method run (line 40) | func (pool *WorkPool) run(jobs chan Job) { method Shutdown (line 63) | func (pool *WorkPool) Shutdown() { type Job (line 17) | type Job struct type JobCB (line 22) | type JobCB function CreateWorkerPool (line 24) | func CreateWorkerPool(jobCB JobCB, n int) *WorkPool { FILE: fuse/file.c function read_file (line 16) | int read_file(SeafileSession *seaf, FILE: fuse/getattr.c function CcnetEmailUser (line 18) | static CcnetEmailUser *get_user_from_ccnet (SearpcClient *client, const ... function getattr_root (line 25) | static int getattr_root(SeafileSession *seaf, struct stat *stbuf) function getattr_user (line 34) | static int getattr_user(SeafileSession *seaf, const char *user, struct s... function getattr_repo (line 51) | static int getattr_repo(SeafileSession *seaf, function do_getattr (line 151) | int do_getattr(SeafileSession *seaf, const char *path, struct stat *stbuf) FILE: fuse/readdir.c function GList (line 30) | static GList *get_users_from_ccnet (SearpcClient *client, const char *so... function CcnetEmailUser (line 37) | static CcnetEmailUser *get_user_from_ccnet (SearpcClient *client, const ... function readdir_root (line 44) | static int readdir_root(SeafileSession *seaf, function readdir_user (line 89) | static int readdir_user(SeafileSession *seaf, const char *user, function readdir_repo (line 138) | static int readdir_repo(SeafileSession *seaf, function do_readdir (line 190) | int do_readdir(SeafileSession *seaf, const char *path, void *buf, FILE: fuse/repo-mgr.c type _SeafRepoManagerPriv (line 20) | struct _SeafRepoManagerPriv { function gboolean (line 27) | gboolean function SeafRepo (line 36) | SeafRepo* function seaf_repo_free (line 56) | void function seaf_repo_ref (line 66) | void function seaf_repo_unref (line 72) | void function set_head_common (line 82) | static void function seaf_repo_from_commit (line 91) | void function seaf_repo_to_commit (line 101) | void function gboolean (line 111) | static gboolean function GList (line 123) | GList * function compare_repo (line 164) | static int function SeafRepoManager (line 171) | SeafRepoManager* function seaf_repo_manager_init (line 182) | int function seaf_repo_manager_start (line 188) | int function gboolean (line 194) | static gboolean function SeafRepo (line 205) | SeafRepo* function gboolean (line 227) | gboolean function load_repo_commit (line 236) | static void function gboolean (line 258) | static gboolean function SeafRepo (line 289) | static SeafRepo * function gboolean (line 328) | static gboolean function GList (line 340) | GList * function GList (line 355) | GList * function GList (line 383) | GList * function gboolean (line 410) | gboolean FILE: fuse/repo-mgr.h type _SeafRepoManager (line 12) | struct _SeafRepoManager type SeafRepo (line 13) | typedef struct _SeafRepo SeafRepo; type _SeafRepo (line 15) | struct _SeafRepo { type SeafRepoManager (line 57) | typedef struct _SeafRepoManager SeafRepoManager; type SeafRepoManagerPriv (line 58) | typedef struct _SeafRepoManagerPriv SeafRepoManagerPriv; type _SeafRepoManager (line 60) | struct _SeafRepoManager { type _SeafileSession (line 67) | struct _SeafileSession FILE: fuse/seaf-fuse.c function parse_fuse_path (line 36) | int parse_fuse_path (const char *path, function seaf_fuse_getattr (line 84) | static int seaf_fuse_getattr(const char *path, struct stat *stbuf) function seaf_fuse_readdir (line 90) | static int seaf_fuse_readdir(const char *path, void *buf, function seaf_fuse_open (line 100) | static int seaf_fuse_open(const char *path, struct fuse_file_info *info) function seaf_fuse_read (line 166) | static int seaf_fuse_read(const char *path, char *buf, size_t size, type options (line 242) | struct options { type fuse_opt (line 256) | struct fuse_opt type fuse_operations (line 273) | struct fuse_operations function main (line 280) | int main(int argc, char *argv[]) FILE: fuse/seaf-fuse.h type fuse_file_info (line 19) | struct fuse_file_info type stat (line 22) | struct stat type fuse_file_info (line 27) | struct fuse_file_info FILE: fuse/seafile-session.c function SeafileSession (line 18) | SeafileSession * function read_excluded_users (line 125) | static int function seafile_session_init (line 153) | int function seafile_session_start (line 181) | int FILE: fuse/seafile-session.h type SeafileSession (line 18) | typedef struct _SeafileSession SeafileSession; type _SeafileSession (line 20) | struct _SeafileSession { FILE: lib/bloom-filter.c function Bloom (line 15) | Bloom* bloom_create(size_t size, int k, int counting) function bloom_destroy (line 45) | int bloom_destroy(Bloom *bloom) function incr_bit (line 54) | static void function decr_bit (line 85) | static void function bloom_add (line 124) | int bloom_add(Bloom *bloom, const char *s) function bloom_remove (line 141) | int bloom_remove(Bloom *bloom, const char *s) function bloom_test (line 161) | int bloom_test(Bloom *bloom, const char *s) FILE: lib/bloom-filter.h type Bloom (line 8) | typedef struct { FILE: lib/db.c function sqlite_open_db (line 7) | int function sqlite_close_db (line 27) | int sqlite_close_db (sqlite3 *db) function sqlite3_stmt (line 32) | sqlite3_stmt * function sqlite_query_exec (line 52) | int function sqlite_begin_transaction (line 71) | int function sqlite_end_transaction (line 78) | int function gboolean (line 86) | gboolean function sqlite_foreach_selected_row (line 112) | int function sqlite_get_int (line 147) | int sqlite_get_int (sqlite3 *db, const char *sql) function gint64 (line 175) | gint64 sqlite_get_int64 (sqlite3 *db, const char *sql) FILE: lib/db.h type gboolean (line 20) | typedef gboolean (*SqliteRowFunc) (sqlite3_stmt *stmt, void *data); FILE: lib/job-mgr.c type _CcnetJob (line 22) | struct _CcnetJob { function job_thread_wrapper (line 40) | static void function job_done_cb (line 52) | static void function job_thread_create (line 70) | int function CcnetJob (line 87) | CcnetJob * function ccnet_job_free (line 96) | void function CcnetJobManager (line 102) | CcnetJobManager * function ccnet_job_manager_free (line 120) | void function ccnet_job_manager_schedule_job (line 128) | int function ccnet_job_manager_remove_job (line 151) | void function ccnet_job_manager_wait_job (line 158) | void FILE: lib/job-mgr.h type _CcnetSession (line 13) | struct _CcnetSession type CcnetJob (line 15) | typedef struct _CcnetJob CcnetJob; type CcnetJobManager (line 16) | typedef struct _CcnetJobManager CcnetJobManager; type _CcnetJobManager (line 27) | struct _CcnetJobManager { FILE: lib/net.c function inet_aton (line 46) | int inet_aton(const char *string, struct in_addr *addr) function ccnet_netSetTOS (line 57) | int function evutil_socket_t (line 67) | static evutil_socket_t function evutil_socket_t (line 83) | static evutil_socket_t function evutil_socket_t (line 110) | evutil_socket_t function evutil_socket_t (line 145) | evutil_socket_t function ccnet_net_make_socket_blocking (line 231) | int function evutil_socket_t (line 258) | evutil_socket_t function evutil_socket_t (line 275) | evutil_socket_t type sockaddr (line 327) | struct sockaddr type sockaddr_in (line 333) | struct sockaddr_in type sockaddr_in (line 333) | struct sockaddr_in type sockaddr_in6 (line 342) | struct sockaddr_in6 type sockaddr_in6 (line 342) | struct sockaddr_in6 type sockaddr_un (line 353) | struct sockaddr_un type sockaddr_un (line 353) | struct sockaddr_un function sock_pton (line 374) | int function is_valid_ipaddr (line 401) | int function sock_port (line 412) | uint16_t function evutil_socket_t (line 434) | evutil_socket_t function family_to_level (line 475) | int function mcast_join (line 491) | static int function evutil_socket_t (line 519) | evutil_socket_t function mcast_join (line 563) | static int function evutil_socket_t (line 656) | evutil_socket_t function sockfd_to_family (line 693) | int function mcast_set_loop (line 705) | int FILE: lib/net.h type socklen_t (line 9) | typedef int socklen_t; type in_addr (line 42) | struct in_addr type sockaddr (line 47) | struct sockaddr type sockaddr_storage (line 50) | struct sockaddr_storage type sockaddr (line 60) | struct sockaddr type sockaddr (line 61) | struct sockaddr type sockaddr_storage (line 69) | struct sockaddr_storage type sockaddr (line 72) | struct sockaddr type sockaddr (line 76) | struct sockaddr FILE: lib/timer.c type CcnetTimer (line 17) | struct CcnetTimer function timer_callback (line 26) | static void function ccnet_timer_free (line 42) | void function CcnetTimer (line 61) | CcnetTimer* FILE: lib/timer.h type CcnetTimer (line 9) | struct CcnetTimer type CcnetTimer (line 11) | typedef struct CcnetTimer CcnetTimer; FILE: lib/utils.c function timeval_from_msec (line 62) | struct timeval function rawdata_to_hex (line 72) | void function hexval (line 86) | static unsigned hexval(char c) function hex_to_rawdata (line 97) | int function ccnet_strlcpy (line 111) | size_t function checkdir (line 125) | int function checkdir_with_mkdir (line 148) | int function objstore_mkdir (line 164) | int function objstore_get_path (line 191) | void function __time64_t (line 212) | __time64_t function get_utc_file_time_fd (line 223) | static int function unix_time_to_file_time (line 248) | inline static void function set_utc_file_time (line 258) | static int function wchar_t (line 288) | wchar_t * function wchar_t (line 309) | wchar_t * function windows_error_to_errno (line 365) | static int function seaf_stat (line 386) | int function seaf_fstat (line 422) | int function seaf_stat_from_find_data (line 440) | void function seaf_set_file_time (line 459) | int function seaf_util_unlink (line 487) | int function seaf_util_rmdir (line 506) | int function seaf_util_mkdir (line 525) | int function seaf_util_open (line 544) | int function seaf_util_create (line 581) | int function seaf_util_rename (line 618) | int function gboolean (line 639) | gboolean function gint64 (line 657) | gint64 function traverse_directory_win32 (line 669) | int function readn (line 735) | ssize_t function writen (line 760) | ssize_t function recvn (line 785) | ssize_t function sendn (line 814) | ssize_t function copy_fd (line 842) | int copy_fd (int ifd, int ofd) function copy_file (line 862) | int copy_file (const char *dst, const char *src, int mode) type passwd (line 936) | struct passwd function calculate_sha1 (line 1016) | int function ccnet_sha1_hash (line 1030) | uint32_t function ccnet_sha1_equal (line 1044) | int function gen_uuid_inplace (line 1071) | void gen_uuid_inplace (char *buf) function gboolean (line 1079) | gboolean function gen_uuid_inplace (line 1106) | void gen_uuid_inplace (char *buf) function gboolean (line 1117) | gboolean function gboolean (line 1131) | gboolean function gboolean (line 1175) | gboolean is_ipaddr_valid (const char *ip) function parse_key_value_pairs (line 1188) | void parse_key_value_pairs (char *string, KeyValueFunc func, void *data) function parse_key_value_pairs2 (line 1218) | void parse_key_value_pairs2 (char *string, KeyValueFunc2 func, void *data) function gboolean (line 1258) | gboolean function GList (line 1278) | GList* function GList (line 1290) | GList * function GList (line 1304) | GList * function string_list_free (line 1321) | void function string_list_join (line 1335) | void function GList (line 1351) | GList * function GList (line 1370) | GList * function gboolean (line 1378) | gboolean function nfree_string_array (line 1407) | void function gint64 (line 1417) | gint64 type sockaddr_in (line 1425) | struct sockaddr_in function pgpipe (line 1430) | int function ccnet_encrypt (line 1525) | int function ccnet_decrypt (line 1640) | int function HANDLE (line 1800) | static HANDLE function count_process (line 1845) | int count_process (const char *process_name_in) function gboolean (line 1892) | gboolean function win32_kill_process (line 1905) | int function win32_spawn_process (line 1919) | int function wchar_t (line 2022) | wchar_t * function find_process_in_dirent (line 2067) | static int function gboolean (line 2096) | gboolean process_is_running (const char *process_name) function count_process (line 2121) | int count_process(const char *process_name) function gboolean (line 2148) | gboolean process_is_running (const char *process_name) function win_stat64_utf8 (line 2175) | static inline int function gint64 (line 2189) | static gint64 function gint64 (line 2233) | gint64 function gboolean (line 2287) | gboolean function gint64 (line 2293) | gint64 function json_object_set_string_member (line 2300) | void function json_object_set_int_member (line 2306) | void function clean_utf8_data (line 2312) | void function seaf_compress (line 2347) | int function seaf_decompress (line 2389) | int function gboolean (line 2464) | gboolean function gboolean (line 2470) | gboolean function gchar (line 2497) | gchar* FILE: lib/utils.h type timeval (line 154) | struct timeval type gboolean (line 212) | typedef gboolean (*KeyValueFunc2) (void *data, const char *key, function bswap64 (line 254) | static inline uint64_t function hton64 (line 272) | static inline uint64_t function ntoh64 (line 282) | static inline uint64_t function put64bit (line 292) | static inline void put64bit(uint8_t **ptr,uint64_t val) function put32bit (line 299) | static inline void put32bit(uint8_t **ptr,uint32_t val) function put16bit (line 306) | static inline void put16bit(uint8_t **ptr,uint16_t val) function get64bit (line 313) | static inline uint64_t get64bit(const uint8_t **ptr) function get32bit (line 320) | static inline uint32_t get32bit(const uint8_t **ptr) function get16bit (line 327) | static inline uint16_t get16bit(const uint8_t **ptr) FILE: notification-server/client.go constant writeWait (line 15) | writeWait = 1 * time.Second constant pongWait (line 16) | pongWait = 5 * time.Second constant pingPeriod (line 18) | pingPeriod = 1 * time.Second constant checkTokenPeriod (line 20) | checkTokenPeriod = 1 * time.Hour type Message (line 24) | type Message struct type SubList (line 29) | type SubList struct type UnsubList (line 33) | type UnsubList struct type Repo (line 37) | type Repo struct type myClaims (line 42) | type myClaims struct method Valid (line 49) | func (*myClaims) Valid() error { method Close (line 53) | func (client *Client) Close() { function RecoverWrapper (line 57) | func RecoverWrapper(f func()) { method HandleMessages (line 68) | func (client *Client) HandleMessages() { method readMessages (line 88) | func (client *Client) readMessages() { function checkToken (line 117) | func checkToken(tokenString, repoID string) (string, int64, bool) { method handleMessage (line 141) | func (client *Client) handleMessage(msg *Message) error { method subscribe (line 176) | func (client *Client) subscribe(repoID, user string, exp int64) { method unsubscribe (line 196) | func (client *Client) unsubscribe(repoID string) { method writeMessages (line 215) | func (client *Client) writeMessages() { method keepAlive (line 240) | func (client *Client) keepAlive() { method checkTokenExpired (line 269) | func (client *Client) checkTokenExpired() { method notifJWTExpired (line 300) | func (client *Client) notifJWTExpired(repoID string) { FILE: notification-server/dup2.go function Dup (line 9) | func Dup(from, to int) error { FILE: notification-server/dup3.go function Dup (line 9) | func Dup(from, to int) error { FILE: notification-server/event.go type RepoUpdateEvent (line 13) | type RepoUpdateEvent struct type FileLockEvent (line 18) | type FileLockEvent struct type FolderPermEvent (line 25) | type FolderPermEvent struct type CommentEvent (line 35) | type CommentEvent struct function Notify (line 42) | func Notify(msg *Message) { function getGroupMembers (line 132) | func getGroupMembers(group int) map[string]struct{} { function needToNotif (line 167) | func needToNotif(userList map[string]struct{}, user string) bool { FILE: notification-server/logger.go constant timestampFormat (line 11) | timestampFormat = "[2006-01-02 15:04:05] " type LogFormatter (line 14) | type LogFormatter struct method Format (line 16) | func (f *LogFormatter) Format(entry *log.Entry) ([]byte, error) { FILE: notification-server/server.go function init (line 36) | func init() { function loadNotifConfig (line 48) | func loadNotifConfig() { function loadCcnetDB (line 76) | func loadCcnetDB() { type DBOption (line 100) | type DBOption struct function loadDBOptionFromEnv (line 111) | func loadDBOptionFromEnv() (*DBOption, error) { function main (line 159) | func main() { function loadJwtPrivateKey (line 223) | func loadJwtPrivateKey() error { function handleUser1Signal (line 232) | func handleUser1Signal() { function logRotate (line 242) | func logRotate() { function newHTTPRouter (line 259) | func newHTTPRouter() *mux.Router { function messageCB (line 269) | func messageCB(rsp http.ResponseWriter, r *http.Request) *appError { function eventCB (line 289) | func eventCB(rsp http.ResponseWriter, r *http.Request) *appError { function getAuthorizationToken (line 320) | func getAuthorizationToken(h http.Header) string { function checkAuthToken (line 329) | func checkAuthToken(tokenString string) bool { function newUpgrader (line 350) | func newUpgrader() *websocket.Upgrader { function pingCB (line 362) | func pingCB(rsp http.ResponseWriter, r *http.Request) *appError { type appError (line 367) | type appError struct type appHandler (line 373) | type appHandler method ServeHTTP (line 375) | func (fn appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { FILE: notification-server/subscriptions.go constant chanBufSize (line 13) | chanBufSize = 10 type Client (line 32) | type Client struct type Subscribers (line 57) | type Subscribers struct function Init (line 64) | func Init() { function NewClient (line 70) | func NewClient(conn *websocket.Conn, addr string) *Client { function RegisterClient (line 84) | func RegisterClient(client *Client) { function UnregisterClient (line 91) | func UnregisterClient(client *Client) { function newSubscribers (line 97) | func newSubscribers(client *Client) *Subscribers { FILE: python/seafile/__init__.py class TaskType (line 3) | class TaskType(object): FILE: python/seafile/rpcclient.py class SeafServerThreadedRpcClient (line 3) | class SeafServerThreadedRpcClient(NamedPipeClient): method __init__ (line 5) | def __init__(self, pipe_path): method seafile_create_repo (line 10) | def seafile_create_repo(name, desc, owner_email, passwd, enc_version, ... method seafile_create_enc_repo (line 15) | def seafile_create_enc_repo(repo_id, name, desc, owner_email, magic, r... method seafile_get_repos_by_id_prefix (line 20) | def seafile_get_repos_by_id_prefix(id_prefix, start, limit): method seafile_get_repo (line 25) | def seafile_get_repo(repo_id): method seafile_destroy_repo (line 30) | def seafile_destroy_repo(repo_id): method seafile_get_repo_list (line 35) | def seafile_get_repo_list(start, limit, order_by, ret_virt_repo): method seafile_count_repos (line 40) | def seafile_count_repos(): method seafile_edit_repo (line 45) | def seafile_edit_repo(repo_id, name, description, user): method seafile_is_repo_owner (line 50) | def seafile_is_repo_owner(user_id, repo_id): method seafile_set_repo_owner (line 55) | def seafile_set_repo_owner(email, repo_id): method seafile_get_repo_owner (line 60) | def seafile_get_repo_owner(repo_id): method seafile_get_orphan_repo_list (line 65) | def seafile_get_orphan_repo_list(): method seafile_list_owned_repos (line 70) | def seafile_list_owned_repos(user_id, ret_corrupted, start, limit): method seafile_search_repos_by_name (line 75) | def seafile_search_repos_by_name(name): method seafile_server_repo_size (line 80) | def seafile_server_repo_size(repo_id): method seafile_repo_set_access_property (line 85) | def seafile_repo_set_access_property(repo_id, role): method seafile_repo_query_access_property (line 90) | def seafile_repo_query_access_property(repo_id): method seafile_revert_on_server (line 95) | def seafile_revert_on_server(repo_id, commit_id, user_name): method seafile_diff (line 100) | def seafile_diff(): method seafile_post_file (line 105) | def seafile_post_file(repo_id, tmp_file_path, parent_dir, filename, us... method seafile_post_dir (line 110) | def seafile_post_dir(repo_id, parent_dir, new_dir_name, user): method seafile_post_empty_file (line 115) | def seafile_post_empty_file(repo_id, parent_dir, filename, user): method seafile_put_file (line 120) | def seafile_put_file(repo_id, tmp_file_path, parent_dir, filename, use... method seafile_del_file (line 125) | def seafile_del_file(repo_id, parent_dir, filename, user): method seafile_batch_del_files (line 130) | def seafile_batch_del_files(repo_id, filepaths, user): method seafile_copy_file (line 135) | def seafile_copy_file(src_repo, src_dir, src_filename, dst_repo, dst_d... method seafile_move_file (line 140) | def seafile_move_file(src_repo, src_dir, src_filename, dst_repo, dst_d... method seafile_rename_file (line 145) | def seafile_rename_file(repo_id, parent_dir, oldname, newname, user): method seafile_is_valid_filename (line 150) | def seafile_is_valid_filename(repo_id, filename): method seafile_get_commit (line 155) | def seafile_get_commit(repo_id, version, commit_id): method seafile_list_file_blocks (line 160) | def seafile_list_file_blocks(repo_id, file_id, offset, limit): method seafile_list_dir (line 165) | def seafile_list_dir(repo_id, dir_id, offset, limit): method list_dir_with_perm (line 170) | def list_dir_with_perm(repo_id, dir_path, dir_id, user, offset, limit): method seafile_get_file_size (line 174) | def seafile_get_file_size(store_id, version, file_id): method seafile_get_dir_size (line 179) | def seafile_get_dir_size(store_id, version, dir_id): method seafile_list_dir_by_path (line 184) | def seafile_list_dir_by_path(repo_id, commit_id, path): method seafile_get_dir_id_by_commit_and_path (line 189) | def seafile_get_dir_id_by_commit_and_path(repo_id, commit_id, path): method seafile_get_file_id_by_path (line 194) | def seafile_get_file_id_by_path(repo_id, path): method seafile_get_dir_id_by_path (line 199) | def seafile_get_dir_id_by_path(repo_id, path): method seafile_get_file_id_by_commit_and_path (line 204) | def seafile_get_file_id_by_commit_and_path(repo_id, commit_id, path): method seafile_get_dirent_by_path (line 209) | def seafile_get_dirent_by_path(repo_id, commit_id, path): method seafile_list_file_revisions (line 214) | def seafile_list_file_revisions(repo_id, commit_id, path, limit): method seafile_calc_files_last_modified (line 219) | def seafile_calc_files_last_modified(repo_id, parent_dir, limit): method seafile_revert_file (line 224) | def seafile_revert_file(repo_id, commit_id, path, user): method seafile_check_repo_blocks_missing (line 229) | def seafile_check_repo_blocks_missing(repo_id, blklist): method seafile_revert_dir (line 234) | def seafile_revert_dir(repo_id, commit_id, path, user): method get_deleted (line 239) | def get_deleted(repo_id, show_days, path, scan_stat, limit): method seafile_add_share (line 244) | def seafile_add_share(repo_id, from_email, to_email, permission): method seafile_list_share_repos (line 249) | def seafile_list_share_repos(email, query_col, start, limit): method seafile_list_repo_shared_to (line 254) | def seafile_list_repo_shared_to(from_user, repo_id): method share_subdir_to_user (line 259) | def share_subdir_to_user(repo_id, path, owner, share_user, permission,... method unshare_subdir_for_user (line 263) | def unshare_subdir_for_user(repo_id, path, owner, share_user): method update_share_subdir_perm_for_user (line 267) | def update_share_subdir_perm_for_user(repo_id, path, owner, share_user... method get_shared_repo_by_path (line 271) | def get_shared_repo_by_path(repo_id, path, shared_to, is_org): method seafile_list_org_share_repos (line 275) | def seafile_list_org_share_repos(org_id, email, query_col, start, limit): method seafile_remove_share (line 280) | def seafile_remove_share(repo_id, from_email, to_email): method set_share_permission (line 285) | def set_share_permission(repo_id, from_email, to_email, permission): method seafile_group_share_repo (line 290) | def seafile_group_share_repo(repo_id, group_id, user_name, permisson): method seafile_group_unshare_repo (line 295) | def seafile_group_unshare_repo(repo_id, group_id, user_name): method seafile_get_shared_groups_by_repo (line 300) | def seafile_get_shared_groups_by_repo(repo_id): method seafile_list_repo_shared_group (line 305) | def seafile_list_repo_shared_group(from_user, repo_id): method get_group_shared_repo_by_path (line 310) | def get_group_shared_repo_by_path(repo_id, path, group_id, is_org): method get_group_repos_by_user (line 314) | def get_group_repos_by_user (user): method get_org_group_repos_by_user (line 318) | def get_org_group_repos_by_user (user, org_id): method seafile_get_shared_users_for_subdir (line 322) | def seafile_get_shared_users_for_subdir(repo_id, path, from_user): method seafile_get_shared_groups_for_subdir (line 327) | def seafile_get_shared_groups_for_subdir(repo_id, path, from_user): method share_subdir_to_group (line 332) | def share_subdir_to_group(repo_id, path, owner, share_group, permissio... method unshare_subdir_for_group (line 336) | def unshare_subdir_for_group(repo_id, path, owner, share_group): method update_share_subdir_perm_for_group (line 340) | def update_share_subdir_perm_for_group(repo_id, path, owner, share_gro... method seafile_get_group_repoids (line 344) | def seafile_get_group_repoids(group_id): method seafile_get_repos_by_group (line 349) | def seafile_get_repos_by_group(group_id): method get_group_repos_by_owner (line 354) | def get_group_repos_by_owner(user_name): method get_group_repo_owner (line 358) | def get_group_repo_owner(repo_id): method seafile_remove_repo_group (line 362) | def seafile_remove_repo_group(group_id, user_name): method set_group_repo_permission (line 367) | def set_group_repo_permission(group_id, repo_id, permission): method seafile_branch_gets (line 372) | def seafile_branch_gets(repo_id): method seafile_get_commit_list (line 377) | def seafile_get_commit_list(repo_id, offset, limit): method seafile_set_repo_token (line 385) | def seafile_set_repo_token(repo_id, email, token): method seafile_get_repo_token_nonnull (line 390) | def seafile_get_repo_token_nonnull(repo_id, email): method seafile_generate_repo_token (line 400) | def seafile_generate_repo_token(repo_id, email): method seafile_delete_repo_token (line 405) | def seafile_delete_repo_token(repo_id, token, user): method seafile_list_repo_tokens (line 410) | def seafile_list_repo_tokens(repo_id): method seafile_list_repo_tokens_by_email (line 415) | def seafile_list_repo_tokens_by_email(email): method seafile_delete_repo_tokens_by_peer_id (line 420) | def seafile_delete_repo_tokens_by_peer_id(email, user_id): method delete_repo_tokens_by_email (line 425) | def delete_repo_tokens_by_email(email): method seafile_get_user_quota_usage (line 430) | def seafile_get_user_quota_usage(user_id): method seafile_get_user_share_usage (line 435) | def seafile_get_user_share_usage(user_id): method seafile_get_org_quota_usage (line 440) | def seafile_get_org_quota_usage(org_id): method seafile_get_org_user_quota_usage (line 445) | def seafile_get_org_user_quota_usage(org_id, user): method set_user_quota (line 450) | def set_user_quota(user, quota): method get_user_quota (line 454) | def get_user_quota(user): method set_org_quota (line 458) | def set_org_quota(org_id, quota): method get_org_quota (line 462) | def get_org_quota(org_id): method set_org_user_quota (line 466) | def set_org_user_quota(org_id, user, quota): method get_org_user_quota (line 470) | def get_org_user_quota(org_id, user): method check_quota (line 474) | def check_quota(repo_id, delta): method list_user_quota_usage (line 478) | def list_user_quota_usage(): method seafile_check_passwd (line 483) | def seafile_check_passwd(repo_id, magic): method seafile_set_passwd (line 488) | def seafile_set_passwd(repo_id, user, passwd): method seafile_unset_passwd (line 493) | def seafile_unset_passwd(repo_id, user): method check_permission (line 499) | def check_permission(repo_id, user): method check_permission_by_path (line 504) | def check_permission_by_path(repo_id, path, user): method seafile_create_org_repo (line 509) | def seafile_create_org_repo(name, desc, user, passwd, magic, random_ke... method seafile_get_org_id_by_repo_id (line 514) | def seafile_get_org_id_by_repo_id(repo_id): method seafile_get_org_repo_list (line 519) | def seafile_get_org_repo_list(org_id, start, limit): method seafile_remove_org_repo_by_org_id (line 524) | def seafile_remove_org_repo_by_org_id(org_id): method list_org_repos_by_owner (line 529) | def list_org_repos_by_owner(org_id, user): method get_org_repo_owner (line 533) | def get_org_repo_owner(repo_id): method add_org_group_repo (line 538) | def add_org_group_repo(repo_id, org_id, group_id, owner, permission): method del_org_group_repo (line 542) | def del_org_group_repo(repo_id, org_id, group_id): method get_org_group_repoids (line 546) | def get_org_group_repoids(org_id, group_id): method get_org_group_repo_owner (line 550) | def get_org_group_repo_owner(org_id, group_id, repo_id): method get_org_group_repos_by_owner (line 554) | def get_org_group_repos_by_owner(org_id, user): method get_org_groups_by_repo (line 558) | def get_org_groups_by_repo(org_id, repo_id): method set_org_group_repo_permission (line 562) | def set_org_group_repo_permission(org_id, group_id, repo_id, permission): method set_inner_pub_repo (line 567) | def set_inner_pub_repo(repo_id, permission): method unset_inner_pub_repo (line 571) | def unset_inner_pub_repo(repo_id): method list_inner_pub_repos (line 575) | def list_inner_pub_repos(): method list_inner_pub_repos_by_owner (line 579) | def list_inner_pub_repos_by_owner(user): method count_inner_pub_repos (line 583) | def count_inner_pub_repos(): method is_inner_pub_repo (line 587) | def is_inner_pub_repo(repo_id): method set_org_inner_pub_repo (line 592) | def set_org_inner_pub_repo(org_id, repo_id, permission): method unset_org_inner_pub_repo (line 596) | def unset_org_inner_pub_repo(org_id, repo_id): method list_org_inner_pub_repos (line 600) | def list_org_inner_pub_repos(org_id): method list_org_inner_pub_repos_by_owner (line 604) | def list_org_inner_pub_repos_by_owner(org_id, user): method set_repo_history_limit (line 608) | def set_repo_history_limit(repo_id, days): method get_repo_history_limit (line 612) | def get_repo_history_limit(repo_id): method set_repo_valid_since (line 616) | def set_repo_valid_since(repo_id, timestamp): method create_virtual_repo (line 621) | def create_virtual_repo(origin_repo_id, path, repo_name, repo_desc, ow... method get_virtual_repos_by_owner (line 625) | def get_virtual_repos_by_owner(owner): method get_virtual_repo (line 629) | def get_virtual_repo(origin_repo, path, owner): method get_system_default_repo_id (line 634) | def get_system_default_repo_id(): method seafile_change_repo_passwd (line 639) | def seafile_change_repo_passwd(repo_id, old_passwd, new_passwd, user): method seafile_upgrade_repo_pwd_hash_algorithm (line 645) | def seafile_upgrade_repo_pwd_hash_algorithm (repo_id, user, passwd, pw... method clean_up_repo_history (line 651) | def clean_up_repo_history(repo_id, keep_days): method get_trash_repo_list (line 656) | def get_trash_repo_list(start, limit): method del_repo_from_trash (line 660) | def del_repo_from_trash(repo_id): method restore_repo_from_trash (line 664) | def restore_repo_from_trash(repo_id): method get_trash_repos_by_owner (line 668) | def get_trash_repos_by_owner(owner): method empty_repo_trash (line 672) | def empty_repo_trash(): method empty_repo_trash_by_owner (line 676) | def empty_repo_trash_by_owner(owner): method empty_repo_trash_by_owner (line 680) | def empty_repo_trash_by_owner(owner): method generate_magic_and_random_key (line 684) | def generate_magic_and_random_key(enc_version, repo_id, password): method get_total_file_number (line 688) | def get_total_file_number(): method get_total_storage (line 692) | def get_total_storage(): method get_file_count_info_by_path (line 696) | def get_file_count_info_by_path(repo_id, path): method get_trash_repo_owner (line 700) | def get_trash_repo_owner(repo_id): method seafile_get_upload_tmp_file_offset (line 704) | def seafile_get_upload_tmp_file_offset(repo_id, file_path): method seafile_mkdir_with_parents (line 709) | def seafile_mkdir_with_parents (repo_id, parent_dir, relative_path, us... method get_server_config_int (line 714) | def get_server_config_int (group, key): method set_server_config_int (line 718) | def set_server_config_int (group, key, value): method get_server_config_int64 (line 722) | def get_server_config_int64 (group, key): method set_server_config_int64 (line 726) | def set_server_config_int64 (group, key, value): method get_server_config_string (line 730) | def get_server_config_string (group, key): method set_server_config_string (line 734) | def set_server_config_string (group, key, value): method get_server_config_boolean (line 738) | def get_server_config_boolean (group, key): method set_server_config_boolean (line 742) | def set_server_config_boolean (group, key, value): method repo_has_been_shared (line 746) | def repo_has_been_shared (repo_id, including_groups): method get_shared_users_by_repo (line 750) | def get_shared_users_by_repo (repo_id): method org_get_shared_users_by_repo (line 754) | def org_get_shared_users_by_repo (org_id, repo_id): method convert_repo_path (line 758) | def convert_repo_path(repo_id, path, user, is_org): method set_repo_status (line 763) | def set_repo_status(repo_id, status): method get_repo_status (line 767) | def get_repo_status(repo_id): method seafile_web_get_access_token (line 772) | def seafile_web_get_access_token(repo_id, obj_id, op, username, use_on... method seafile_web_query_access_token (line 777) | def seafile_web_query_access_token(token): method seafile_query_zip_progress (line 782) | def seafile_query_zip_progress(token): method cancel_zip_task (line 787) | def cancel_zip_task(token): method seafile_gc (line 792) | def seafile_gc(): method seafile_gc_get_progress (line 797) | def seafile_gc_get_progress(): method seafile_is_passwd_set (line 803) | def seafile_is_passwd_set(repo_id, user): method seafile_get_decrypt_key (line 808) | def seafile_get_decrypt_key(repo_id, user): method get_copy_task (line 815) | def get_copy_task(task_id): method cancel_copy_task (line 819) | def cancel_copy_task(task_id): method publish_event (line 824) | def publish_event(channel, content): method pop_event (line 828) | def pop_event(channel): method search_files (line 832) | def search_files(self, repo_id, search_str): method search_files_by_path (line 836) | def search_files_by_path(self, repo_id, path, search_str): method add_emailuser (line 841) | def add_emailuser(self, email, passwd, is_staff, is_active): method remove_emailuser (line 845) | def remove_emailuser(self, source, email): method validate_emailuser (line 849) | def validate_emailuser(self, email, passwd): method get_emailuser (line 853) | def get_emailuser(self, email): method get_emailuser_with_import (line 857) | def get_emailuser_with_import(self, email): method get_emailuser_by_id (line 861) | def get_emailuser_by_id(self, user_id): method get_emailusers (line 865) | def get_emailusers(self, source, start, limit, status): method search_emailusers (line 869) | def search_emailusers(self, source, email_patt, start, limit): method count_emailusers (line 873) | def count_emailusers(self, source): method count_inactive_emailusers (line 877) | def count_inactive_emailusers(self, source): method filter_emailusers_by_emails (line 881) | def filter_emailusers_by_emails(self): method update_emailuser (line 885) | def update_emailuser(self, source, user_id, password, is_staff, is_act... method update_role_emailuser (line 889) | def update_role_emailuser(self, email, role): method get_superusers (line 893) | def get_superusers(self): method get_emailusers_in_list (line 897) | def get_emailusers_in_list(self, source, user_list): method update_emailuser_id (line 901) | def update_emailuser_id (self, old_email, new_email): method create_group (line 906) | def create_group(self, group_name, user_name, gtype, parent_group_id): method create_org_group (line 910) | def create_org_group(self, org_id, group_name, user_name, parent_group... method remove_group (line 914) | def remove_group(self, group_id): method group_add_member (line 918) | def group_add_member(self, group_id, user_name, member_name): method group_remove_member (line 922) | def group_remove_member(self, group_id, user_name, member_name): method group_set_admin (line 926) | def group_set_admin(self, group_id, member_name): method group_unset_admin (line 930) | def group_unset_admin(self, group_id, member_name): method set_group_name (line 934) | def set_group_name(self, group_id, group_name): method quit_group (line 938) | def quit_group(self, group_id, user_name): method get_groups (line 942) | def get_groups(self, user_name, return_ancestors): method list_all_departments (line 946) | def list_all_departments(self): method get_all_groups (line 950) | def get_all_groups(self, start, limit, source): method get_ancestor_groups (line 954) | def get_ancestor_groups(self, group_id): method get_top_groups (line 958) | def get_top_groups(self, including_org): method get_child_groups (line 962) | def get_child_groups(self, group_id): method get_descendants_groups (line 966) | def get_descendants_groups(self, group_id): method get_group (line 970) | def get_group(self, group_id): method get_group_members (line 974) | def get_group_members(self, group_id): method get_members_with_prefix (line 978) | def get_members_with_prefix(self, group_id, prefix): method check_group_staff (line 982) | def check_group_staff(self, group_id, username, in_structure): method remove_group_user (line 986) | def remove_group_user(self, username): method is_group_user (line 990) | def is_group_user(self, group_id, user, in_structure): method set_group_creator (line 994) | def set_group_creator(self, group_id, user_name): method search_groups (line 998) | def search_groups(self, group_patt, start, limit): method search_group_members (line 1002) | def search_group_members(self, group_id, pattern): method get_groups_members (line 1006) | def get_groups_members(self, group_ids): method create_org (line 1010) | def create_org(self, org_name, url_prefix, creator): method remove_org (line 1014) | def remove_org(self, org_id): method get_all_orgs (line 1018) | def get_all_orgs(self, start, limit): method count_orgs (line 1022) | def count_orgs(self): method get_org_by_url_prefix (line 1026) | def get_org_by_url_prefix(self, url_prefix): method get_org_by_id (line 1030) | def get_org_by_id(self, org_id): method add_org_user (line 1034) | def add_org_user(self, org_id, email, is_staff): method remove_org_user (line 1038) | def remove_org_user(self, org_id, email): method get_orgs_by_user (line 1042) | def get_orgs_by_user(self, email): method get_org_emailusers (line 1046) | def get_org_emailusers(self, url_prefix, start, limit): method add_org_group (line 1050) | def add_org_group(self, org_id, group_id): method remove_org_group (line 1054) | def remove_org_group(self, org_id, group_id): method is_org_group (line 1058) | def is_org_group(self, group_id): method get_org_id_by_group (line 1062) | def get_org_id_by_group(self, group_id): method get_org_groups (line 1066) | def get_org_groups(self, org_id, start, limit): method get_org_groups_by_user (line 1070) | def get_org_groups_by_user (self, user, org_id): method get_org_top_groups (line 1074) | def get_org_top_groups(self, org_id): method org_user_exists (line 1078) | def org_user_exists(self, org_id, email): method is_org_staff (line 1082) | def is_org_staff(self, org_id, user): method set_org_staff (line 1086) | def set_org_staff(self, org_id, user): method unset_org_staff (line 1090) | def unset_org_staff(self, org_id, user): method set_org_name (line 1094) | def set_org_name(self, org_id, org_name): method get_primary_id (line 1098) | def get_primary_id(self, email): FILE: python/seaserv/api.py class SeafileAPI (line 19) | class SeafileAPI(object): method __init__ (line 21) | def __init__(self): method get_fileserver_access_token (line 26) | def get_fileserver_access_token(self, repo_id, obj_id, op, username, u... method query_fileserver_access_token (line 39) | def query_fileserver_access_token(self, token): method query_zip_progress (line 48) | def query_zip_progress(self, token): method cancel_zip_task (line 55) | def cancel_zip_task(self, token): method is_password_set (line 60) | def is_password_set(self, repo_id, username): method get_decrypt_key (line 66) | def get_decrypt_key(self, repo_id, username): method change_repo_passwd (line 72) | def change_repo_passwd(self, repo_id, old_passwd, new_passwd, user): method upgrade_repo_pwd_hash_algorithm (line 76) | def upgrade_repo_pwd_hash_algorithm (self, repo_id, user, passwd, pwd_... method check_passwd (line 79) | def check_passwd(self, repo_id, magic): method set_passwd (line 82) | def set_passwd(self, repo_id, user, passwd): method unset_passwd (line 85) | def unset_passwd(self, repo_id, user): method generate_magic_and_random_key (line 88) | def generate_magic_and_random_key(self, enc_version, repo_id, password): method create_repo (line 93) | def create_repo(self, name, desc, username, passwd=None, enc_version=2... method create_enc_repo (line 96) | def create_enc_repo(self, repo_id, name, desc, username, magic, random... method get_repos_by_id_prefix (line 99) | def get_repos_by_id_prefix(self, id_prefix, start=-1, limit=-1): method get_repo (line 105) | def get_repo(self, repo_id): method remove_repo (line 111) | def remove_repo(self, repo_id): method get_repo_list (line 114) | def get_repo_list(self, start, limit, order_by=None, ret_virt_repo=Fal... method count_repos (line 120) | def count_repos(self): method edit_repo (line 123) | def edit_repo(self, repo_id, name, description, username): method is_repo_owner (line 126) | def is_repo_owner(self, username, repo_id): method set_repo_owner (line 132) | def set_repo_owner(self, email, repo_id): method get_repo_owner (line 135) | def get_repo_owner(self, repo_id): method get_owned_repo_list (line 141) | def get_owned_repo_list(self, username, ret_corrupted=False, start=-1,... method search_repos_by_name (line 149) | def search_repos_by_name(self, name): method get_orphan_repo_list (line 152) | def get_orphan_repo_list(self): method get_repo_size (line 155) | def get_repo_size(self, repo_id): method revert_repo (line 158) | def revert_repo(self, repo_id, commit_id, username): method diff_commits (line 161) | def diff_commits(self, repo_id, old_commit, new_commit, fold_dir_diff ... method get_commit_list (line 167) | def get_commit_list(self, repo_id, offset, limit): method get_commit (line 173) | def get_commit(self, repo_id, repo_version, cmt_id): method get_system_default_repo_id (line 181) | def get_system_default_repo_id (self): method get_org_id_by_repo_id (line 184) | def get_org_id_by_repo_id (self, repo_id): method set_repo_status (line 187) | def set_repo_status (self, repo_id, status): method get_repo_status (line 190) | def get_repo_status (self, repo_id): method is_valid_filename (line 195) | def is_valid_filename(self, repo_id, filename): method get_file_size (line 201) | def get_file_size(self, store_id, version, file_id): method get_dir_size (line 204) | def get_dir_size(self, store_id, version, dir_id): method get_file_id_by_path (line 211) | def get_file_id_by_path(self, repo_id, path): method get_file_id_by_commit_and_path (line 217) | def get_file_id_by_commit_and_path(self, repo_id, commit_id, path): method get_dirent_by_path (line 222) | def get_dirent_by_path(self, repo_id, path): method list_file_by_file_id (line 228) | def list_file_by_file_id(self, repo_id, file_id, offset=-1, limit=-1): method list_blocks_by_file_id (line 232) | def list_blocks_by_file_id(self, repo_id, file_id, offset=-1, limit=-1): method get_dir_id_by_path (line 239) | def get_dir_id_by_path(self, repo_id, path): method list_dir_by_dir_id (line 242) | def list_dir_by_dir_id(self, repo_id, dir_id, offset=-1, limit=-1): method list_dir_by_path (line 250) | def list_dir_by_path(self, repo_id, path, offset=-1, limit=-1): method list_dir_by_commit_and_path (line 256) | def list_dir_by_commit_and_path(self, repo_id, method get_dir_id_by_commit_and_path (line 263) | def get_dir_id_by_commit_and_path(self, repo_id, commit_id, path): method list_dir_with_perm (line 266) | def list_dir_with_perm(self, repo_id, dir_path, dir_id, user, offset=-... method mkdir_with_parents (line 269) | def mkdir_with_parents (self, repo_id, parent_dir, relative_path, user... method get_file_count_info_by_path (line 272) | def get_file_count_info_by_path(self, repo_id, path): method get_total_storage (line 275) | def get_total_storage (self): method get_total_file_number (line 278) | def get_total_file_number (self): method post_file (line 283) | def post_file(self, repo_id, tmp_file_path, parent_dir, filename, user... method post_empty_file (line 288) | def post_empty_file(self, repo_id, parent_dir, filename, username): method put_file (line 292) | def put_file(self, repo_id, tmp_file_path, parent_dir, filename, method del_file (line 304) | def del_file(self, repo_id, parent_dir, filename, username): method batch_del_files (line 307) | def batch_del_files(self, repo_id, filepaths, username): method copy_file (line 315) | def copy_file(self, src_repo, src_dir, src_filename, dst_repo, method move_file (line 321) | def move_file(self, src_repo, src_dir, src_filename, dst_repo, dst_dir, method get_copy_task (line 327) | def get_copy_task(self, task_id): method cancel_copy_task (line 330) | def cancel_copy_task(self, task_id): method rename_file (line 333) | def rename_file(self, repo_id, parent_dir, oldname, newname, username): method post_dir (line 337) | def post_dir(self, repo_id, parent_dir, dirname, username): method revert_file (line 341) | def revert_file(self, repo_id, commit_id, path, username): method revert_dir (line 344) | def revert_dir(self, repo_id, commit_id, path, username): method get_deleted (line 347) | def get_deleted(self, repo_id, show_days, path='/', scan_stat=None, li... method get_file_revisions (line 367) | def get_file_revisions(self, repo_id, commit_id, path, limit): method get_files_last_modified (line 386) | def get_files_last_modified(self, repo_id, parent_dir, limit): method get_repo_history_limit (line 394) | def get_repo_history_limit(self, repo_id): method set_repo_history_limit (line 400) | def set_repo_history_limit(self, repo_id, days): method set_repo_valid_since (line 406) | def set_repo_valid_since(self, repo_id, timestamp): method check_repo_blocks_missing (line 409) | def check_repo_blocks_missing(self, repo_id, blklist): method get_upload_tmp_file_offset (line 412) | def get_upload_tmp_file_offset (self, repo_id, file_path): method check_file_lock (line 416) | def check_file_lock(self, repo_id, path, user): method share_repo (line 423) | def share_repo(self, repo_id, from_username, to_username, permission): method remove_share (line 427) | def remove_share(self, repo_id, from_username, to_username): method set_share_permission (line 431) | def set_share_permission(self, repo_id, from_username, to_username, pe... method share_subdir_to_user (line 435) | def share_subdir_to_user(self, repo_id, path, owner, share_user, permi... method unshare_subdir_for_user (line 439) | def unshare_subdir_for_user(self, repo_id, path, owner, share_user): method update_share_subdir_perm_for_user (line 443) | def update_share_subdir_perm_for_user(self, repo_id, path, owner, method get_shared_repo_by_path (line 448) | def get_shared_repo_by_path(self, repo_id, path, shared_to, is_org=Fal... method get_share_out_repo_list (line 455) | def get_share_out_repo_list(self, username, start, limit): method get_share_in_repo_list (line 463) | def get_share_in_repo_list(self, username, start, limit): method list_repo_shared_to (line 470) | def list_repo_shared_to(self, from_user, repo_id): method repo_has_been_shared (line 477) | def repo_has_been_shared(self, repo_id, including_groups=False): method group_share_repo (line 481) | def group_share_repo(self, repo_id, group_id, username, permission): method set_group_repo (line 486) | def set_group_repo(self, repo_id, group_id, username, permission): method group_unshare_repo (line 490) | def group_unshare_repo(self, repo_id, group_id, username): method unset_group_repo (line 494) | def unset_group_repo(self, repo_id, group_id, username): method get_shared_group_ids_by_repo (line 497) | def get_shared_group_ids_by_repo(self, repo_id): method list_repo_shared_group (line 510) | def list_repo_shared_group(self, from_user, repo_id): method get_group_shared_repo_by_path (line 514) | def get_group_shared_repo_by_path (self, repo_id, path, group_id, is_o... method get_group_repos_by_user (line 521) | def get_group_repos_by_user (self, user): method get_org_group_repos_by_user (line 527) | def get_org_group_repos_by_user (self, user, org_id): method list_repo_shared_group_by_user (line 530) | def list_repo_shared_group_by_user(self, from_user, repo_id): method share_subdir_to_group (line 536) | def share_subdir_to_group(self, repo_id, path, owner, share_group, per... method unshare_subdir_for_group (line 540) | def unshare_subdir_for_group(self, repo_id, path, owner, share_group): method update_share_subdir_perm_for_group (line 544) | def update_share_subdir_perm_for_group(self, repo_id, path, owner, method get_group_repoids (line 549) | def get_group_repoids(self, group_id): method get_group_repo_list (line 563) | def get_group_repo_list(self, group_id): method get_repos_by_group (line 573) | def get_repos_by_group(self, group_id): method get_group_repos_by_owner (line 579) | def get_group_repos_by_owner(self, username): method remove_group_repos_by_owner (line 586) | def remove_group_repos_by_owner(self, group_id, username): method remove_group_repos (line 592) | def remove_group_repos(self, group_id): method set_group_repo_permission (line 599) | def set_group_repo_permission(self, group_id, repo_id, permission): method get_shared_users_for_subdir (line 603) | def get_shared_users_for_subdir(self, repo_id, path, from_user): method get_shared_groups_for_subdir (line 610) | def get_shared_groups_for_subdir(self, repo_id, path, from_user): method get_shared_users_by_repo (line 617) | def get_shared_users_by_repo(self, repo_id): method add_inner_pub_repo (line 645) | def add_inner_pub_repo(self, repo_id, permission): method remove_inner_pub_repo (line 648) | def remove_inner_pub_repo(self, repo_id): method get_inner_pub_repo_list (line 651) | def get_inner_pub_repo_list(self): method list_inner_pub_repos_by_owner (line 657) | def list_inner_pub_repos_by_owner(self, repo_owner): method count_inner_pub_repos (line 663) | def count_inner_pub_repos(self): method is_inner_pub_repo (line 666) | def is_inner_pub_repo(self, repo_id): method check_permission (line 670) | def check_permission(self, repo_id, user): method check_permission_by_path (line 678) | def check_permission_by_path(self, repo_id, path, user): method is_repo_syncable (line 687) | def is_repo_syncable(self, repo_id, user, repo_perm): method is_dir_downloadable (line 693) | def is_dir_downloadable(self, repo_id, dir_path, user, repo_perm): method generate_repo_token (line 703) | def generate_repo_token(self, repo_id, username): method delete_repo_token (line 708) | def delete_repo_token(self, repo_id, token, user): method list_repo_tokens (line 711) | def list_repo_tokens(self, repo_id): method list_repo_tokens_by_email (line 717) | def list_repo_tokens_by_email(self, username): method delete_repo_tokens_by_peer_id (line 720) | def delete_repo_tokens_by_peer_id(self, email, peer_id): method delete_repo_tokens_by_email (line 723) | def delete_repo_tokens_by_email(self, email): method get_user_self_usage (line 727) | def get_user_self_usage(self, username): method get_user_share_usage (line 731) | def get_user_share_usage(self, username): method get_user_quota (line 735) | def get_user_quota(self, username): method set_user_quota (line 741) | def set_user_quota(self, username, quota): method get_user_share_quota (line 744) | def get_user_share_quota(self, username): method set_user_share_quota (line 747) | def set_user_share_quota(self, username, quota): method check_quota (line 750) | def check_quota(self, repo_id, delta=0): method list_user_quota_usage (line 753) | def list_user_quota_usage(self): method create_virtual_repo (line 757) | def create_virtual_repo(self, origin_repo_id, path, repo_name, repo_de... method get_virtual_repos_by_owner (line 765) | def get_virtual_repos_by_owner(self, owner): method get_virtual_repo (line 768) | def get_virtual_repo(self, origin_repo, path, owner): method clean_up_repo_history (line 773) | def clean_up_repo_history(self, repo_id, keep_days): method get_trash_repo_list (line 777) | def get_trash_repo_list(self, start, limit): method del_repo_from_trash (line 780) | def del_repo_from_trash(self, repo_id): method restore_repo_from_trash (line 783) | def restore_repo_from_trash(self, repo_id): method get_trash_repos_by_owner (line 786) | def get_trash_repos_by_owner(self, owner): method get_trash_repo_owner (line 789) | def get_trash_repo_owner (self, repo_id): method empty_repo_trash (line 792) | def empty_repo_trash(self): method empty_repo_trash_by_owner (line 795) | def empty_repo_trash_by_owner(self, owner): method get_server_config_int (line 799) | def get_server_config_int (self, group, key): method set_server_config_int (line 802) | def set_server_config_int (self, group, key, value): method get_server_config_int64 (line 805) | def get_server_config_int64 (self, group, key): method set_server_config_int64 (line 808) | def set_server_config_int64 (self, group, key, value): method get_server_config_string (line 811) | def get_server_config_string (self, group, key): method set_server_config_string (line 814) | def set_server_config_string (self, group, key, value): method get_server_config_boolean (line 817) | def get_server_config_boolean (self, group, key): method set_server_config_boolean (line 820) | def set_server_config_boolean (self, group, key, value): method del_org_group_repo (line 824) | def del_org_group_repo(self, repo_id, org_id, group_id): method org_get_shared_users_by_repo (line 827) | def org_get_shared_users_by_repo(self, org_id, repo_id): method list_org_inner_pub_repos (line 854) | def list_org_inner_pub_repos(self, org_id): method convert_repo_path (line 857) | def convert_repo_path(self, repo_id, path, user, is_org=False): method publish_event (line 860) | def publish_event(self, channel, content): method pop_event (line 863) | def pop_event(self, channel): method search_files (line 866) | def search_files(self, repo_id, search_str): method search_files_by_path (line 869) | def search_files_by_path (self, repo_id, path, search_str): class CcnetAPI (line 874) | class CcnetAPI(object): method __init__ (line 876) | def __init__(self): method add_emailuser (line 880) | def add_emailuser(self, email, passwd, is_staff, is_active): method remove_emailuser (line 883) | def remove_emailuser(self, source, email): method validate_emailuser (line 891) | def validate_emailuser(self, email, passwd): method get_emailuser (line 898) | def get_emailuser(self, email): method get_emailuser_with_import (line 909) | def get_emailuser_with_import(self, email): method get_emailuser_by_id (line 916) | def get_emailuser_by_id(self, user_id): method get_emailusers (line 922) | def get_emailusers(self, source, start, limit, is_active=None): method search_emailusers (line 943) | def search_emailusers(self, source, email_patt, start, limit): method search_groups (line 951) | def search_groups(self, group_patt, start, limit): method search_group_members (line 957) | def search_group_members(self, group_id, pattern): method get_top_groups (line 960) | def get_top_groups(self, including_org=False): method get_child_groups (line 963) | def get_child_groups(self, group_id): method get_descendants_groups (line 966) | def get_descendants_groups(self, group_id): method get_ancestor_groups (line 969) | def get_ancestor_groups(self, group_id): method count_emailusers (line 972) | def count_emailusers(self, source): method count_inactive_emailusers (line 979) | def count_inactive_emailusers(self, source): method update_emailuser (line 986) | def update_emailuser(self, source, user_id, password, is_staff, is_act... method update_role_emailuser (line 997) | def update_role_emailuser(self, email, role, is_manual_set=True): method get_superusers (line 1000) | def get_superusers(self): method get_emailusers_in_list (line 1006) | def get_emailusers_in_list(self, source, user_list): method update_emailuser_id (line 1013) | def update_emailuser_id (self, old_email, new_email): method create_group (line 1017) | def create_group(self, group_name, user_name, gtype=None, parent_group... method create_org_group (line 1023) | def create_org_group(self, org_id, group_name, user_name, parent_group... method remove_group (line 1026) | def remove_group(self, group_id): method group_add_member (line 1032) | def group_add_member(self, group_id, user_name, member_name): method group_remove_member (line 1038) | def group_remove_member(self, group_id, user_name, member_name): method group_set_admin (line 1044) | def group_set_admin(self, group_id, member_name): method group_unset_admin (line 1050) | def group_unset_admin(self, group_id, member_name): method set_group_name (line 1056) | def set_group_name(self, group_id, group_name): method quit_group (line 1059) | def quit_group(self, group_id, user_name): method get_groups (line 1062) | def get_groups(self, user_name, return_ancestors=False): method get_all_groups (line 1069) | def get_all_groups(self, start, limit, source=None): method get_group (line 1075) | def get_group(self, group_id): method get_group_members (line 1078) | def get_group_members(self, group_id, start=-1, limit=-1): method get_members_with_prefix (line 1084) | def get_members_with_prefix (self, group_id, prefix=None): method check_group_staff (line 1090) | def check_group_staff(self, group_id, username, in_structure=False): method remove_group_user (line 1096) | def remove_group_user(self, username): method is_group_user (line 1099) | def is_group_user(self, group_id, user, in_structure=True): method set_group_creator (line 1106) | def set_group_creator(self, group_id, user_name): method create_org (line 1110) | def create_org(self, org_name, url_prefix, creator): method remove_org (line 1113) | def remove_org(self, org_id): method get_all_orgs (line 1116) | def get_all_orgs(self, start, limit): method count_orgs (line 1122) | def count_orgs(self): method get_org_by_url_prefix (line 1125) | def get_org_by_url_prefix(self, url_prefix): method get_org_by_id (line 1131) | def get_org_by_id(self, org_id): method add_org_user (line 1134) | def add_org_user(self, org_id, email, is_staff): method remove_org_user (line 1137) | def remove_org_user(self, org_id, email): method get_orgs_by_user (line 1140) | def get_orgs_by_user(self, email): method get_org_emailusers (line 1143) | def get_org_emailusers(self, url_prefix, start, limit): method add_org_group (line 1149) | def add_org_group(self, org_id, group_id): method remove_org_group (line 1152) | def remove_org_group(self, org_id, group_id): method is_org_group (line 1155) | def is_org_group(self, group_id): method get_org_id_by_group (line 1161) | def get_org_id_by_group(self, group_id): method get_org_groups (line 1164) | def get_org_groups(self, org_id, start, limit): method get_org_top_groups (line 1170) | def get_org_top_groups(self, org_id): method org_user_exists (line 1173) | def org_user_exists(self, org_id, email): method is_org_staff (line 1179) | def is_org_staff(self, org_id, user): method set_org_staff (line 1185) | def set_org_staff(self, org_id, user): method unset_org_staff (line 1188) | def unset_org_staff(self, org_id, user): method set_org_name (line 1191) | def set_org_name(self, org_id, org_name): method get_primary_id (line 1194) | def get_primary_id (self, email): method get_groups_members (line 1197) | def get_groups_members(self, group_ids): FILE: python/seaserv/service.py function _load_path_from_env (line 20) | def _load_path_from_env(key, check=True): function _load_data_dir (line 32) | def _load_data_dir(): function get_fileserver_option (line 55) | def get_fileserver_option(key, default): function get_emailusers (line 100) | def get_emailusers(source, start, limit, is_active=None): function count_emailusers (line 110) | def count_emailusers(): function get_emailuser_with_import (line 117) | def get_emailuser_with_import(email): function get_group (line 121) | def get_group(group_id): function get_personal_groups (line 129) | def get_personal_groups(start, limit): function get_personal_groups_by_user (line 136) | def get_personal_groups_by_user(email): function is_group_user (line 145) | def is_group_user(group_id, user): function check_group_staff (line 152) | def check_group_staff(group_id, username): function remove_group_user (line 163) | def remove_group_user(user): function get_group_members (line 169) | def get_group_members(group_id, start=-1, limit=-1): function is_org_group (line 178) | def is_org_group(group_id): function get_org_id_by_group (line 185) | def get_org_id_by_group(group_id): function get_org_groups (line 192) | def get_org_groups(org_id, start, limit): function get_org_groups_by_user (line 199) | def get_org_groups_by_user(org_id, user): function create_org (line 211) | def create_org(org_name, url_prefix, username): function get_org_by_url_prefix (line 214) | def get_org_by_url_prefix(url_prefix): function get_org_by_id (line 222) | def get_org_by_id(org_id): function add_org_user (line 231) | def add_org_user(org_id, email, is_staff): function remove_org_user (line 237) | def remove_org_user(org_id, email): function org_user_exists (line 243) | def org_user_exists(org_id, user): function get_org_users_by_url_prefix (line 250) | def get_org_users_by_url_prefix(url_prefix, start, limit): function get_orgs_by_user (line 260) | def get_orgs_by_user(user): function is_org_staff (line 268) | def is_org_staff(org_id, user): function get_user_current_org (line 278) | def get_user_current_org(user, url_prefix): function send_command (line 285) | def send_command(command): function send_message (line 292) | def send_message(msg_type, content): function get_binding_peerids (line 297) | def get_binding_peerids(email): function get_repos (line 317) | def get_repos(): function get_repo (line 324) | def get_repo(repo_id): function edit_repo (line 327) | def edit_repo(repo_id, name, desc, user): function create_repo (line 334) | def create_repo(name, desc, user, passwd): function remove_repo (line 345) | def remove_repo(repo_id): function list_personal_repos_by_owner (line 356) | def list_personal_repos_by_owner(owner): function get_repo_token_nonnull (line 366) | def get_repo_token_nonnull(repo_id, username): function get_repo_owner (line 369) | def get_repo_owner(repo_id): function is_repo_owner (line 379) | def is_repo_owner(user, repo_id): function server_repo_size (line 389) | def server_repo_size(repo_id): function create_org_repo (line 397) | def create_org_repo(repo_name, repo_desc, user, passwd, org_id): function is_org_repo (line 409) | def is_org_repo(repo_id): function list_org_repos_by_owner (line 413) | def list_org_repos_by_owner(org_id, user): function get_org_repos (line 420) | def get_org_repos(org_id, start, limit): function get_org_id_by_repo_id (line 435) | def get_org_id_by_repo_id(repo_id): function is_org_repo_owner (line 445) | def is_org_repo_owner(org_id, repo_id, user): function get_org_repo_owner (line 456) | def get_org_repo_owner(repo_id): function get_commit (line 467) | def get_commit(repo_id, repo_version, cmt_id): function get_commits (line 475) | def get_commits(repo_id, offset, limit): function get_branches (line 484) | def get_branches(repo_id): function get_group_repos_by_owner (line 489) | def get_group_repos_by_owner(user): function get_shared_groups_by_repo (line 499) | def get_shared_groups_by_repo(repo_id): function conv_repoids_to_list (line 516) | def conv_repoids_to_list(repo_ids): function get_group_repoids (line 530) | def get_group_repoids(group_id): function get_group_repos (line 539) | def get_group_repos(group_id, user): function del_org_group_repo (line 563) | def del_org_group_repo(repo_id, org_id, group_id): function get_org_group_repoids (line 566) | def get_org_group_repoids(org_id, group_id): function get_org_group_repos (line 574) | def get_org_group_repos(org_id, group_id, user): function get_org_groups_by_repo (line 601) | def get_org_groups_by_repo(org_id, repo_id): function list_inner_pub_repos_by_owner (line 620) | def list_inner_pub_repos_by_owner(user): function list_inner_pub_repos (line 630) | def list_inner_pub_repos(username): function count_inner_pub_repos (line 645) | def count_inner_pub_repos(): function is_inner_pub_repo (line 652) | def is_inner_pub_repo(repo_id): function unset_inner_pub_repo (line 664) | def unset_inner_pub_repo(repo_id): function list_org_inner_pub_repos (line 668) | def list_org_inner_pub_repos(org_id, username, start=None, limit=None): function check_permission (line 685) | def check_permission(repo_id, user): function is_personal_repo (line 696) | def is_personal_repo(repo_id): function list_share_repos (line 707) | def list_share_repos(user, share_type, start, limit): function remove_share (line 715) | def remove_share(repo_id, from_user, to_user): function unshare_group_repo (line 718) | def unshare_group_repo(repo_id, group_id, from_user): function list_personal_shared_repos (line 722) | def list_personal_shared_repos(user, user_type, start, limit): function list_org_shared_repos (line 735) | def list_org_shared_repos(org_id, user, user_type, start, limit): function list_dir_by_path (line 755) | def list_dir_by_path(repo_id, commit_id, path): function post_empty_file (line 763) | def post_empty_file(repo_id, parent_dir, file_name, user): function del_file (line 775) | def del_file(repo_id, parent_dir, file_name, user): function is_valid_filename (line 788) | def is_valid_filename(file_or_dir): function get_file_size (line 799) | def get_file_size(store_id, version, file_id): function get_file_id_by_path (line 806) | def get_file_id_by_path(repo_id, path): function get_related_users_by_repo (line 813) | def get_related_users_by_repo(repo_id): function get_related_users_by_org_repo (line 842) | def get_related_users_by_org_repo(org_id, repo_id): function check_quota (line 872) | def check_quota(repo_id, delta=0): function get_user_quota (line 880) | def get_user_quota(user): function get_user_quota_usage (line 888) | def get_user_quota_usage(user): function get_user_share_usage (line 896) | def get_user_share_usage(user): function web_get_access_token (line 905) | def web_get_access_token(repo_id, obj_id, op, username, use_onetime=1): function unset_repo_passwd (line 913) | def unset_repo_passwd(repo_id, user): function is_passwd_set (line 926) | def is_passwd_set(repo_id, user): function get_repo_history_limit (line 934) | def get_repo_history_limit(repo_id): function set_repo_history_limit (line 941) | def set_repo_history_limit(repo_id, days): FILE: scripts/sql/mysql/ccnet.sql type Binding (line 1) | CREATE TABLE IF NOT EXISTS Binding ( type EmailUser (line 9) | CREATE TABLE IF NOT EXISTS EmailUser ( type `Group` (line 24) | CREATE TABLE IF NOT EXISTS `Group` ( type GroupDNPair (line 33) | CREATE TABLE IF NOT EXISTS GroupDNPair ( type GroupStructure (line 39) | CREATE TABLE IF NOT EXISTS GroupStructure ( type `GroupUser` (line 46) | CREATE TABLE IF NOT EXISTS `GroupUser` ( type LDAPConfig (line 55) | CREATE TABLE IF NOT EXISTS LDAPConfig ( type LDAPUsers (line 63) | CREATE TABLE IF NOT EXISTS LDAPUsers ( type OrgGroup (line 75) | CREATE TABLE IF NOT EXISTS OrgGroup ( type OrgUser (line 83) | CREATE TABLE IF NOT EXISTS OrgUser ( type Organization (line 92) | CREATE TABLE IF NOT EXISTS Organization ( type UserRole (line 101) | CREATE TABLE IF NOT EXISTS UserRole ( type OrgFileExtWhiteList (line 109) | CREATE TABLE IF NOT EXISTS OrgFileExtWhiteList ( FILE: scripts/sql/mysql/seafile.sql type Branch (line 1) | CREATE TABLE IF NOT EXISTS Branch ( type FileLockTimestamp (line 9) | CREATE TABLE IF NOT EXISTS FileLockTimestamp ( type FileLocks (line 16) | CREATE TABLE IF NOT EXISTS FileLocks ( type FolderGroupPerm (line 26) | CREATE TABLE IF NOT EXISTS FolderGroupPerm ( type FolderPermTimestamp (line 35) | CREATE TABLE IF NOT EXISTS FolderPermTimestamp ( type FolderUserPerm (line 42) | CREATE TABLE IF NOT EXISTS FolderUserPerm ( type GCID (line 51) | CREATE TABLE IF NOT EXISTS GCID ( type GarbageRepos (line 58) | CREATE TABLE IF NOT EXISTS GarbageRepos ( type InnerPubRepo (line 64) | CREATE TABLE IF NOT EXISTS InnerPubRepo ( type LastGCID (line 71) | CREATE TABLE IF NOT EXISTS LastGCID ( type OrgGroupRepo (line 79) | CREATE TABLE IF NOT EXISTS OrgGroupRepo ( type OrgInnerPubRepo (line 90) | CREATE TABLE IF NOT EXISTS OrgInnerPubRepo ( type OrgQuota (line 98) | CREATE TABLE IF NOT EXISTS OrgQuota ( type OrgRepo (line 105) | CREATE TABLE IF NOT EXISTS OrgRepo ( type OrgSharedRepo (line 116) | CREATE TABLE IF NOT EXISTS OrgSharedRepo ( type OrgUserQuota (line 128) | CREATE TABLE IF NOT EXISTS OrgUserQuota ( type Repo (line 136) | CREATE TABLE IF NOT EXISTS Repo ( type RepoFileCount (line 142) | CREATE TABLE IF NOT EXISTS RepoFileCount ( type RepoGroup (line 149) | CREATE TABLE IF NOT EXISTS RepoGroup ( type RepoHead (line 159) | CREATE TABLE IF NOT EXISTS RepoHead ( type RepoHistoryLimit (line 166) | CREATE TABLE IF NOT EXISTS RepoHistoryLimit ( type RepoInfo (line 173) | CREATE TABLE IF NOT EXISTS RepoInfo (id BIGINT NOT NULL PRIMARY KEY AUTO... type RepoOwner (line 186) | CREATE TABLE IF NOT EXISTS RepoOwner ( type RepoSize (line 194) | CREATE TABLE IF NOT EXISTS RepoSize ( type RepoStorageId (line 202) | CREATE TABLE IF NOT EXISTS RepoStorageId ( type RepoSyncError (line 209) | CREATE TABLE IF NOT EXISTS RepoSyncError ( type RepoTokenPeerInfo (line 217) | CREATE TABLE IF NOT EXISTS RepoTokenPeerInfo ( type RepoTrash (line 229) | CREATE TABLE IF NOT EXISTS RepoTrash ( type RepoUserToken (line 243) | CREATE TABLE IF NOT EXISTS RepoUserToken ( type RepoValidSince (line 253) | CREATE TABLE IF NOT EXISTS RepoValidSince ( type RoleQuota (line 260) | CREATE TABLE IF NOT EXISTS RoleQuota ( type SeafileConf (line 267) | CREATE TABLE IF NOT EXISTS SeafileConf ( type SharedRepo (line 275) | CREATE TABLE IF NOT EXISTS SharedRepo ( type SystemInfo (line 286) | CREATE TABLE IF NOT EXISTS SystemInfo ( type UserQuota (line 292) | CREATE TABLE IF NOT EXISTS UserQuota ( type UserShareQuota (line 299) | CREATE TABLE IF NOT EXISTS UserShareQuota ( type VirtualRepo (line 306) | CREATE TABLE IF NOT EXISTS VirtualRepo ( type WebAP (line 316) | CREATE TABLE IF NOT EXISTS WebAP ( type WebUploadTempFiles (line 323) | CREATE TABLE IF NOT EXISTS WebUploadTempFiles ( type RoleUploadRateLimit (line 331) | CREATE TABLE IF NOT EXISTS RoleUploadRateLimit ( type RoleDownloadRateLimit (line 338) | CREATE TABLE IF NOT EXISTS RoleDownloadRateLimit ( type UserUploadRateLimit (line 345) | CREATE TABLE IF NOT EXISTS UserUploadRateLimit ( type UserDownloadRateLimit (line 352) | CREATE TABLE IF NOT EXISTS UserDownloadRateLimit ( type OrgUserDefaultQuota (line 359) | CREATE TABLE IF NOT EXISTS OrgUserDefaultQuota ( type OrgDownloadRateLimit (line 365) | CREATE TABLE IF NOT EXISTS OrgDownloadRateLimit ( type OrgUploadRateLimit (line 372) | CREATE TABLE IF NOT EXISTS OrgUploadRateLimit ( FILE: scripts/sql/sqlite/config.sql type Config (line 1) | CREATE TABLE IF NOT EXISTS Config (key TEXT PRIMARY KEY, value TEXT) FILE: scripts/sql/sqlite/groupmgr.sql type `Group` (line 1) | CREATE TABLE IF NOT EXISTS `Group` (`group_id` INTEGER PRIMARY KEY AUTOI... type `GroupUser` (line 2) | CREATE TABLE IF NOT EXISTS `GroupUser` (`group_id` INTEGER, `user_name` ... type groupid_username_indx (line 3) | CREATE UNIQUE INDEX IF NOT EXISTS groupid_username_indx on `GroupUser` (... type username_indx (line 4) | CREATE INDEX IF NOT EXISTS username_indx on `GroupUser` (`user_name`) type GroupDNPair (line 5) | CREATE TABLE IF NOT EXISTS GroupDNPair (group_id INTEGER, dn VARCHAR(255)) type GroupStructure (line 6) | CREATE TABLE IF NOT EXISTS GroupStructure (group_id INTEGER PRIMARY KEY,... FILE: scripts/sql/sqlite/org.sql type OrgGroup (line 1) | CREATE TABLE IF NOT EXISTS OrgGroup (org_id INTEGER, group_id INTEGER) type groupid_indx (line 2) | CREATE INDEX IF NOT EXISTS groupid_indx on OrgGroup (group_id) type Organization (line 5) | CREATE TABLE IF NOT EXISTS Organization (org_id INTEGER PRIMARY KEY AUTO... type url_prefix_indx (line 6) | CREATE UNIQUE INDEX IF NOT EXISTS url_prefix_indx on Organization (url_p... type OrgUser (line 8) | CREATE TABLE IF NOT EXISTS OrgUser (org_id INTEGER, email TEXT, is_staff... type email_indx (line 9) | CREATE INDEX IF NOT EXISTS email_indx on OrgUser (email) type orgid_email_indx (line 10) | CREATE UNIQUE INDEX IF NOT EXISTS orgid_email_indx on OrgUser (org_id, e... FILE: scripts/sql/sqlite/seafile.sql type Branch (line 1) | CREATE TABLE IF NOT EXISTS Branch (name VARCHAR(10), repo_id CHAR(40), c... type Repo (line 2) | CREATE TABLE IF NOT EXISTS Repo (repo_id CHAR(37) PRIMARY KEY) type RepoOwner (line 3) | CREATE TABLE IF NOT EXISTS RepoOwner (repo_id CHAR(37) PRIMARY KEY, owne... type OwnerIndex (line 4) | CREATE INDEX IF NOT EXISTS OwnerIndex ON RepoOwner (owner_id) type RepoGroup (line 6) | CREATE TABLE IF NOT EXISTS RepoGroup (repo_id CHAR(37), group_id INTEGER... type groupid_repoid_indx (line 7) | CREATE UNIQUE INDEX IF NOT EXISTS groupid_repoid_indx on RepoGroup (grou... type repogroup_repoid_index (line 8) | CREATE INDEX IF NOT EXISTS repogroup_repoid_index on RepoGroup (repo_id) type repogroup_username_indx (line 9) | CREATE INDEX IF NOT EXISTS repogroup_username_indx on RepoGroup (user_name) type InnerPubRepo (line 10) | CREATE TABLE IF NOT EXISTS InnerPubRepo (repo_id CHAR(37) PRIMARY KEY, p... type OrgRepo (line 12) | CREATE TABLE IF NOT EXISTS OrgRepo (org_id INTEGER, repo_id CHAR(37), us... type repoid_indx (line 13) | CREATE UNIQUE INDEX IF NOT EXISTS repoid_indx on OrgRepo (repo_id) type orgid_repoid_indx (line 14) | CREATE INDEX IF NOT EXISTS orgid_repoid_indx on OrgRepo (org_id, repo_id) type orgrepo_orgid_user_indx (line 15) | CREATE INDEX IF NOT EXISTS orgrepo_orgid_user_indx on OrgRepo (org_id, u... type orgrepo_user_indx (line 16) | CREATE INDEX IF NOT EXISTS orgrepo_user_indx on OrgRepo (user) type OrgGroupRepo (line 17) | CREATE TABLE IF NOT EXISTS OrgGroupRepo (org_id INTEGER, repo_id CHAR(37... type orgid_groupid_repoid_indx (line 18) | CREATE UNIQUE INDEX IF NOT EXISTS orgid_groupid_repoid_indx on OrgGroupR... type org_repoid_index (line 19) | CREATE INDEX IF NOT EXISTS org_repoid_index on OrgGroupRepo (repo_id) type org_owner_indx (line 20) | CREATE INDEX IF NOT EXISTS org_owner_indx on OrgGroupRepo (owner) type OrgInnerPubRepo (line 21) | CREATE TABLE IF NOT EXISTS OrgInnerPubRepo (org_id INTEGER, repo_id CHAR... type RepoUserToken (line 22) | CREATE TABLE IF NOT EXISTS RepoUserToken (repo_id CHAR(37), email VARCHA... type repo_token_indx (line 23) | CREATE UNIQUE INDEX IF NOT EXISTS repo_token_indx on RepoUserToken (repo... type repo_token_email_indx (line 24) | CREATE INDEX IF NOT EXISTS repo_token_email_indx on RepoUserToken (email) type RepoTokenPeerInfo (line 25) | CREATE TABLE IF NOT EXISTS RepoTokenPeerInfo (token CHAR(41) PRIMARY KEY... type RepoSyncError (line 26) | CREATE TABLE IF NOT EXISTS RepoSyncError (token CHAR(41) PRIMARY KEY, er... type RepoHead (line 27) | CREATE TABLE IF NOT EXISTS RepoHead (repo_id CHAR(37) PRIMARY KEY, branc... type RepoSize (line 28) | CREATE TABLE IF NOT EXISTS RepoSize (repo_id CHAR(37) PRIMARY KEY, size ... type RepoHistoryLimit (line 29) | CREATE TABLE IF NOT EXISTS RepoHistoryLimit (repo_id CHAR(37) PRIMARY KE... type RepoValidSince (line 30) | CREATE TABLE IF NOT EXISTS RepoValidSince (repo_id CHAR(37) PRIMARY KEY,... type WebAP (line 31) | CREATE TABLE IF NOT EXISTS WebAP (repo_id CHAR(37) PRIMARY KEY, access_p... type VirtualRepo (line 32) | CREATE TABLE IF NOT EXISTS VirtualRepo (repo_id CHAR(36) PRIMARY KEY, or... type virtualrepo_origin_repo_idx (line 33) | CREATE INDEX IF NOT EXISTS virtualrepo_origin_repo_idx ON VirtualRepo (o... type GarbageRepos (line 34) | CREATE TABLE IF NOT EXISTS GarbageRepos (repo_id CHAR(36) PRIMARY KEY) type RepoTrash (line 35) | CREATE TABLE IF NOT EXISTS RepoTrash (repo_id CHAR(36) PRIMARY KEY, repo... type repotrash_owner_id_idx (line 36) | CREATE INDEX IF NOT EXISTS repotrash_owner_id_idx ON RepoTrash(owner_id) type repotrash_org_id_idx (line 37) | CREATE INDEX IF NOT EXISTS repotrash_org_id_idx ON RepoTrash(org_id) type RepoFileCount (line 38) | CREATE TABLE IF NOT EXISTS RepoFileCount (repo_id CHAR(36) PRIMARY KEY, ... type FolderUserPerm (line 39) | CREATE TABLE IF NOT EXISTS FolderUserPerm (repo_id CHAR(36) NOT NULL, pa... type folder_user_perm_idx (line 40) | CREATE INDEX IF NOT EXISTS folder_user_perm_idx ON FolderUserPerm(repo_id) type FolderGroupPerm (line 41) | CREATE TABLE IF NOT EXISTS FolderGroupPerm (repo_id CHAR(36) NOT NULL, p... type folder_group_perm_idx (line 42) | CREATE INDEX IF NOT EXISTS folder_group_perm_idx ON FolderGroupPerm(repo... type FolderPermTimestamp (line 43) | CREATE TABLE IF NOT EXISTS FolderPermTimestamp (repo_id CHAR(36) PRIMARY... type WebUploadTempFiles (line 44) | CREATE TABLE IF NOT EXISTS WebUploadTempFiles (repo_id CHAR(40) NOT NULL... type RepoInfo (line 45) | CREATE TABLE IF NOT EXISTS RepoInfo (repo_id CHAR(36) PRIMARY KEY, name ... type RepoInfoTypeIndex (line 46) | CREATE INDEX IF NOT EXISTS RepoInfoTypeIndex on RepoInfo (type) type RepoStorageId (line 47) | CREATE TABLE IF NOT EXISTS RepoStorageId (repo_id CHAR(40) NOT NULL, sto... type UserQuota (line 48) | CREATE TABLE IF NOT EXISTS UserQuota (user VARCHAR(255) PRIMARY KEY, quo... type UserShareQuota (line 49) | CREATE TABLE IF NOT EXISTS UserShareQuota (user VARCHAR(255) PRIMARY KEY... type OrgQuota (line 50) | CREATE TABLE IF NOT EXISTS OrgQuota (org_id INTEGER PRIMARY KEY, quota B... type OrgUserQuota (line 51) | CREATE TABLE IF NOT EXISTS OrgUserQuota (org_id INTEGER, user VARCHAR(25... type RoleQuota (line 52) | CREATE TABLE IF NOT EXISTS RoleQuota (role VARCHAR(255) PRIMARY KEY, quo... type SeafileConf (line 53) | CREATE TABLE IF NOT EXISTS SeafileConf (cfg_group VARCHAR(255) NOT NULL,... type FileLocks (line 54) | CREATE TABLE IF NOT EXISTS FileLocks (repo_id CHAR(40) NOT NULL, path TE... type FileLocksIndex (line 55) | CREATE INDEX IF NOT EXISTS FileLocksIndex ON FileLocks (repo_id) type FileLockTimestamp (line 56) | CREATE TABLE IF NOT EXISTS FileLockTimestamp (repo_id CHAR(40) PRIMARY K... type SharedRepo (line 57) | CREATE TABLE IF NOT EXISTS SharedRepo (repo_id CHAR(37) , from_email VAR... type RepoIdIndex (line 58) | CREATE INDEX IF NOT EXISTS RepoIdIndex on SharedRepo (repo_id) type FromEmailIndex (line 59) | CREATE INDEX IF NOT EXISTS FromEmailIndex on SharedRepo (from_email) type ToEmailIndex (line 60) | CREATE INDEX IF NOT EXISTS ToEmailIndex on SharedRepo (to_email) type OrgSharedRepo (line 61) | CREATE TABLE IF NOT EXISTS OrgSharedRepo (org_id INTEGER, repo_id CHAR(3... type OrgRepoIdIndex (line 62) | CREATE INDEX IF NOT EXISTS OrgRepoIdIndex on OrgSharedRepo (org_id, repo... type OrgFromEmailIndex (line 63) | CREATE INDEX IF NOT EXISTS OrgFromEmailIndex on OrgSharedRepo (from_email) type OrgToEmailIndex (line 64) | CREATE INDEX IF NOT EXISTS OrgToEmailIndex on OrgSharedRepo (to_email) type OrgLibIdIndex (line 65) | CREATE INDEX IF NOT EXISTS OrgLibIdIndex on OrgSharedRepo (repo_id) type SystemInfo (line 66) | CREATE TABLE IF NOT EXISTS SystemInfo (info_key VARCHAR(256), info_value... FILE: scripts/sql/sqlite/user.sql type Binding (line 1) | CREATE TABLE IF NOT EXISTS Binding (email TEXT, peer_id TEXT) type peer_index (line 2) | CREATE UNIQUE INDEX IF NOT EXISTS peer_index on Binding (peer_id) type EmailUser (line 4) | CREATE TABLE IF NOT EXISTS EmailUser (id INTEGER NOT NULL PRIMARY KEY AU... type email_index (line 5) | CREATE UNIQUE INDEX IF NOT EXISTS email_index on EmailUser (email) type reference_id_index (line 6) | CREATE UNIQUE INDEX IF NOT EXISTS reference_id_index on EmailUser (refer... type LDAPConfig (line 8) | CREATE TABLE IF NOT EXISTS LDAPConfig (cfg_group VARCHAR(255) NOT NULL, ... type LDAPUsers (line 10) | CREATE TABLE IF NOT EXISTS LDAPUsers (id INTEGER PRIMARY KEY AUTOINCREME... type ldapusers_email_index (line 11) | CREATE UNIQUE INDEX IF NOT EXISTS ldapusers_email_index on LDAPUsers(email) type ldapusers_reference_id_index (line 12) | CREATE UNIQUE INDEX IF NOT EXISTS ldapusers_reference_id_index on LDAPUs... type UserRole (line 14) | CREATE TABLE IF NOT EXISTS UserRole (email TEXT, role TEXT, is_manual_se... type userrole_email_index (line 15) | CREATE INDEX IF NOT EXISTS userrole_email_index on UserRole (email) type userrole_userrole_index (line 16) | CREATE UNIQUE INDEX IF NOT EXISTS userrole_userrole_index on UserRole (e... FILE: server/access-file.c type file_type_map (line 35) | struct file_type_map { type SendBlockData (line 40) | typedef struct SendBlockData { type SendfileData (line 58) | typedef struct SendfileData { type SendFileRangeData (line 80) | typedef struct SendFileRangeData { type SendDirData (line 100) | typedef struct SendDirData { type file_type_map (line 122) | struct file_type_map function free_sendblock_data (line 160) | static void function free_sendfile_data (line 173) | static void function free_send_file_range_data (line 191) | static void function free_senddir_data (line 205) | static void function write_block_data_cb (line 218) | static void function write_data_cb (line 283) | static void function write_dir_data_cb (line 429) | static void function my_block_event_cb (line 470) | static void function my_event_cb (line 481) | static void function file_range_event_cb (line 492) | static void function my_dir_event_cb (line 503) | static void function gboolean (line 537) | static gboolean function do_file (line 555) | static int function BlockHandle (line 693) | static BlockHandle * function finish_file_range_request (line 756) | static void function write_file_range_cb (line 773) | static void function gboolean (line 841) | static gboolean function set_resp_disposition (line 914) | static void function do_file_range (line 936) | static int function start_download_zip_file (line 1057) | static int function set_etag (line 1133) | static void function set_no_cache (line 1143) | static void function gboolean (line 1156) | static gboolean function access_zip_cb (line 1189) | static void function access_cb (line 1385) | static void function access_v2_cb (line 1504) | static void function do_block (line 1656) | static int function access_blks_cb (line 1747) | static void function access_link_cb (line 1831) | static void function evhtp_res (line 2328) | static evhtp_res function evhtp_res (line 2344) | static evhtp_res function access_file_init (line 2360) | int FILE: server/change-set.c type _ChangeSetDir (line 12) | struct _ChangeSetDir { type ChangeSetDir (line 19) | typedef struct _ChangeSetDir ChangeSetDir; type _ChangeSetDirent (line 21) | struct _ChangeSetDirent { type ChangeSetDirent (line 33) | typedef struct _ChangeSetDirent ChangeSetDirent; function ChangeSetDirent (line 37) | static ChangeSetDirent * function ChangeSetDirent (line 53) | static ChangeSetDirent * function SeafDirent (line 60) | static SeafDirent * function changeset_dirent_free (line 70) | static void function add_dent_to_dir (line 86) | static void function remove_dent_from_dir (line 94) | static void function ChangeSetDir (line 106) | static ChangeSetDir * function changeset_dir_free (line 128) | static void function ChangeSetDir (line 137) | static ChangeSetDir * function gint (line 143) | static gint function SeafDir (line 151) | static SeafDir * function ChangeSet (line 178) | ChangeSet * function changeset_free (line 196) | void function ChangeSetDirent (line 206) | static ChangeSetDirent * function remove_from_changeset_recursive (line 281) | static void function remove_from_changeset (line 314) | void FILE: server/change-set.h type _ChangeSetDir (line 9) | struct _ChangeSetDir type _ChangeSet (line 11) | struct _ChangeSet { type ChangeSet (line 16) | typedef struct _ChangeSet ChangeSet; FILE: server/copy-mgr.c type _SeafCopyManagerPriv (line 18) | struct _SeafCopyManagerPriv { function copy_task_free (line 24) | static void function SeafCopyManager (line 33) | SeafCopyManager * function seaf_copy_manager_start (line 55) | int function SeafileCopyTask (line 63) | SeafileCopyTask * type CopyThreadData (line 90) | struct CopyThreadData { type CopyThreadData (line 103) | typedef struct CopyThreadData CopyThreadData; function copy_done (line 117) | static void type CopyThreadData (line 146) | struct CopyThreadData function seaf_copy_manager_cancel_task (line 178) | int FILE: server/copy-mgr.h type _SeafileSession (line 12) | struct _SeafileSession type _SeafCopyManagerPriv (line 13) | struct _SeafCopyManagerPriv type _SeafileCopyTask (line 14) | struct _SeafileCopyTask type _SeafCopyManager (line 16) | struct _SeafCopyManager { type SeafCopyManager (line 23) | typedef struct _SeafCopyManager SeafCopyManager; type SeafCopyManagerPriv (line 24) | typedef struct _SeafCopyManagerPriv SeafCopyManagerPriv; type CopyTask (line 26) | struct CopyTask { type CopyTask (line 35) | typedef struct CopyTask CopyTask; type _SeafileSession (line 38) | struct _SeafileSession type _SeafileCopyTask (line 60) | struct _SeafileCopyTask FILE: server/fileserver-config.c function fileserver_config_get_integer (line 16) | int function fileserver_config_get_int64 (line 23) | int function gboolean (line 37) | gboolean FILE: server/fileserver-config.h type GKeyFile (line 4) | struct GKeyFile FILE: server/gc/fsck.c type FsckData (line 12) | typedef struct FsckData { type CheckAndRecoverRepoObj (line 21) | typedef struct CheckAndRecoverRepoObj { type VerifyType (line 26) | typedef enum VerifyType { function gboolean (line 31) | static gboolean function check_blocks (line 69) | static int type CheckFileSizeData (line 138) | typedef struct { function gboolean (line 149) | static gboolean function check_file_size (line 207) | static int function reset_commit_to_repair (line 452) | static void function check_and_recover_repo (line 492) | static void function gint (line 547) | static gint function gboolean (line 556) | static gboolean function SeafRepo (line 578) | static SeafRepo* function repair_repo (line 670) | static void function repair_repo_with_thread_pool (line 745) | static void function repair_repos (line 755) | static void function seaf_fsck (line 789) | int function gboolean (line 920) | static gboolean function create_file (line 973) | static void function export_repo_files_recursive (line 1022) | static void function SeafCommit (line 1065) | static SeafCommit* function export_repo_files (line 1133) | void function GList (line 1173) | static GList * function print_enc_repo (line 1201) | static void function export_file (line 1207) | void FILE: server/gc/fsck.h type FsckOptions (line 4) | typedef struct FsckOptions { FILE: server/gc/gc-core.c function Bloom (line 61) | static Bloom * type GCData (line 75) | typedef struct { function add_blocks_to_index (line 102) | static int function add_fs_to_index (line 126) | static void function gboolean (line 136) | static gboolean function gboolean (line 184) | static gboolean function update_gc_id (line 243) | static int function update_valid_since_time (line 270) | static void function GCData (line 294) | static GCData * function gc_data_free (line 320) | static void function gint64 (line 334) | static gint64 function gint64 (line 393) | static gint64 type CheckBlockParam (line 458) | typedef struct CheckBlockParam { type CheckFSParam (line 468) | typedef struct CheckFSParam { function check_block_liveness (line 478) | static void function gint64 (line 497) | static gint64 function gboolean (line 549) | static gboolean function check_fs_liveness (line 561) | static void function gint64 (line 580) | static gint64 function gboolean (line 632) | static gboolean function gint64 (line 644) | static gint64 function gint64 (line 676) | static gint64 function gint64 (line 724) | gint64 type RemoveType (line 929) | typedef enum RemoveType { type RemoveTask (line 935) | typedef struct RemoveTask { function remove_store (line 941) | static void function delete_garbaged_repos (line 977) | void type GCRepoParam (line 1077) | typedef struct GCRepoParam { type GCRepo (line 1085) | typedef struct GCRepo { function free_gc_repo (line 1090) | static void function gc_repo_cb (line 1100) | static void function gc_core_run (line 1116) | int FILE: server/gc/repo-mgr.c type _SeafRepoManagerPriv (line 20) | struct _SeafRepoManagerPriv { function gboolean (line 27) | gboolean function SeafRepo (line 36) | SeafRepo* function seaf_repo_free (line 56) | void function seaf_repo_ref (line 68) | void function seaf_repo_unref (line 74) | void function set_head_common (line 84) | static void function seaf_repo_from_commit (line 93) | void function seaf_repo_to_commit (line 126) | void function gboolean (line 159) | static gboolean function GList (line 171) | GList * function SeafRepoManager (line 211) | SeafRepoManager* function seaf_repo_manager_init (line 222) | int function seaf_repo_manager_start (line 228) | int function gboolean (line 234) | static gboolean function gboolean (line 245) | static gboolean function SeafRepo (line 255) | SeafRepo* function SeafRepo (line 277) | SeafRepo* function gboolean (line 303) | gboolean function load_repo_commit (line 312) | static void function SeafRepo (line 334) | static SeafRepo * function gboolean (line 379) | static gboolean function GList (line 391) | GList * function GList (line 406) | GList * function GList (line 423) | GList * function seaf_repo_manager_set_repo_history_limit (line 460) | int function gboolean (line 502) | static gboolean function seaf_repo_manager_get_repo_history_limit (line 512) | int function seaf_repo_manager_set_repo_valid_since (line 552) | int function gint64 (line 588) | gint64 function gint64 (line 601) | gint64 function gboolean (line 620) | static gboolean function SeafVirtRepo (line 640) | SeafVirtRepo * function seaf_virtual_repo_info_free (line 655) | void function gboolean (line 664) | static gboolean function GList (line 676) | GList * function gboolean (line 694) | static gboolean function GList (line 706) | GList * function seaf_repo_manager_remove_garbage_repo (line 718) | void FILE: server/gc/repo-mgr.h type _SeafRepoManager (line 12) | struct _SeafRepoManager type SeafRepo (line 13) | typedef struct _SeafRepo SeafRepo; type SeafVirtRepo (line 15) | typedef struct SeafVirtRepo { type _SeafRepo (line 21) | struct _SeafRepo { type SeafRepoManager (line 79) | typedef struct _SeafRepoManager SeafRepoManager; type SeafRepoManagerPriv (line 80) | typedef struct _SeafRepoManagerPriv SeafRepoManagerPriv; type _SeafRepoManager (line 82) | struct _SeafRepoManager { type _SeafileSession (line 89) | struct _SeafileSession FILE: server/gc/seaf-fsck.c type option (line 18) | struct option function usage (line 33) | static void usage () function gboolean (line 68) | static gboolean function main (line 90) | int FILE: server/gc/seafile-session.c function SeafileSession (line 14) | SeafileSession * FILE: server/gc/seafile-session.h type SeafileSession (line 16) | typedef struct _SeafileSession SeafileSession; type _SeafileSession (line 18) | struct _SeafileSession { FILE: server/gc/seafserv-gc.c type option (line 20) | struct option function usage (line 36) | static void usage () function main (line 78) | int FILE: server/gc/verify.c type VerifyData (line 5) | typedef struct VerifyData { function check_blocks (line 15) | static int function gboolean (line 42) | static gboolean function gboolean (line 73) | static gboolean function verify_virtual_repos (line 124) | static int function gboolean (line 170) | static gboolean function verify_repo (line 182) | static int function verify_repos (line 247) | int FILE: server/http-server.c type _HttpServer (line 64) | struct _HttpServer { type HttpServer (line 84) | typedef struct _HttpServer HttpServer; type _StatsEventData (line 86) | struct _StatsEventData { type StatsEventData (line 93) | typedef struct _StatsEventData StatsEventData; type TokenInfo (line 95) | typedef struct TokenInfo { type PermInfo (line 105) | typedef struct PermInfo { type VirRepoInfo (line 109) | typedef struct VirRepoInfo { type FsHdr (line 114) | typedef struct FsHdr { type CheckExistType (line 119) | typedef enum CheckExistType { function load_http_config (line 146) | static void function validate_token (line 244) | static int function PermInfo (line 310) | static PermInfo * function insert_perm_cache (line 344) | static void function remove_perm_cache (line 357) | static void function check_permission (line 373) | static int function gboolean (line 415) | static gboolean function add_vir_info_to_cache (line 460) | static void type RepoEventData (line 505) | typedef struct { function free_repo_event_data (line 515) | static void function free_stats_event_data (line 529) | static void function publish_repo_event (line 541) | static void function publish_stats_event (line 570) | static void function on_repo_oper (line 589) | static void function send_statistic_msg (line 616) | void type in_addr (line 638) | struct in_addr type sockaddr_in (line 656) | struct sockaddr_in type sockaddr_in (line 656) | struct sockaddr_in type sockaddr_in6 (line 666) | struct sockaddr_in6 type sockaddr_in6 (line 666) | struct sockaddr_in6 function validate_client_ver (line 674) | static int function get_check_permission_cb (line 710) | static void function get_protocol_cb (line 821) | static void function get_check_quota_cb (line 828) | static void function gboolean (line 874) | static gboolean function get_head_commit_cb (line 886) | static void function fast_forward_or_merge (line 968) | static int type CheckBlockAux (line 1132) | typedef struct CheckBlockAux { function check_file_blocks (line 1138) | static int function check_dir_cb (line 1170) | static int function check_blocks (line 1202) | static int function gboolean (line 1246) | gboolean function gboolean (line 1266) | static gboolean function put_update_branch_cb (line 1297) | static void function head_commit_oper_cb (line 1407) | static void function gboolean (line 1419) | static gboolean function head_commits_multi_cb (line 1431) | static void function get_commit_info_cb (line 1526) | static void function save_last_gc_id (line 1568) | static int function put_commit_cb (line 1590) | static void function commit_oper_cb (line 1666) | static void function collect_file_ids (line 1678) | static int function collect_file_ids_nop (line 1692) | static int function collect_dir_ids (line 1698) | static int function calculate_send_object_list (line 1713) | static int function get_fs_obj_id_cb (line 1778) | static void type ComputeObjTask (line 1861) | typedef struct ComputeObjTask { type CalObjResult (line 1870) | typedef struct CalObjResult { function free_compute_obj_task (line 1875) | static void function free_obj_cal_result (line 1892) | static void function compute_fs_obj_id (line 1905) | static void function start_fs_obj_id_cb (line 1943) | static void function query_fs_obj_id_cb (line 2023) | static void function retrieve_fs_obj_id_cb (line 2080) | static void function get_block_cb (line 2148) | static void function put_send_block_cb (line 2228) | static void function block_oper_cb (line 2323) | static void function post_check_exist_cb (line 2335) | static void function post_check_fs_cb (line 2428) | static void function post_check_block_cb (line 2434) | static void function post_recv_fs_cb (line 2440) | static void function post_pack_fs_cb (line 2537) | static void function get_block_map_cb (line 2638) | static void function get_jwt_token_cb (line 2713) | static void function json_t (line 2761) | static json_t * function GHashTable (line 2814) | static GHashTable * function group_repos_to_json (line 2869) | static void function get_accessible_repo_list_cb (line 2893) | static void function evhtp_res (line 3033) | static evhtp_res function evhtp_res (line 3049) | static evhtp_res function http_request_init (line 3065) | static void function token_cache_value_free (line 3166) | static void function gboolean (line 3177) | static gboolean function perm_cache_value_free (line 3189) | static void function gboolean (line 3196) | static gboolean function gboolean (line 3208) | static gboolean function free_vir_repo_info (line 3220) | static void function remove_expire_cache_cb (line 3234) | static void type timeval (line 3273) | struct timeval function HttpServerStruct (line 3288) | HttpServerStruct * function gint64 (line 3326) | gint64 function gint64 (line 3337) | static gint64 function scan_httptemp_dir (line 3375) | static int function seaf_http_server_start (line 3415) | int function seaf_http_server_invalidate_tokens (line 3433) | int FILE: server/http-server.h type _SeafileSession (line 9) | struct _SeafileSession type _HttpServer (line 11) | struct _HttpServer type _HttpServerStruct (line 13) | struct _HttpServerStruct { type RequestInfo (line 28) | typedef struct RequestInfo { type HttpServerStruct (line 33) | typedef struct _HttpServerStruct HttpServerStruct; type _SeafileSession (line 36) | struct _SeafileSession FILE: server/http-tx-mgr.c type _Connection (line 22) | struct _Connection { type _ConnectionPool (line 28) | struct _ConnectionPool { function Connection (line 33) | static Connection * function connection_free (line 46) | static void function ConnectionPool (line 56) | ConnectionPool * function connection_pool_free (line 68) | void function Connection (line 78) | Connection * function connection_pool_return_connection (line 93) | void function http_tx_manager_init (line 131) | void type HttpResponse (line 137) | typedef struct _HttpResponse { function recv_response (line 142) | static size_t function http_get_common (line 171) | static int type HttpRequest (line 249) | typedef struct _HttpRequest { function send_request (line 254) | static size_t function http_post_common (line 272) | static int function http_post (line 361) | int type curl_slist (line 466) | struct curl_slist function SeafileShareLinkInfo (line 530) | static SeafileShareLinkInfo * function SeafileShareLinkInfo (line 601) | SeafileShareLinkInfo * function http_tx_manager_check_file_access (line 706) | int FILE: server/http-tx-mgr.h type Connection (line 14) | typedef struct _Connection Connection; type ConnectionPool (line 15) | typedef struct _ConnectionPool ConnectionPool; FILE: server/index-blocks-mgr.c type SeafileCrypt (line 35) | struct SeafileCrypt type IndexBlksMgrPriv (line 37) | typedef struct IndexBlksMgrPriv { type IndexPara (line 45) | typedef struct IndexPara { function free_progress (line 57) | static void function IndexBlksMgr (line 68) | IndexBlksMgr * function scan_progress (line 101) | static int function free_index_para (line 125) | static void function start_index_task (line 140) | static void function index_blocks_mgr_start_index (line 243) | int FILE: server/index-blocks-mgr.h type IndexBlksMgrPriv (line 6) | struct IndexBlksMgrPriv type _SeafileSession (line 7) | struct _SeafileSession type IndexBlksMgr (line 9) | typedef struct IndexBlksMgr { type IdxProgress (line 13) | typedef struct IdxProgress { type _SeafileSession (line 22) | struct _SeafileSession FILE: server/metric-mgr.c type _SeafMetricManagerPriv (line 19) | struct _SeafMetricManagerPriv { function SeafMetricManager (line 25) | SeafMetricManager* function seaf_metric_manager_start (line 42) | int function seaf_metric_manager_in_flight_request_inc (line 58) | void function seaf_metric_manager_in_flight_request_dec (line 66) | void function publish_redis_msg (line 73) | static int function publish_in_flight_request (line 87) | static int function do_publish_metrics (line 113) | static void FILE: server/metric-mgr.h type _SeafMetricManager (line 6) | struct _SeafMetricManager type SeafMetricManager (line 8) | typedef struct _SeafMetricManager SeafMetricManager; type SeafMetricManagerPriv (line 10) | typedef struct _SeafMetricManagerPriv SeafMetricManagerPriv; type _SeafMetricManager (line 12) | struct _SeafMetricManager { type _SeafileSession (line 19) | struct _SeafileSession FILE: server/notif-mgr.c type _NotifPriv (line 21) | struct _NotifPriv { type NotifPriv (line 26) | typedef struct _NotifPriv NotifPriv; type Event (line 28) | typedef struct Event { function NotifManager (line 33) | NotifManager * function free_send_event (line 136) | static void function seaf_notif_manager_send_event (line 150) | void FILE: server/notif-mgr.h type _NotifManager (line 4) | struct _NotifManager { type NotifManager (line 10) | typedef struct _NotifManager NotifManager; type _SeafileSession (line 13) | struct _SeafileSession FILE: server/pack-dir.c type PackDirData (line 27) | typedef struct { function add_file_to_archive (line 68) | static int function archive_dir (line 274) | static int function PackDirData (line 366) | static PackDirData * function gboolean (line 406) | static gboolean function archive_multi (line 444) | static int function pack_files (line 483) | int FILE: server/pack-dir.h type Progress (line 9) | typedef struct Progress { FILE: server/passwd-mgr.c type DecryptKey (line 17) | typedef struct { type _SeafPasswdManagerPriv (line 24) | struct _SeafPasswdManagerPriv { function decrypt_key_free (line 31) | static void function SeafPasswdManager (line 42) | SeafPasswdManager * function seaf_passwd_manager_start (line 56) | int function seaf_passwd_manager_check_passwd (line 64) | int function seaf_passwd_manager_set_passwd (line 97) | int function seaf_passwd_manager_unset_passwd (line 180) | int function gboolean (line 196) | gboolean function SeafileCryptKey (line 213) | SeafileCryptKey * function seaf_passwd_manager_get_decrypt_key_raw (line 249) | int function reap_expired_passwd (line 280) | static int FILE: server/passwd-mgr.h type _SeafileSession (line 6) | struct _SeafileSession type _SeafPasswdManagerPriv (line 7) | struct _SeafPasswdManagerPriv type _SeafileCryptKey (line 8) | struct _SeafileCryptKey type _SeafPasswdManager (line 10) | struct _SeafPasswdManager { type SeafPasswdManager (line 14) | typedef struct _SeafPasswdManager SeafPasswdManager; type _SeafileSession (line 17) | struct _SeafileSession type _SeafileCryptKey (line 70) | struct _SeafileCryptKey FILE: server/permission-mgr.c type _SeafPermManagerPriv (line 11) | struct _SeafPermManagerPriv { function SeafPermManager (line 17) | SeafPermManager * function seaf_perm_manager_init (line 26) | int function load_db (line 32) | static int FILE: server/permission-mgr.h type _SeafileSession (line 8) | struct _SeafileSession type SeafPermManager (line 10) | typedef struct _SeafPermManager SeafPermManager; type SeafPermManagerPriv (line 11) | typedef struct _SeafPermManagerPriv SeafPermManagerPriv; type _SeafPermManager (line 13) | struct _SeafPermManager { type _SeafileSession (line 20) | struct _SeafileSession FILE: server/quota-mgr.c function gint64 (line 18) | static gint64 function SeafQuotaManager (line 61) | SeafQuotaManager * function seaf_quota_manager_init (line 76) | int function seaf_quota_manager_set_user_quota (line 163) | int function gint64 (line 199) | gint64 function seaf_quota_manager_set_org_quota (line 219) | int function gint64 (line 253) | gint64 function seaf_quota_manager_set_org_user_quota (line 268) | int function gint64 (line 308) | gint64 function count_group_members (line 330) | static void function gint (line 349) | static gint function seaf_quota_manager_check_quota_with_delta (line 401) | int function seaf_quota_manager_check_quota (line 450) | int function gint64 (line 462) | gint64 function gint64 (line 484) | static gint64 function gint64 (line 506) | gint64 function gint64 (line 532) | gint64 function gint64 (line 544) | gint64 function gboolean (line 558) | static gboolean function GList (line 583) | GList * FILE: server/quota-mgr.h type _SeafQuotaManager (line 8) | struct _SeafQuotaManager { type SeafQuotaManager (line 13) | typedef struct _SeafQuotaManager SeafQuotaManager; type _SeafileSession (line 16) | struct _SeafileSession FILE: server/repo-mgr.c type DecryptedToken (line 31) | typedef struct DecryptedToken { type _SeafRepoManagerPriv (line 36) | struct _SeafRepoManagerPriv { function gboolean (line 55) | gboolean function SeafRepo (line 64) | SeafRepo* function seaf_repo_free (line 84) | void function seaf_repo_ref (line 99) | void function seaf_repo_unref (line 105) | void function set_head_common (line 115) | static void function seaf_repo_set_head (line 124) | int function seaf_repo_from_commit (line 133) | void function seaf_repo_to_commit (line 169) | void function gboolean (line 202) | static gboolean function GList (line 214) | GList * function gboolean (line 254) | gboolean function scan_trash (line 291) | static int function init_scan_trash_timer (line 330) | static void function SeafRepoManager (line 348) | SeafRepoManager* function seaf_repo_manager_init (line 368) | int function seaf_repo_manager_start (line 387) | int function seaf_repo_manager_add_repo (line 393) | int function add_deleted_repo_record (line 408) | static int function add_deleted_repo_to_trash (line 435) | static int function remove_virtual_repo_ondisk (line 470) | static int function gboolean (line 533) | static gboolean function SeafCommit (line 545) | static SeafCommit* function seaf_repo_manager_del_repo (line 569) | int function seaf_repo_manager_del_virtual_repo (line 666) | int function gboolean (line 680) | static gboolean function gboolean (line 688) | gboolean function SeafRepo (line 740) | static SeafRepo* function SeafRepo (line 774) | SeafRepo* function SeafRepo (line 802) | SeafRepo* function gboolean (line 830) | gboolean function save_branch_repo_map (line 837) | static int function seaf_repo_manager_branch_repo_unmap (line 872) | int function set_repo_commit_to_db (line 882) | int function load_repo_commit (line 928) | static void function load_repo (line 948) | static void function load_mini_repo (line 956) | static void function create_tables_mysql (line 980) | static int function create_tables_sqlite (line 1133) | static int function create_db_tables_if_not_exist (line 1439) | static int function add_repo_token (line 1481) | static int function seaf_repo_manager_add_token_peer_info (line 1518) | int function seaf_repo_manager_update_token_peer_info (line 1543) | int function gboolean (line 1564) | gboolean function seaf_repo_manager_delete_token (line 1575) | int function gboolean (line 1611) | static gboolean function fill_in_token_info (line 1655) | static void function GList (line 1678) | GList * function GList (line 1715) | GList * function gboolean (line 1743) | static gboolean function seaf_repo_manager_delete_repo_tokens_by_peer_id (line 1759) | int function seaf_repo_manager_delete_repo_tokens_by_email (line 1855) | int function gboolean (line 1904) | static gboolean function gboolean (line 1936) | static gboolean function gint64 (line 1946) | gint64 function seaf_repo_manager_set_repo_history_limit (line 1962) | int function gboolean (line 2008) | static gboolean function seaf_repo_manager_get_repo_history_limit (line 2018) | int function seaf_repo_manager_set_repo_valid_since (line 2051) | int function gint64 (line 2090) | gint64 function gint64 (line 2101) | gint64 function seaf_repo_manager_set_repo_owner (line 2126) | int function gboolean (line 2201) | static gboolean function gboolean (line 2230) | static gboolean function GList (line 2242) | GList * function gboolean (line 2269) | gboolean function GList (line 2321) | GList * function GList (line 2433) | GList * function GList (line 2512) | GList * function GList (line 2574) | GList * function GList (line 2589) | GList * function gint64 (line 2698) | gint64 function GList (line 2711) | GList * function gboolean (line 2730) | static gboolean function GList (line 2778) | GList * function GList (line 2814) | GList * function SeafileTrashRepo (line 2841) | SeafileTrashRepo * function seaf_repo_manager_del_repo_from_trash (line 2866) | int function seaf_repo_manager_empty_repo_trash (line 2895) | int function seaf_repo_manager_empty_repo_trash_by_owner (line 2917) | int function seaf_repo_manager_restore_repo_from_trash (line 2941) | int function seaf_repo_manager_set_access_property (line 3110) | int function gboolean (line 3135) | static gboolean function seaf_repo_manager_add_group_repo (line 3164) | int function seaf_repo_manager_del_group_repo (line 3181) | int function gboolean (line 3193) | static gboolean function GList (line 3205) | GList * function gboolean (line 3224) | static gboolean function GList (line 3239) | GList * function seaf_repo_manager_set_group_repo_perm (line 3260) | int function seaf_repo_manager_set_subdir_group_perm_by_path (line 3274) | int function gboolean (line 3292) | static gboolean function GList (line 3304) | GList * function gboolean (line 3320) | static gboolean function seaf_fill_repo_obj_from_commit (line 3387) | void function GList (line 3444) | GList * function GList (line 3482) | GList * function gboolean (line 3517) | static gboolean function seaf_repo_manager_remove_group_repos (line 3548) | int function seaf_repo_manager_set_inner_pub_repo (line 3572) | int function seaf_repo_manager_unset_inner_pub_repo (line 3605) | int function gboolean (line 3614) | gboolean function gboolean (line 3625) | static gboolean function GList (line 3692) | GList * function gint64 (line 3725) | gint64 function GList (line 3735) | GList * function seaf_repo_manager_is_valid_filename (line 3778) | int type RepoCryptInfo (line 3790) | typedef struct _RepoCryptCompat { function RepoCryptInfo (line 3797) | static function create_repo_common (line 3811) | static int function reap_token (line 4058) | static int reap_token (void *data) function decrypted_token_free (line 4081) | static void decrypted_token_free (DecryptedToken *token) function seaf_repo_manager_add_decrypted_token (line 4089) | void function gboolean (line 4134) | static gboolean function GList (line 4152) | GList * function gboolean (line 4181) | static gboolean function GList (line 4200) | GList * function seaf_repo_manager_edit_repo (line 4228) | int function gboolean (line 4322) | gboolean function gint64 (line 4332) | gint64 function gboolean (line 4355) | gboolean function gint64 (line 4365) | gint64 function gboolean (line 4433) | gboolean function seaf_repo_set_last_gc_id (line 4446) | int function seaf_repo_remove_last_gc_id (line 4476) | int function seaf_repo_manager_add_upload_tmp_file (line 4488) | int function seaf_repo_manager_del_upload_tmp_file (line 4518) | int function gboolean (line 4554) | static gboolean function gint64 (line 4619) | gint64 function seaf_repo_manager_update_repo_info (line 4661) | void function GObject (line 4687) | GObject * function GList (line 4767) | GList * type RepoPath (line 4859) | typedef struct RepoPath { function gboolean (line 4866) | gboolean function free_repo_path (line 4884) | static void function seaf_repo_manager_set_repo_status (line 5031) | int function seaf_repo_manager_get_repo_status (line 5048) | int FILE: server/repo-mgr.h type RepoStatus (line 10) | typedef enum RepoStatus { type _SeafRepoManager (line 16) | struct _SeafRepoManager type SeafRepo (line 17) | typedef struct _SeafRepo SeafRepo; type SeafVirtRepo (line 19) | typedef struct SeafVirtRepo { type _SeafRepo (line 26) | struct _SeafRepo { type SeafRepoManager (line 108) | typedef struct _SeafRepoManager SeafRepoManager; type SeafRepoManagerPriv (line 109) | typedef struct _SeafRepoManagerPriv SeafRepoManagerPriv; type _SeafRepoManager (line 111) | struct _SeafRepoManager { type _SeafileSession (line 118) | struct _SeafileSession type GroupPerm (line 661) | typedef struct GroupPerm { FILE: server/repo-op.c function gint (line 64) | static gint function GList (line 72) | static inline GList * function gboolean (line 87) | static gboolean function gboolean (line 296) | static gboolean function gen_new_commit (line 440) | static int function update_repo_size (line 630) | static void function seaf_repo_manager_post_file (line 636) | int function add_new_entries (line 778) | static int function GList (line 966) | static GList * function gboolean (line 1044) | static gboolean function seaf_repo_manager_post_multi_files (line 1087) | int function post_files_and_gen_commit (line 1230) | int function seaf_repo_manager_post_blocks (line 1440) | int function check_quota_before_commit_blocks (line 1500) | static int function seaf_repo_manager_commit_file_blocks (line 1526) | int function seaf_repo_manager_del_file (line 1782) | int function do_batch_del_files (line 1868) | void function seaf_repo_manager_batch_del_files (line 1903) | int function SeafDirent (line 1993) | static SeafDirent * function put_dirent_and_commit (line 2051) | static int function write_block (line 2119) | static int function GHashTable (line 2440) | static GHashTable * function set_failed_reason (line 2475) | static void function SeafileCrypt (line 2481) | static SeafileCrypt * function cross_repo_copy (line 2512) | static int function gboolean (line 2716) | static gboolean function gboolean (line 2728) | static gboolean function SeafileCopyResult (line 2789) | SeafileCopyResult * function SeafileCopyResult (line 2944) | SeafileCopyResult * function move_file_same_repo (line 3152) | static int function cross_repo_move (line 3226) | static int function gboolean (line 3439) | static gboolean function SeafileCopyResult (line 3477) | SeafileCopyResult * function seaf_repo_manager_mkdir_with_parents (line 3704) | int function seaf_repo_manager_post_dir (line 3865) | int function seaf_repo_manager_post_empty_file (line 3936) | int function seaf_repo_manager_rename_file (line 4126) | int function seaf_repo_manager_put_file (line 4303) | int function seaf_repo_manager_update_dir (line 4478) | int function filename_splitext (line 4706) | static void function gboolean (line 4879) | static gboolean function seaf_repo_manager_revert_file (line 4905) | int function seaf_repo_manager_revert_dir (line 5138) | int type CollectRevisionParam (line 5298) | typedef struct CollectRevisionParam CollectRevisionParam; type CollectRevisionParam (line 5300) | struct CollectRevisionParam { type FileInfo (line 5321) | typedef struct FileInfo { function free_file_info (line 5327) | static void function gboolean (line 5342) | static gboolean function SeafDir (line 5370) | static SeafDir* function FileInfo (line 5457) | static FileInfo* function add_revision_info (line 5536) | static void function gboolean (line 5549) | static gboolean function gboolean (line 5678) | static gboolean function gboolean (line 5706) | static gboolean function SeafileCommit (line 5782) | static SeafileCommit * function GList (line 5805) | static GList * function GList (line 5837) | GList * type CalcFilesLastModifiedParam (line 5954) | typedef struct CalcFilesLastModifiedParam CalcFilesLastModifiedParam; type CalcFilesLastModifiedParam (line 5956) | struct CalcFilesLastModifiedParam { function gboolean (line 5965) | static gboolean function gboolean (line 5986) | static gboolean function GList (line 6067) | GList * function seaf_repo_manager_revert_on_server (line 6181) | int function add_deleted_entry (line 6262) | static void function find_deleted_recursive (line 6307) | static int function find_deleted (line 6387) | static int type CollectDelData (line 6422) | typedef struct CollectDelData { function gboolean (line 6431) | static gboolean type RemoveExistingParam (line 6495) | typedef struct RemoveExistingParam { function gboolean (line 6500) | static gboolean function filter_out_existing_entries (line 6529) | static int function gboolean (line 6555) | static gboolean function gint (line 6566) | static gint function gint (line 6576) | static gint function insert_parent_commit (line 6582) | static int function GList (line 6611) | static GList * function scan_commits_for_collect_deleted (line 6643) | static int function GList (line 6751) | GList * function SeafCommit (line 6835) | static SeafCommit * function GList (line 6864) | GList * FILE: server/repo-perm.c function gboolean (line 18) | static gboolean function gint (line 255) | static gint function GList (line 269) | GList * FILE: server/seaf-server.c type option (line 36) | struct option function usage (line 52) | static void usage () function start_rpc_service (line 66) | static void start_rpc_service (const char *seafile_dir, type event (line 1085) | struct event function sigusr1Handler (line 1087) | static void sigusr1Handler (int fd, short event, void *user_data) function set_signal_handlers (line 1092) | static void function remove_pidfile (line 1104) | static void function write_pidfile (line 1112) | static int function on_seaf_server_exit (line 1141) | static void function test_seafile_config (line 1174) | int function main (line 1204) | int FILE: server/seafile-session.c function load_fileserver_config (line 35) | static void function load_config (line 109) | static int function SeafileSession (line 190) | SeafileSession * function SeafileSession (line 347) | SeafileSession * function seafile_session_init (line 436) | int function seafile_session_start (line 484) | int function set_system_default_repo_id (line 539) | int function del_system_default_repo_id (line 549) | static int function copy_template_files_recursive (line 558) | static void function schedule_create_system_default_repo (line 663) | void FILE: server/seafile-session.h type _CcnetClient (line 38) | struct _CcnetClient type SeafileSession (line 40) | typedef struct _SeafileSession SeafileSession; type _SeafileSession (line 43) | struct _SeafileSession { FILE: server/share-mgr.c function SeafShareManager (line 15) | SeafShareManager * function seaf_share_manager_start (line 25) | int function seaf_share_manager_add_share (line 87) | int function seaf_share_manager_set_subdir_perm_by_path (line 121) | int function seaf_share_manager_set_permission (line 146) | int function gboolean (line 168) | static gboolean function seaf_fill_repo_commit_if_not_in_db (line 239) | static void function GList (line 297) | GList* function gboolean (line 414) | static gboolean function GList (line 426) | GList * function gboolean (line 447) | static gboolean function GList (line 467) | GList * function gboolean (line 494) | static gboolean function GList (line 512) | GList * function gboolean (line 539) | static gboolean function gboolean (line 551) | static gboolean function GString (line 570) | static GString * function GHashTable (line 588) | GHashTable * function GHashTable (line 613) | GHashTable * function seaf_share_manager_remove_share (line 644) | int function seaf_share_manager_unshare_subdir (line 658) | int function seaf_share_manager_remove_repo (line 680) | int function gboolean (line 703) | static gboolean function GHashTable (line 715) | GHashTable * function seaf_share_manager_is_repo_shared (line 759) | int function GObject (line 789) | GObject * function seaf_share_manager_unshare_group_subdir (line 866) | int function gboolean (line 888) | gboolean function gboolean (line 914) | gboolean function GList (line 931) | GList * function GList (line 953) | GList * FILE: server/share-mgr.h type _SeafileSession (line 8) | struct _SeafileSession type SeafShareManager (line 10) | typedef struct _SeafShareManager SeafShareManager; type SeafShareManagerPriv (line 11) | typedef struct _SeafShareManagerPriv SeafShareManagerPriv; type ShareRepoInfo (line 12) | typedef struct _ShareRepoInfo ShareRepoInfo; type _SeafShareManager (line 14) | struct _SeafShareManager { type _SeafileSession (line 20) | struct _SeafileSession FILE: server/size-sched.c type SizeSchedulerPriv (line 14) | typedef struct SizeSchedulerPriv { type RepoSizeJob (line 20) | typedef struct RepoSizeJob { type RepoInfo (line 25) | typedef struct RepoInfo { function SizeScheduler (line 40) | SizeScheduler * function size_scheduler_start (line 83) | int function schedule_repo_size_computation (line 96) | void function compute_task (line 127) | static void function gboolean (line 137) | static gboolean get_head_id (SeafDBRow *row, void *data) function set_repo_size_and_file_count (line 148) | static int function gboolean (line 234) | static gboolean function RepoInfo (line 256) | static RepoInfo* function notify_repo_size_change (line 291) | static void FILE: server/size-sched.h type _SeafileSession (line 4) | struct _SeafileSession type SizeSchedulerPriv (line 6) | struct SizeSchedulerPriv type SizeScheduler (line 8) | typedef struct SizeScheduler { type _SeafileSession (line 15) | struct _SeafileSession FILE: server/upload-file.c type RecvState (line 33) | enum RecvState { type UploadError (line 40) | enum UploadError { type Progress (line 52) | typedef struct Progress { type RecvFSM (line 57) | typedef struct RecvFSM { function set_content_length_header (line 122) | static void function gint64 (line 137) | static gint64 function send_error_reply (line 148) | static void function send_success_reply (line 160) | static void function send_success_reply_ie8_compatible (line 170) | static void function send_reply_by_error_code (line 188) | static void function gboolean (line 220) | static gboolean function gboolean (line 269) | static gboolean function gboolean (line 318) | static gboolean function create_relative_path (line 363) | static int function gint64 (line 417) | static gint64 function upload_api_cb (line 433) | static void function upload_raw_blks_api_cb (line 647) | static void function upload_blks_api_cb (line 698) | static void function copy_block_to_tmp_file (line 953) | static int function write_block_data_to_tmp_file (line 990) | static int function upload_ajax_cb (line 1079) | static void function update_api_cb (line 1275) | static void function update_blks_api_cb (line 1435) | static void function update_ajax_cb (line 1695) | static void function evhtp_res (line 1828) | static evhtp_res function parse_mime_header (line 1945) | static int function open_temp_file (line 2017) | static int function evhtp_res (line 2043) | static evhtp_res function evhtp_res (line 2091) | static evhtp_res function evhtp_res (line 2122) | static evhtp_res function evhtp_res (line 2225) | static evhtp_res function check_access_token (line 2394) | static int function gboolean (line 2460) | static gboolean function get_progress_info (line 2510) | static int function evhtp_res (line 2535) | static evhtp_res function idx_progress_cb (line 2835) | static void function upload_progress_cb (line 2858) | static void function upload_file_init (line 2903) | int FILE: server/virtual-repo.c type MergeTask (line 29) | typedef struct MergeTask { type MergeScheduler (line 33) | typedef struct MergeScheduler { function save_virtual_repo_info (line 46) | static int function do_create_virtual_repo (line 64) | static int function update_repo_size (line 170) | static void function gboolean (line 408) | static gboolean function SeafVirtRepo (line 430) | SeafVirtRepo * function seaf_virtual_repo_info_free (line 445) | void function gboolean (line 454) | gboolean function gboolean (line 490) | static gboolean function GList (line 502) | GList * function GList (line 535) | GList * function gboolean (line 552) | static gboolean function GList (line 575) | GList * function set_virtual_repo_base_commit_path (line 593) | static void function seaf_repo_manager_merge_virtual_repo (line 603) | int function handle_missing_virtual_repo (line 635) | static void function seaf_repo_manager_cleanup_virtual_repos (line 757) | void function merge_virtual_repo_done (line 1046) | static void merge_virtual_repo_done (void *vtask) function schedule_merge_tasks (line 1055) | static int function gint (line 1104) | static gint task_cmp (gconstpointer a, gconstpointer b) function add_merge_task (line 1112) | static void function seaf_repo_manager_init_merge_scheduler (line 1132) | int function seaf_repo_manager_repair_virtual_repo (line 1152) | int FILE: server/web-accesstoken-mgr.c type WebATPriv (line 21) | struct WebATPriv { type WebATPriv (line 28) | typedef struct WebATPriv WebATPriv; type AccessInfo (line 32) | typedef struct { function free_access_info (line 41) | static void function SeafWebAccessTokenManager (line 54) | SeafWebAccessTokenManager* function gboolean (line 70) | static gboolean function clean_pulse (line 83) | static int function seaf_web_at_manager_start (line 99) | int function SeafileWebAccess (line 211) | SeafileWebAccess * FILE: server/web-accesstoken-mgr.h type _SeafileSession (line 6) | struct _SeafileSession type WebATPriv (line 8) | struct WebATPriv type _SeafWebAccessTokenManager (line 10) | struct _SeafWebAccessTokenManager { type SeafWebAccessTokenManager (line 14) | typedef struct _SeafWebAccessTokenManager SeafWebAccessTokenManager; type _SeafileSession (line 16) | struct _SeafileSession FILE: server/zip-download-mgr.c type ZipDownloadMgrPriv (line 21) | typedef struct ZipDownloadMgrPriv { function free_progress (line 31) | void type DownloadType (line 44) | typedef enum DownloadType { type DownloadObj (line 49) | typedef struct DownloadObj { function free_download_obj (line 62) | static void function ZipDownloadMgr (line 92) | ZipDownloadMgr * function remove_progress_by_token (line 122) | static void function scan_progress (line 130) | static int function SeafileCrypt (line 154) | static SeafileCrypt * function start_zip_task (line 183) | static void function parse_download_dir_data (line 227) | static int function parse_download_multi_data (line 265) | static int function gint64 (line 393) | static gint64 function calcuate_download_multi_file_count (line 429) | static int function gboolean (line 455) | static gboolean function get_download_file_count (line 495) | static int function zip_download_mgr_start_zip_task (line 518) | int function Progress (line 683) | static Progress * type ZipDownloadMgr (line 735) | struct ZipDownloadMgr function zip_download_mgr_del_zip_progress (line 762) | void function zip_download_mgr_cancel_zip_task (line 769) | int FILE: server/zip-download-mgr.h type ZipDownloadMgrPriv (line 10) | struct ZipDownloadMgrPriv type ZipDownloadMgr (line 12) | typedef struct ZipDownloadMgr { FILE: tests/conftest.py function wait_for_server (line 20) | def wait_for_server(): function create_users (line 25) | def create_users(): function encrypted_repo (line 41) | def encrypted_repo(): function repo (line 57) | def repo(): function group (line 71) | def group(): FILE: tests/test_file_operation/test_file_operation.py function create_the_file (line 17) | def create_the_file (): function test_file_operation (line 23) | def test_file_operation(in_batch): FILE: tests/test_file_operation/test_merge_virtual_repo.py function create_test_file (line 29) | def create_test_file(): function create_test_dir (line 37) | def create_test_dir(repo, dir_name): function assert_upload_response (line 41) | def assert_upload_response(response, replace, file_exist): function assert_resumable_upload_response (line 51) | def assert_resumable_upload_response(response, repo_id, file_name, uploa... function assert_update_response (line 64) | def assert_update_response(response, is_json): function request_resumable_upload (line 76) | def request_resumable_upload(filepath, headers,upload_url_base,parent_di... function write_file (line 95) | def write_file(file_path, file_content): function del_local_files (line 100) | def del_local_files(): function test_merge_virtual_repo (line 105) | def test_merge_virtual_repo(repo): FILE: tests/test_file_operation/test_search_files.py function create_the_file (line 12) | def create_the_file (): function test_file_operation (line 16) | def test_file_operation(): FILE: tests/test_file_operation/test_upload_and_update.py function create_test_file (line 29) | def create_test_file(): function create_test_dir (line 37) | def create_test_dir(repo, dir_name): function assert_upload_response (line 41) | def assert_upload_response(response, replace, file_exist): function assert_resumable_upload_response (line 51) | def assert_resumable_upload_response(response, repo_id, file_name, uploa... function assert_update_response (line 64) | def assert_update_response(response, is_json): function request_resumable_upload (line 76) | def request_resumable_upload(filepath, headers,upload_url_base,parent_di... function write_file (line 95) | def write_file(file_path, file_content): function del_repo_files (line 100) | def del_repo_files(repo_id): function del_local_files (line 106) | def del_local_files(): function test_ajax (line 111) | def test_ajax(repo): function test_api (line 280) | def test_api(repo): function test_ajax_mtime (line 519) | def test_ajax_mtime(repo): function test_api_mtime (line 540) | def test_api_mtime(repo): FILE: tests/test_file_operation/test_upload_large_files.py function create_test_file (line 33) | def create_test_file(): function create_test_dir (line 44) | def create_test_dir(repo, dir_name): function assert_upload_response (line 48) | def assert_upload_response(response): function assert_resumable_upload_response (line 55) | def assert_resumable_upload_response(response, repo_id, file_name, uploa... function request_resumable_upload (line 68) | def request_resumable_upload(filepath, headers,upload_url_base,parent_di... function write_file (line 84) | def write_file(file_path, file_content): function del_repo_files (line 89) | def del_repo_files(repo_id): function del_local_files (line 95) | def del_local_files(): function sha1sum (line 102) | def sha1sum(filepath): function chunked_sha1sum (line 106) | def chunked_sha1sum(chunked_part1, chunked_part2): function test_large_files_ajax (line 115) | def test_large_files_ajax(repo): function test_large_files_api (line 178) | def test_large_files_api(repo): FILE: tests/test_file_operation/test_zip_download.py function create_test_files (line 18) | def create_test_files(): function remove_test_files (line 25) | def remove_test_files(): function test_zip_download (line 30) | def test_zip_download(): FILE: tests/test_file_property_and_dir_listing/test_file_property_and_dir_listing.py function create_the_file (line 12) | def create_the_file (): function test_file_property_and_dir_listing (line 17) | def test_file_property_and_dir_listing (): FILE: tests/test_gc/test_gc.py function create_test_file (line 24) | def create_test_file(): function del_local_files (line 35) | def del_local_files(): function create_test_dir (line 40) | def create_test_dir(repo, dir_name): function run_gc (line 44) | def run_gc(repo_id, rm_fs, check): function test_gc_full_history (line 51) | def test_gc_full_history(repo, rm_fs): function test_gc_no_history (line 78) | def test_gc_no_history(repo, rm_fs): function test_gc_partial_history (line 107) | def test_gc_partial_history(repo, rm_fs): FILE: tests/test_get_repo_list/test_get_repo_list.py function assert_by_attr_name (line 13) | def assert_by_attr_name (repo, repo_to_test, attr): function assert_public_repos_attr (line 49) | def assert_public_repos_attr(repo, repo_to_test): function assert_group_repos_attr (line 69) | def assert_group_repos_attr(repo, repo_to_test): function test_get_group_repos (line 84) | def test_get_group_repos(repo, group): function test_get_inner_pub_repos (line 104) | def test_get_inner_pub_repos(repo): FILE: tests/test_group/test_groups.py function test_multi_tier_groups (line 8) | def test_multi_tier_groups(repo): FILE: tests/test_password/test_password.py function test_encrypted_repo (line 8) | def test_encrypted_repo(rpc, enc_version): function test_pwd_hash (line 54) | def test_pwd_hash(rpc, enc_version, algo, params): function test_upgrade_pwd_hash (line 86) | def test_upgrade_pwd_hash(enc_version, algo, params): FILE: tests/test_repo_manipulation/test_repo_manipulation.py function get_repo_list_order_by (line 5) | def get_repo_list_order_by(t_start, t_limit, order_by): function test_repo_manipulation (line 13) | def test_repo_manipulation(): FILE: tests/test_server_config/test_server_config.py function test_server_config (line 4) | def test_server_config(): FILE: tests/test_share_and_perm/test_shared_repo_perm.py function test_share_repo_to_user (line 11) | def test_share_repo_to_user(repo, permission): function test_share_repo_to_group (line 39) | def test_share_repo_to_group(repo, group, permission): function test_share_dir_to_user (line 103) | def test_share_dir_to_user(repo, permission): function test_share_dir_to_group (line 124) | def test_share_dir_to_group(repo, group, permission): function test_set_share_permission (line 147) | def test_set_share_permission(repo, permission_to_share, permission_to_... function set_group_repo_permission (line 159) | def set_group_repo_permission(repo, group, permission_to_share, permiss... function test_update_share_subdir_perm_for_user (line 172) | def test_update_share_subdir_perm_for_user(repo, permission_to_share, pe... function test_update_share_subdir_perm_for_group (line 182) | def test_update_share_subdir_perm_for_group(repo, group, permission_to_u... function test_get_shared_users_by_repo (line 193) | def test_get_shared_users_by_repo(repo, group, permission): function test_subdir_permission_in_virtual_repo (line 207) | def test_subdir_permission_in_virtual_repo(repo, group, permission): FILE: tests/test_share_and_perm/test_structure_repo_perm.py function test_repo_perm_in_structure (line 8) | def test_repo_perm_in_structure (repo, permission): FILE: tests/test_trashed_repos/test_trashed_repos.py function test_trashed_repos (line 5) | def test_trashed_repos(repo): FILE: tests/test_upload/test_upload.go type Options (line 17) | type Options struct function init (line 30) | func init() { function main (line 35) | func main() { function createForm (line 108) | func createForm(values map[string]io.Reader, name string) (io.Reader, st... function HttpCommon (line 133) | func HttpCommon(method, url string, header map[string][]string, reader i... function getToken (line 157) | func getToken() string { FILE: tests/test_user/test_users.py function test_user_management (line 7) | def test_user_management(repo): FILE: tests/utils.py function create_and_get_repo (line 8) | def create_and_get_repo(*a, **kw): function randstring (line 14) | def randstring(length=12): function create_and_get_group (line 17) | def create_and_get_group(*a, **kw): function assert_repo_with_permission (line 22) | def assert_repo_with_permission(r1, r2, permission):