bugfix: reactor网络模型的的半包解析错误问题。
全量持久化时清除增量持久化的记录。
This commit is contained in:
@@ -138,59 +138,55 @@ int parse_response(const uint8_t *buf, int buflen, kvs_response_t *rsp) {
|
||||
|
||||
|
||||
void print_response(const char *cmd_name, const kvs_response_t *rsp) {
|
||||
printf("\n=== %s Response ===\n", cmd_name);
|
||||
printf("OP: %u\n", rsp->op);
|
||||
printf("Status: %u ", rsp->status);
|
||||
|
||||
switch (rsp->status) {
|
||||
case KVS_STATUS_OK:
|
||||
printf("(OK)\n");
|
||||
break;
|
||||
case KVS_STATUS_ERROR:
|
||||
printf("(ERROR)\n");
|
||||
break;
|
||||
case KVS_STATUS_NO_EXIST:
|
||||
printf("(NO_EXIST)\n");
|
||||
break;
|
||||
case KVS_STATUS_EXIST:
|
||||
printf("(EXISTS)\n");
|
||||
break;
|
||||
default:
|
||||
printf("(UNKNOWN)\n");
|
||||
break;
|
||||
}
|
||||
|
||||
printf("Data Length: %u\n", rsp->datalen);
|
||||
|
||||
if (rsp->datalen > 0 && rsp->data != NULL) {
|
||||
printf("Data: ");
|
||||
// 尝试以字符串形式打印(如果是可打印字符)
|
||||
int is_printable = 1;
|
||||
for (uint32_t i = 0; i < rsp->datalen; i++) {
|
||||
if (rsp->data[i] < 32 || rsp->data[i] > 126) {
|
||||
is_printable = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_printable) {
|
||||
printf("\"");
|
||||
printf("%s ", cmd_name);
|
||||
if(rsp->op == KVS_CMD_GET){
|
||||
if (rsp->datalen > 0 && rsp->data != NULL) {
|
||||
printf("Data: ");
|
||||
// 尝试以字符串形式打印(如果是可打印字符)
|
||||
int is_printable = 1;
|
||||
for (uint32_t i = 0; i < rsp->datalen; i++) {
|
||||
printf("%c", rsp->data[i]);
|
||||
if (rsp->data[i] < 32 || rsp->data[i] > 126) {
|
||||
is_printable = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (is_printable) {
|
||||
printf("\"");
|
||||
for (uint32_t i = 0; i < rsp->datalen; i++) {
|
||||
printf("%c", rsp->data[i]);
|
||||
}
|
||||
printf("\"\n");
|
||||
} else {
|
||||
// 以十六进制打印
|
||||
printf("0x");
|
||||
for (uint32_t i = 0; i < rsp->datalen; i++) {
|
||||
printf("%02x", rsp->data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
printf("\"\n");
|
||||
} else {
|
||||
// 以十六进制打印
|
||||
printf("0x");
|
||||
for (uint32_t i = 0; i < rsp->datalen; i++) {
|
||||
printf("%02x", rsp->data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
printf("Data: (empty)\n");
|
||||
}
|
||||
}else {
|
||||
switch (rsp->status) {
|
||||
case KVS_STATUS_OK:
|
||||
printf("(OK)\n");
|
||||
break;
|
||||
case KVS_STATUS_ERROR:
|
||||
printf("(ERROR)\n");
|
||||
break;
|
||||
case KVS_STATUS_NO_EXIST:
|
||||
printf("(NO_EXIST)\n");
|
||||
break;
|
||||
case KVS_STATUS_EXIST:
|
||||
printf("(EXISTS)\n");
|
||||
break;
|
||||
default:
|
||||
printf("(UNKNOWN)\n");
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
printf("Data: (empty)\n");
|
||||
}
|
||||
printf("==================\n");
|
||||
}
|
||||
|
||||
int verify_response(const kvs_response_t *rsp, uint8_t expected_op,
|
||||
|
||||
Reference in New Issue
Block a user