本文整理汇总了C++中ccnet_processor_send_response函数的典型用法代码示例。如果您正苦于以下问题:C++ ccnet_processor_send_response函数的具体用法?C++ ccnet_processor_send_response怎么用?C++ ccnet_processor_send_response使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ccnet_processor_send_response函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: start
static int
start (CcnetProcessor *processor, int argc, char **argv)
{
if (argc != 2) {
g_warning ("[notifysync-slave] argc(%d) must be 2\n", argc);
ccnet_processor_done (processor, FALSE);
return -1;
}
const char *repo_id = argv[0];
const char *token = argv[1];
seaf_debug ("[notifysync-slave] Receive notify sync repo %s from %s\n",
repo_id, processor->peer_id);
if (!seaf_repo_manager_repo_exists (seaf->repo_mgr, repo_id)) {
ccnet_processor_send_response (processor, SC_BAD_REPO, SS_BAD_REPO, NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
seaf_sync_manager_add_sync_task (seaf->sync_mgr, repo_id,
processor->peer_id,
token, TRUE, NULL);
ccnet_processor_send_response (processor, SC_OK, SS_OK,
NULL, 0);
ccnet_processor_done (processor, TRUE);
return 0;
}
示例2: start
static int
start (CcnetProcessor *processor, int argc, char **argv)
{
char *session_token;
USE_PRIV;
if (argc != 1) {
ccnet_processor_send_response (processor, SC_BAD_ARGS, SS_BAD_ARGS, NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
session_token = argv[0];
if (seaf_token_manager_verify_token (seaf->token_mgr,
processor->peer_id,
session_token, NULL) == 0) {
ccnet_processor_send_response (processor, SC_OK, SS_OK, NULL, 0);
processor->state = RECV_ROOT;
priv->dir_queue = g_queue_new ();
register_async_io (processor);
return 0;
} else {
ccnet_processor_send_response (processor,
SC_ACCESS_DENIED, SS_ACCESS_DENIED,
NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
}
示例3: thread_done
static void
thread_done (void *result)
{
CcnetProcessor *processor = result;
USE_PRIV;
if (processor->delay_shutdown) {
ccnet_processor_done (processor, FALSE);
return;
}
if (strcmp (priv->rsp_code, SC_OK) == 0) {
if (priv->has_branch) {
ccnet_processor_send_response (processor,
SC_OK, SS_OK,
priv->head_id, 41);
} else
ccnet_processor_send_response (processor, SC_OK, SS_OK, NULL, 0);
processor->state = ACCESS_GRANTED;
} else {
ccnet_processor_send_response (processor,
priv->rsp_code, priv->rsp_msg,
NULL, 0);
ccnet_processor_done (processor, FALSE);
}
}
示例4: computation_finished
static void
computation_finished (CcnetProcessor *processor,
int status,
char *message)
{
USE_PRIV;
g_ptr_array_free (priv->block_ids, TRUE);
priv->block_ids = NULL;
g_message ("Finished computing size of repo %s.\n", priv->repo_id);
/* Store repo size into database.
*/
if (seaf_monitor_set_repo_size (singleton_monitor,
priv->repo_id,
priv->repo_size,
priv->is_accurate,
priv->head) < 0) {
ccnet_processor_send_response (processor,
SC_DB_ERROR, SS_DB_ERROR,
NULL, 0);
ccnet_processor_done (processor, FALSE);
}
ccnet_processor_send_response (processor, SC_FINISHED, SS_FINISHED, NULL, 0);
ccnet_processor_done (processor, TRUE);
}
示例5: start
static int
start (CcnetProcessor *processor, int argc, char **argv)
{
USE_PRIV;
if (argc != 2 || strlen(argv[0]) != 36 || strlen(argv[1]) != 40) {
ccnet_processor_send_response (processor, SC_BAD_ARGS, SS_BAD_ARGS, NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
if (seaf_monitor_is_repo_size_uptodate (singleton_monitor,
argv[0], argv[1])) {
g_message ("repo size %s is up-to-date.\n", argv[0]);
ccnet_processor_send_response (processor, SC_FINISHED, SS_FINISHED, NULL, 0);
ccnet_processor_done (processor, TRUE);
return 0;
}
memcpy (priv->repo_id, argv[0], 41);
memcpy (priv->head, argv[1], 41);
priv->block_ids = g_ptr_array_new_with_free_func (g_free);
priv->is_accurate = 1;
ccnet_processor_send_response (processor, SC_OK, SS_OK, NULL, 0);
return 0;
}
示例6: thread_done
static void
thread_done (void *result)
{
CcnetProcessor *processor = result;
USE_PRIV;
if (processor->delay_shutdown) {
ccnet_processor_done (processor, FALSE);
return;
}
if (strcmp (priv->rsp_code, SC_OK) == 0) {
/* Repo is updated, trigger repo size computation. */
if (seaf->monitor_id != NULL &&
(strcmp (seaf->monitor_id, seaf->session->base.id) == 0 ||
ccnet_peer_is_ready (seaf->ccnetrpc_client, seaf->monitor_id)))
{
monitor_compute_repo_size_async_wrapper (seaf->monitor_id,
priv->repo_id,
compute_callback,
NULL);
}
ccnet_processor_send_response (processor, SC_OK, SS_OK, NULL, 0);
ccnet_processor_done (processor, TRUE);
} else {
ccnet_processor_send_response (processor,
priv->rsp_code, priv->rsp_msg,
NULL, 0);
ccnet_processor_done (processor, FALSE);
}
}
示例7: put_commit_start
static int
put_commit_start (CcnetProcessor *processor, int argc, char **argv)
{
char *commit_id;
char *session_token;
USE_PRIV;
if (argc != 2) {
ccnet_processor_send_response (processor, SC_BAD_ARGS, SS_BAD_ARGS, NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
session_token = argv[1];
if (seaf_token_manager_verify_token (seaf->token_mgr,
processor->peer_id,
session_token, NULL) < 0) {
ccnet_processor_send_response (processor,
SC_ACCESS_DENIED, SS_ACCESS_DENIED,
NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
commit_id = argv[0];
memcpy (priv->commit_id, commit_id, 41);
ccnet_processor_send_response (processor, SC_OK, SS_OK, NULL, 0);
return send_commit_ids (processor, commit_id);
}
示例8: response_challenge_user
static void response_challenge_user(CcnetProcessor *processor,
char *code, char *code_msg,
char *content, int clen)
{
unsigned char *buf;
int decrypt_len;
if (clen == 0) {
ccnet_warning("Peer %s(%.8s) send bad format challenge\n",
processor->peer->name, processor->peer->id);
ccnet_processor_send_response (
processor, SC_BAD_CHALLENGE, SS_BAD_CHALLENGE, NULL, 0);
ccnet_processor_done(processor, FALSE);
return;
}
buf = private_key_decrypt(processor->session->user_privkey,
(unsigned char *)content, clen, &decrypt_len);
if (decrypt_len < 0) {
ccnet_processor_send_response (
processor, SC_DECRYPT_ERROR, SS_DECRYPT_ERROR, NULL, 0);
ccnet_processor_done(processor, FALSE);
} else
ccnet_processor_send_response (
processor, code, "", (char *)buf, decrypt_len);
g_free(buf);
}
示例9: send_repo_branch_info
static int
send_repo_branch_info (CcnetProcessor *processor, const char *repo_id,
const char *branch)
{
SeafRepo *repo;
SeafBranch *seaf_branch;
repo = seaf_repo_manager_get_repo (seaf->repo_mgr, repo_id);
if (!repo) {
ccnet_processor_send_response (processor, SC_NO_REPO, SS_NO_REPO,
NULL, 0);
return 0;
}
seaf_branch = seaf_branch_manager_get_branch (seaf->branch_mgr,
repo_id, branch);
if (seaf_branch == NULL) {
ccnet_processor_send_response (processor, SC_NO_BRANCH, SS_NO_BRANCH,
NULL, 0);
return -1;
}
ccnet_processor_send_response (processor, SC_COMMIT_ID, SS_COMMIT_ID,
seaf_branch->commit_id, 41);
seaf_branch_unref (seaf_branch);
return 0;
}
示例10: thread_done
static void
thread_done (void *result)
{
CcnetProcessor *processor = result;
USE_PRIV;
if (strcmp (priv->rsp_code, SC_OK) == 0) {
if (priv->has_branch) {
ccnet_processor_send_response (processor,
SC_OK, SS_OK,
priv->head_id, 41);
} else
ccnet_processor_send_response (processor, SC_OK, SS_OK, NULL, 0);
processor->state = ACCESS_GRANTED;
if (priv->type == CHECK_TX_TYPE_DOWNLOAD)
publish_repo_event (processor, "repo-download-sync");
else if (priv->type == CHECK_TX_TYPE_UPLOAD)
publish_repo_event (processor, "repo-upload-sync");
} else {
ccnet_processor_send_response (processor,
priv->rsp_code, priv->rsp_msg,
NULL, 0);
ccnet_processor_done (processor, FALSE);
}
}
示例11: ccnet_service_proxy_invoke_remote
void
ccnet_service_proxy_invoke_remote (CcnetProcessor *processor,
CcnetPeer *remote,
int argc, char **argv)
{
CcnetServiceStubProc *stub_proc;
ServiceProxyPriv *priv = GET_PRIV(processor);
if (argc < 1) {
ccnet_processor_send_response (processor, SC_BAD_CMD_FMT,
SS_BAD_CMD_FMT, NULL, 0);
ccnet_processor_done (processor, FALSE);
return;
}
priv->name = proc_name_strjoin_n(" ", argc, argv);
stub_proc = CCNET_SERVICE_STUB_PROC (
ccnet_proc_factory_create_master_processor (
processor->session->proc_factory, "service-stub", remote)
);
priv->stub_proc = stub_proc;
ccnet_service_stub_proc_set_proxy_proc (stub_proc, processor);
/* Start can fail if the remote end is not connected. */
if (ccnet_processor_start (CCNET_PROCESSOR(stub_proc), argc, argv) < 0) {
ccnet_processor_send_response (processor, SC_PROC_DEAD, SS_PROC_DEAD,
NULL, 0);
ccnet_processor_done (processor, FALSE);
}
}
示例12: process_object_list_done
static void
process_object_list_done (void *data)
{
CcnetProcessor *processor = data;
USE_PRIV;
if (priv->n_needed == 0) {
ccnet_processor_send_response (processor,
SC_OBJ_LIST_SEG, SS_OBJ_LIST_SEG,
NULL, 0);
return;
}
char *buf = g_malloc (priv->n_needed * 40);
char *p;
char *obj_id;
GList *ptr;
p = buf;
for (ptr = priv->needed_objs; ptr; ptr = ptr->next) {
obj_id = ptr->data;
memcpy (p, obj_id, 40);
p += 40;
}
ccnet_processor_send_response (processor,
SC_OBJ_LIST_SEG, SS_OBJ_LIST_SEG,
buf, priv->n_needed * 40);
g_free (buf);
string_list_free (priv->needed_objs);
priv->needed_objs = NULL;
priv->n_needed = 0;
}
示例13: start
static int
start (CcnetProcessor *processor, int argc, char **argv)
{
char *session_token;
USE_PRIV;
if (argc != 1) {
ccnet_processor_send_response (processor, SC_BAD_ARGS, SS_BAD_ARGS, NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
session_token = argv[0];
if (seaf_token_manager_verify_token (seaf->token_mgr,
NULL,
processor->peer_id,
session_token, priv->repo_id) == 0) {
ccnet_processor_thread_create (processor,
seaf->job_mgr,
get_repo_info_thread,
get_repo_info_done,
processor);
return 0;
} else {
ccnet_processor_send_response (processor,
SC_ACCESS_DENIED, SS_ACCESS_DENIED,
NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
}
示例14: send_commit
static gboolean
send_commit (CcnetProcessor *processor, char *object_id)
{
char *data;
int len;
ObjectPack *pack = NULL;
int pack_size;
if (seaf_obj_store_read_obj (seaf->commit_mgr->obj_store,
object_id, (void**)&data, &len) < 0) {
g_warning ("Failed to read commit %s.\n", object_id);
goto fail;
}
pack_size = sizeof(ObjectPack) + len;
pack = malloc (pack_size);
memcpy (pack->id, object_id, 41);
memcpy (pack->object, data, len);
ccnet_processor_send_response (processor, SC_OBJECT, SS_OBJECT,
(char *)pack, pack_size);
g_free (data);
free (pack);
return TRUE;
fail:
ccnet_processor_send_response (processor, SC_NOT_FOUND, SS_NOT_FOUND,
object_id, 41);
ccnet_processor_done (processor, FALSE);
return FALSE;
}
示例15: start
static int
start (CcnetProcessor *processor, int argc, char **argv)
{
USE_PRIV;
if (processor->peer->session_key) {
ccnet_processor_send_response (processor,
SC_ALREADY_HAS_KEY,
SS_ALREADY_HAS_KEY,
NULL, 0);
ccnet_processor_done (processor, FALSE);
return -1;
}
if (argc == 1 && g_strcmp0(argv[0], "--enc-channel") == 0)
priv->encrypt_channel = 1;
else
priv->encrypt_channel = 0;
ccnet_processor_send_response (processor,
SC_SESSION_KEY, SS_SESSION_KEY,
NULL, 0);
return 0;
}