static void seafile_applet_init (HINSTANCE hInstance) { applet->hInstance = hInstance; applet->WM_TASKBARCREATED = RegisterWindowMessage ("TaskbarCreated"); applet->client = ccnet_client_new (); applet->sync_client = ccnet_client_new (); applet->icon = trayicon_new (); trayicon_init (applet->icon); }
static void setup() { client = ccnet_client_new (); if ( ccnet_client_load_confdir(client, CCNET_DIR) < 0 ) { fprintf (stderr, "Read config dir error\n"); exit(1); } event_init (); if (g_access (TEST_DIR "worktree", F_OK) != 0 && g_mkdir (TEST_DIR "worktree", 0777) < 0) { fprintf (stderr, "Failed to create worktree.\n"); exit (1); } seaf = seafile_session_new (SEAF_DIR, WORKTREE_DIR, client); if (!seaf) { fprintf (stderr, "Failed to create seafile session.\n"); exit (1); } seafile_session_prepare (seaf); }
int main(int argc, char *argv[]) { int c; int verify = 0; config_dir = DEFAULT_CONFIG_DIR; while ((c = getopt_long(argc, argv, short_opts, long_opts, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); case 'v': exit(-1); break; case 'c': config_dir = strdup(optarg); break; case 'd': seafile_dir = strdup(optarg); break; case 'V': verify = 1; break; default: usage(); exit(-1); } } g_type_init(); ccnet_client = ccnet_client_new(); if ((ccnet_client_load_confdir(ccnet_client, config_dir)) < 0) { g_warning ("Read config dir error\n"); return -1; } if (seafile_dir == NULL) seafile_dir = g_build_filename (config_dir, "seafile-data", NULL); seaf = seafile_session_new(seafile_dir, ccnet_client); if (!seaf) { g_warning ("Failed to create seafile session.\n"); exit (1); } load_history_config (); if (verify) { verify_repos (); return 0; } gc_core_run (); return 0; }
static int seaf_controller_init (SeafileController *ctl, char *bin_dir, char *config_dir, char *seafile_dir, gboolean cloud_mode) { if (bin_dir) { if (!g_file_test (bin_dir, G_FILE_TEST_IS_DIR)) { seaf_warning ("invalid config_dir: %s\n", config_dir); return -1; } } if (!g_file_test (config_dir, G_FILE_TEST_IS_DIR)) { seaf_warning ("invalid config_dir: %s\n", config_dir); return -1; } if (!g_file_test (seafile_dir, G_FILE_TEST_IS_DIR)) { seaf_warning ("invalid seafile_dir: %s\n", seafile_dir); return -1; } ctl->client = ccnet_client_new (); ctl->sync_client = ccnet_client_new (); if (ccnet_client_load_confdir (ctl->client, config_dir) < 0) { seaf_warning ("Failed to load ccnet confdir\n"); return -1; } if (ccnet_client_load_confdir (ctl->sync_client, config_dir) < 0) { seaf_warning ("Failed to load ccnet confdir\n"); return -1; } ctl->config_dir = config_dir; ctl->bin_dir = bin_dir; ctl->seafile_dir = seafile_dir; ctl->cloud_mode = cloud_mode; init_pidfile_path(ctl); return 0; }
bool OpenLocalHelper::connectToCcnetDaemon() { sync_client_ = ccnet_client_new(); const QString ccnet_dir = defaultCcnetDir(); if (ccnet_client_load_confdir(sync_client_, toCStr(ccnet_dir)) < 0) { g_object_unref (sync_client_); sync_client_ = NULL; return false; } if (ccnet_client_connect_daemon(sync_client_, CCNET_CLIENT_SYNC) < 0) { g_object_unref (sync_client_); sync_client_ = NULL; return false; } return true; }
void SeafileRpcClient::connectDaemon() { sync_client_ = ccnet_client_new(); const QString config_dir = seafApplet->configurator()->ccnetDir(); if (ccnet_client_load_confdir(sync_client_, toCStr(config_dir)) < 0) { seafApplet->errorAndExit(tr("failed to load ccnet config dir %1").arg(config_dir)); } if (ccnet_client_connect_daemon(sync_client_, CCNET_CLIENT_SYNC) < 0) { return; } seafile_rpc_client_ = ccnet_create_rpc_client(sync_client_, NULL, kSeafileRpcService); ccnet_rpc_client_ = ccnet_create_rpc_client(sync_client_, NULL, kCcnetRpcService); qWarning("[Rpc Client] connected to daemon"); }
static CcnetClient * create_new_client (const char *conf_dir) { CcnetClient *client; client = ccnet_client_new (); if (ccnet_client_load_confdir (client, conf_dir) < 0) { g_warning ("[Sea RPC] Failed to load conf dir.\n"); g_object_unref (client); return NULL; } if (ccnet_client_connect_daemon (client, CCNET_CLIENT_SYNC) < 0) { g_warning ("[Sea RPC] Failed to connect ccnet.\n"); g_object_unref (client); return NULL; } return client; }
static void create_sync_rpc_clients (const char *config_dir) { CcnetClient *sync_client; /* sync client and rpc client */ sync_client = ccnet_client_new (); if ( (ccnet_client_load_confdir(sync_client, config_dir)) < 0 ) { seaf_warning ("Read config dir error\n"); exit(1); } if (ccnet_client_connect_daemon (sync_client, CCNET_CLIENT_SYNC) < 0) { seaf_warning ("Connect to server fail: %s\n", strerror(errno)); exit(1); } ccnetrpc_client = ccnet_create_rpc_client (sync_client, NULL, "ccnet-rpcserver"); }
void DaemonManager::startCcnetDaemon() { sync_client_ = ccnet_client_new(); const QString config_dir = seafApplet->configurator()->ccnetDir(); const QByteArray path = config_dir.toUtf8(); if (ccnet_client_load_confdir(sync_client_, path.data()) < 0) { seafApplet->errorAndExit(tr("failed to load ccnet config dir %1").arg(config_dir)); } ccnet_daemon_ = new QProcess(this); connect(ccnet_daemon_, SIGNAL(started()), this, SLOT(onCcnetDaemonStarted())); connect(ccnet_daemon_, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(onCcnetDaemonExited())); QStringList args; args << "-c" << config_dir; ccnet_daemon_->start(RESOURCE_PATH(kCcnetDaemonExecutable), args); qDebug() << "starting ccnet: " << args; }
void MessageListener::connectDaemon() { async_client_ = ccnet_client_new(); const QString config_dir = seafApplet->configurator()->ccnetDir(); const QByteArray path = config_dir.toUtf8(); if (ccnet_client_load_confdir(async_client_, NULL, path.data()) < 0) { seafApplet->errorAndExit(tr("failed to load ccnet config dir ").append(config_dir)); } if (ccnet_client_connect_daemon(async_client_, CCNET_CLIENT_ASYNC) < 0) { return; } socket_notifier_ = new QSocketNotifier(async_client_->connfd, QSocketNotifier::Read); connect(socket_notifier_, SIGNAL(activated(int)), this, SLOT(readConnfd())); qWarning("[MessageListener] connected to daemon"); startMqClient(); }
void do_stop() { CcnetClient *sync_client = ccnet_client_new(); const QString ccnet_dir = defaultCcnetDir(); if (ccnet_client_load_confdir(sync_client, NULL, toCStr(ccnet_dir)) < 0) { return; } if (ccnet_client_connect_daemon(sync_client, CCNET_CLIENT_SYNC) < 0) { return; } CcnetMessage *quit_message; quit_message = ccnet_message_new (sync_client->base.id, sync_client->base.id, kAppletCommandsMQ, "quit", 0); ccnet_client_send_message(sync_client, quit_message); ccnet_message_free(quit_message); g_object_unref (sync_client); }
/** * Inititialize ccnet client structure, connect daemon and initialize * event loop. */ CcnetClient * ccnet_init (const char *confdir) { CcnetClient *client; client = ccnet_client_new (); if ( (ccnet_client_load_confdir(client, confdir)) < 0 ) { ccnet_warning ("Read config dir error\n"); return NULL; } if (ccnet_client_connect_daemon (client, CCNET_CLIENT_ASYNC) < 0) { ccnet_warning ("Connect to ccnet daemon error\n"); exit(1); } ccnet_client_run_synchronizer (client); event_init (); return client; }
/* * Bind to an unused service to make sure only one instance of seaf-daemon * is running. */ static gboolean bind_ccnet_service (const char *config_dir) { gboolean ret = TRUE; bind_client = ccnet_client_new (); if ( (ccnet_client_load_confdir(bind_client, config_dir)) < 0 ) { seaf_warning ("Read config dir error\n"); exit(1); } if (ccnet_client_connect_daemon (bind_client, CCNET_CLIENT_SYNC) < 0) { seaf_warning ("Connect to server fail: %s\n", strerror(errno)); exit(1); } if (!ccnet_register_service_sync (bind_client, "seafile-dummy-service", "rpc-inner")) ret = FALSE; return ret; }
int main(int argc, char *argv[]) { struct cmd *c; #if !GLIB_CHECK_VERSION(2, 36, 0) g_type_init (); #endif config_dir = DEFAULT_CONFIG_DIR; if (argc == 1) { usage(); exit(1); } GError *error = NULL; GOptionContext *context; context = g_option_context_new (NULL); g_option_context_add_main_entries (context, entries, NULL); g_option_context_set_ignore_unknown_options (context, TRUE); if (!g_option_context_parse (context, &argc, &argv, &error)) { g_print ("option parsing failed: %s\n", error->message); exit (1); } if (print_version) { show_version(); exit(0); } if (argc <= 1) { usage(); exit(1); } c = getcmd (argv[1]); if (c == NULL) { usage(); exit(1); } g_log_set_default_handler (ccnet_servtool_log, NULL); client = ccnet_client_new (); if ( (ccnet_client_load_confdir(client, central_config_dir, config_dir)) < 0 ) { fprintf (stderr, "Read config dir error\n"); exit(1); } if (ccnet_client_connect_daemon (client, CCNET_CLIENT_SYNC) < 0) { fprintf(stderr, "Connect to server fail: %s\n", strerror(errno)); exit(1); } argc -= 2; argv += 2; c->handler (argc, argv); ccnet_client_disconnect_daemon (client); return 0; }
int main (int argc, char *argv[]) { struct cmd *c; #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif config_dir = DEFAULT_CONFIG_DIR; if (argc == 1) { usage(); exit(1); } GError *error = NULL; GOptionContext *context; context = g_option_context_new (NULL); g_option_context_add_main_entries (context, entries, "seafile"); if (!g_option_context_parse (context, &argc, &argv, &error)) { g_print ("option parsing failed: %s\n", error->message); exit (1); } if (print_version) { show_version(); exit(1); } if (argc <= 1) { usage(); exit(1); } c = getcmd (argv[1]); if (c == NULL) { usage(); exit(1); } client = ccnet_client_new (); if ( (ccnet_client_load_confdir(client, config_dir)) < 0 ) { fprintf (stderr, "Read config dir error\n"); exit(1); } if (ccnet_client_connect_daemon(client, CCNET_CLIENT_SYNC) < 0) { fprintf(stderr, "Connect to server fail: %s\n", strerror(errno)); exit(1); } rpc_client = ccnet_create_rpc_client (client, NULL, "seafserv-rpcserver"); threaded_rpc_client = ccnet_create_rpc_client (client, NULL, "seafserv-threaded-rpcserver"); argc -= 2; argv += 2; c->handler (argc, argv); ccnet_client_disconnect_daemon (client); return 0; }
int main(int argc, char *argv[]) { int c; int verify = 0; int dry_run = 0; int ignore_errors = 0; #ifdef WIN32 argv = get_argv_utf8 (&argc); #endif config_dir = DEFAULT_CONFIG_DIR; while ((c = getopt_long(argc, argv, short_opts, long_opts, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); case 'v': exit(-1); break; case 'c': config_dir = strdup(optarg); break; case 'd': seafile_dir = strdup(optarg); break; case 'V': verify = 1; break; case 'D': dry_run = 1; break; case 'i': ignore_errors = 1; break; default: usage(); exit(-1); } } #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif if (seafile_log_init ("-", "info", "debug") < 0) { seaf_warning ("Failed to init log.\n"); exit (1); } ccnet_client = ccnet_client_new(); if ((ccnet_client_load_confdir(ccnet_client, config_dir)) < 0) { seaf_warning ("Read config dir error\n"); return -1; } if (seafile_dir == NULL) seafile_dir = g_build_filename (config_dir, "seafile-data", NULL); seaf = seafile_session_new(seafile_dir, ccnet_client); if (!seaf) { seaf_warning ("Failed to create seafile session.\n"); exit (1); } load_history_config (); if (verify) { verify_repos (); return 0; } gc_core_run (dry_run, ignore_errors); return 0; }
int main (int argc, char *argv[]) { struct cmd *c; g_type_init (); config_dir = DEFAULT_CONFIG_DIR; if (argc == 1) { usage(); exit(1); } GError *error = NULL; GOptionContext *context; context = g_option_context_new (NULL); g_option_context_add_main_entries (context, entries, "seafile"); if (!g_option_context_parse (context, &argc, &argv, &error)) { g_print ("option parsing failed: %s\n", error->message); exit (1); } if (print_version) { show_version(); exit(1); } if (argc <= 1) { usage(); exit(1); } c = getcmd (argv[1]); if (c == NULL) { usage(); exit(1); } client = ccnet_client_new (); if ( (ccnet_client_load_confdir(client, central_config_dir, config_dir)) < 0 ) { fprintf (stderr, "Read config dir error\n"); exit(1); } if (ccnet_client_connect_daemon(client, CCNET_CLIENT_SYNC) < 0) { fprintf(stderr, "Connect to server fail: %s\n", strerror(errno)); exit(1); } priv.session = client; priv.peer_id = NULL; priv.service = "monitor"; rpc_client = searpc_client_new (); rpc_client->transport = searpc_transport_send; rpc_client->arg = &priv; argc -= 2; argv += 2; c->handler (argc, argv); ccnet_client_disconnect_daemon (client); return 0; }
int main(int argc, char *argv[]) { evbase_t *evbase = NULL; evhtp_t *htp = NULL; int daemon_mode = 1; int c; char *logfile = NULL; char *ccnet_debug_level_str = "info"; char *http_debug_level_str = "debug"; const char *debug_str = NULL; config_dir = DEFAULT_CONFIG_DIR; while ((c = getopt_long(argc, argv, short_opts, long_opts, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); case 'v': exit(-1); break; case 'c': config_dir = strdup(optarg); break; case 'd': seafile_dir = strdup(optarg); break; case 'p': bind_port = atoi(optarg); break; case 'b': bind_addr = strdup(optarg); break; case 't': num_threads = atoi(optarg); break; case 'r': root_dir = strdup(optarg); break; case 'f': daemon_mode = 0; break; case 'l': logfile = g_strdup(optarg); break; case 'g': ccnet_debug_level_str = optarg; break; case 'G': http_debug_level_str = optarg; break; case 'D': debug_str = optarg; break; default: usage(); exit(-1); } } #ifndef WIN32 if (daemon_mode) daemon(1, 0); #endif g_type_init(); ccnet_client = ccnet_client_new(); if ((ccnet_client_load_confdir(ccnet_client, config_dir)) < 0) { g_warning ("Read config dir error\n"); return -1; } if (seafile_dir == NULL) seafile_dir = g_build_filename (config_dir, "seafile-data", NULL); if (logfile == NULL) logfile = g_build_filename (seafile_dir, "http.log", NULL); seaf = seafile_session_new(seafile_dir, ccnet_client); if (!seaf) { g_warning ("Failed to create seafile session.\n"); exit (1); } seafile_session_init(seaf); seaf->client_pool = ccnet_client_pool_new (config_dir); if (!debug_str) debug_str = g_getenv("SEAFILE_DEBUG"); seafile_debug_set_flags_string (debug_str); if (seafile_log_init (logfile, ccnet_debug_level_str, http_debug_level_str) < 0) { g_warning ("Failed to init log.\n"); exit (1); } evbase = event_base_new(); htp = evhtp_new(evbase, NULL); if (access_file_init (htp) < 0) exit (1); if (upload_file_init (htp) < 0) exit (1); evhtp_set_gencb(htp, default_cb, NULL); evhtp_use_threads(htp, NULL, num_threads, NULL); if (evhtp_bind_socket(htp, bind_addr, bind_port, 128) < 0) { g_warning ("Could not bind socket: %s\n", strerror(errno)); exit(-1); } event_base_loop(evbase, 0); return 0; }
int main(int argc, char *argv[]) { int c; gboolean dry_run = FALSE; gboolean strict = FALSE; #ifdef WIN32 argv = get_argv_utf8 (&argc); #endif config_dir = DEFAULT_CONFIG_DIR; while ((c = getopt_long(argc, argv, short_opts, long_opts, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); case 'v': exit(-1); break; case 'c': config_dir = strdup(optarg); break; case 'd': seafile_dir = strdup(optarg); break; case 'D': dry_run = TRUE; break; case 's': strict = TRUE; break; default: usage(); exit(-1); } } #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif if (seafile_log_init ("-", "info", "debug") < 0) { seaf_warning ("Failed to init log.\n"); exit (1); } ccnet_client = ccnet_client_new(); if ((ccnet_client_load_confdir(ccnet_client, config_dir)) < 0) { seaf_warning ("Read config dir error\n"); return -1; } if (seafile_dir == NULL) seafile_dir = g_build_filename (config_dir, "seafile-data", NULL); seaf = seafile_session_new(seafile_dir, ccnet_client); if (!seaf) { seaf_warning ("Failed to create seafile session.\n"); exit (1); } GList *repo_id_list = NULL; int i; for (i = optind; i < argc; i++) repo_id_list = g_list_append (repo_id_list, g_strdup(argv[i])); seaf_fsck (repo_id_list, dry_run, strict); return 0; }
int main(int argc, char *argv[]) { int c; int verbose = 0; int dry_run = 0; int rm_garbage = 0; #ifdef WIN32 argv = get_argv_utf8 (&argc); #endif config_dir = DEFAULT_CONFIG_DIR; while ((c = getopt_long(argc, argv, short_opts, long_opts, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); case 'v': exit(-1); break; case 'c': config_dir = strdup(optarg); break; case 'd': seafile_dir = strdup(optarg); break; case 'F': central_config_dir = strdup(optarg); break; case 'V': verbose = 1; break; case 'D': dry_run = 1; break; case 'r': rm_garbage = 1; break; default: usage(); exit(-1); } } #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif if (seafile_log_init ("-", "info", "debug") < 0) { seaf_warning ("Failed to init log.\n"); exit (1); } ccnet_client = ccnet_client_new(); if ((ccnet_client_load_confdir(ccnet_client, central_config_dir, config_dir)) < 0) { seaf_warning ("Read config dir error\n"); return -1; } if (seafile_dir == NULL) seafile_dir = g_build_filename (config_dir, "seafile-data", NULL); seaf = seafile_session_new(central_config_dir, seafile_dir, ccnet_client); if (!seaf) { seaf_warning ("Failed to create seafile session.\n"); exit (1); } if (rm_garbage) { delete_garbaged_repos (!rm_garbage); return 0; } load_history_config (); GList *repo_id_list = NULL; int i; for (i = optind; i < argc; i++) repo_id_list = g_list_append (repo_id_list, g_strdup(argv[i])); gc_core_run (repo_id_list, dry_run, verbose); return 0; }
int main(int argc, char *argv[]) { evbase_t *evbase = NULL; evhtp_t *htp = NULL; int daemon_mode = 1; int c; char *logfile = NULL; char *ccnet_debug_level_str = "info"; char *http_debug_level_str = "debug"; const char *debug_str = NULL; char *temp_file_dir = NULL; #ifdef WIN32 argv = get_argv_utf8 (&argc); #endif config_dir = DEFAULT_CONFIG_DIR; while ((c = getopt_long(argc, argv, short_opts, long_opts, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); case 'v': exit(-1); break; case 'c': config_dir = strdup(optarg); break; case 'd': seafile_dir = strdup(optarg); break; case 't': num_threads = atoi(optarg); break; case 'f': daemon_mode = 0; break; case 'l': logfile = g_strdup(optarg); break; case 'g': ccnet_debug_level_str = optarg; break; case 'G': http_debug_level_str = optarg; break; case 'D': debug_str = optarg; break; case 'k': temp_file_dir = optarg; break; case 'P': pidfile = optarg; break; default: usage(); exit(-1); } } #if !defined(WIN32) && !defined(__APPLE__) if (daemon_mode) daemon(1, 0); #endif #ifdef WIN32 WSADATA wsadata; WSAStartup(0x0101, &wsadata); #endif #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif if (!debug_str) debug_str = g_getenv("SEAFILE_DEBUG"); seafile_debug_set_flags_string (debug_str); if (seafile_dir == NULL) seafile_dir = g_build_filename (config_dir, "seafile-data", NULL); if (logfile == NULL) logfile = g_build_filename (seafile_dir, "http.log", NULL); if (seafile_log_init (logfile, ccnet_debug_level_str, http_debug_level_str) < 0) { g_warning ("Failed to init log.\n"); exit (1); } ccnet_client = ccnet_client_new(); if ((ccnet_client_load_confdir(ccnet_client, config_dir)) < 0) { g_warning ("Read config dir error\n"); return -1; } seaf = seafile_session_new (seafile_dir, ccnet_client); if (!seaf) { g_warning ("Failed to create seafile session.\n"); exit (1); } if (seafile_session_init(seaf) < 0) exit (1); if (temp_file_dir == NULL) seaf->http_temp_dir = g_build_filename (seaf->seaf_dir, "httptemp", NULL); else seaf->http_temp_dir = g_strdup(temp_file_dir); seaf->client_pool = ccnet_client_pool_new (config_dir); load_httpserver_config (seaf); if (use_https) { seaf_message ("host = %s, port = %d, https = true, pemfile = %s, privkey = %s\n", bind_addr, bind_port, pemfile, privkey); } else { seaf_message ("host = %s, port = %d, https = false\n", bind_addr, bind_port); } evbase = event_base_new(); htp = evhtp_new(evbase, NULL); if (pemfile != NULL) { evhtp_ssl_cfg_t scfg; memset (&scfg, 0, sizeof(scfg)); scfg.pemfile = pemfile; scfg.privfile = privkey; scfg.scache_type = evhtp_ssl_scache_type_internal; scfg.scache_timeout = 5000; evhtp_ssl_init (htp, &scfg); } if (access_file_init (htp) < 0) exit (1); if (upload_file_init (htp) < 0) exit (1); evhtp_set_gencb(htp, default_cb, NULL); evhtp_use_threads(htp, NULL, num_threads, NULL); if (evhtp_bind_socket(htp, bind_addr, bind_port, 128) < 0) { g_warning ("Could not bind socket: %s\n", strerror(errno)); exit(-1); } if (pidfile) { if (write_pidfile (pidfile) < 0) { seaf_message ("Failed to write pidfile\n"); return -1; } } atexit (on_httpserver_exit); event_base_loop(evbase, 0); return 0; }
int main(int argc, char *argv[]) { int c; gboolean repair = FALSE; gboolean esync = FALSE; char *export_path = NULL; #ifdef WIN32 argv = get_argv_utf8 (&argc); #endif config_dir = DEFAULT_CONFIG_DIR; while ((c = getopt_long(argc, argv, short_opts, long_opts, NULL)) != EOF) { switch (c) { case 'h': usage(); exit(0); case 'v': exit(-1); break; case 'r': repair = TRUE; break; case 'e': esync = TRUE; break; case 'E': export_path = strdup(optarg); break; case 'c': config_dir = strdup(optarg); break; case 'd': seafile_dir = strdup(optarg); break; default: usage(); exit(-1); } } #if !GLIB_CHECK_VERSION(2, 35, 0) g_type_init(); #endif if (seafile_log_init ("-", "info", "debug") < 0) { seaf_warning ("Failed to init log.\n"); exit (1); } ccnet_client = ccnet_client_new(); if ((ccnet_client_load_confdir(ccnet_client, config_dir)) < 0) { seaf_warning ("Read config dir error\n"); return -1; } if (seafile_dir == NULL) seafile_dir = g_build_filename (config_dir, "seafile-data", NULL); #ifdef __linux__ uid_t current_user, seafile_user; if (!check_user (seafile_dir, ¤t_user, &seafile_user)) { seaf_message ("Current user (%u) is not the user for running " "seafile server (%u). Unable to run fsck.\n", current_user, seafile_user); exit(1); } #endif seaf = seafile_session_new(seafile_dir, ccnet_client); if (!seaf) { seaf_warning ("Failed to create seafile session.\n"); exit (1); } GList *repo_id_list = NULL; int i; for (i = optind; i < argc; i++) repo_id_list = g_list_append (repo_id_list, g_strdup(argv[i])); if (export_path) { export_file (repo_id_list, seafile_dir, export_path); } else { seaf_fsck (repo_id_list, repair, esync); } return 0; }
int main (int argc, char *argv[]) { struct cmd *c; g_type_init (); config_dir = DEFAULT_CONFIG_DIR; if (argc == 1) { usage(); exit(1); } int i = 0; /* first convert command line args to utf8 */ for (i = 1; i < argc; i++) { argv[i] = ccnet_locale_to_utf8 (argv[i]); if (!argv[i]) return -1; } GError *error = NULL; GOptionContext *context; context = g_option_context_new (NULL); g_option_context_add_main_entries (context, entries, "seafile"); /* pass remaining options to handlers */ g_option_context_set_ignore_unknown_options (context, TRUE); if (!g_option_context_parse (context, &argc, &argv, &error)) { g_print ("option parsing failed: %s\n", error->message); exit (1); } if (print_version) { show_version(); exit(1); } if (argc <= 1) { usage(); exit(1); } c = getcmd (argv[1]); if (c == NULL) { usage(); exit(1); } g_log_set_default_handler (seafile_log, NULL); client = ccnet_client_new (); if ( (ccnet_client_load_confdir(client, config_dir)) < 0 ) { fprintf (stderr, "Read config dir error\n"); exit(1); } if (ccnet_client_connect_daemon (client, CCNET_CLIENT_SYNC) < 0) { fprintf(stderr, "Connect to server fail: %s\n", strerror(errno)); exit(1); } rpc_client = ccnet_create_rpc_client (client, NULL, "seafile-rpcserver"); threaded_rpc_client = ccnet_create_rpc_client (client, NULL, "seafile-threaded-rpcserver"); argc -= 1; argv += 1; int ret = c->handler (argc, argv); ccnet_client_disconnect_daemon (client); return ret ; }