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); }
static int put_commit_start (CcnetProcessor *processor, int argc, char **argv) { char *commit_id; 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; } 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); }
static void handle_response (CcnetProcessor *processor, char *code, char *code_msg, char *content, int clen) { SeafileSendcommitProc *proc = (SeafileSendcommitProc *)processor; TransferTask *task = proc->tx_task; if (task->state != TASK_STATE_NORMAL) { /* TODO: not tested yet */ ccnet_processor_send_update (processor, SC_SHUTDOWN, SS_SHUTDOWN, NULL, 0); ccnet_processor_done (processor, TRUE); return; } switch (processor->state) { case INIT: if (memcmp (code, SC_OK, 3) == 0) send_commit_ids (processor); else { seaf_warning ("Bad response: %s %s.\n", code, code_msg); ccnet_processor_done (processor, FALSE); } break; case SEND_OBJECT: if (strncmp(code, SC_GET_OBJECT, 3) == 0) { send_commits (processor, content, clen); } else if (strncmp(code, SC_END, 3) == 0) { ccnet_processor_done (processor, TRUE); } else { seaf_warning ("[sendcommit] Bad response in state SEND_OBJECT: %s %s\n", code, code_msg); ccnet_processor_done (processor, FALSE); } break; default: g_return_if_reached (); } }