1
0
mirror of https://github.com/fumiama/simple-dict.git synced 2026-06-05 02:00:25 +08:00

fix: 错误交互

This commit is contained in:
源文雨
2022-05-06 20:13:19 +08:00
parent 8536557d27
commit 013a2e323f
2 changed files with 6 additions and 2 deletions

View File

@@ -31,7 +31,7 @@ Start server on localhost using the commands below.
```bash
chmod +x simple-dict-server simple-dict-client
Usage:
./simple-dict-server [-d] listen_port dict_file [config_file | -]
./simple-dict-server [-d] listen_port dict_file [ config_file | - ]
-d: As daemon
- : Read config from env SDS_PWD & SDS_SPS
```
@@ -41,7 +41,7 @@ Open another shell to connect to it.
```bash
./simple-dict-client 127.0.0.1 7777
```
Now you have connected to the server. The default access passwords is in `client.c` and you can modify the password in source code as you like. Please note that the server will only wait `4` seconds for a response after the last communication. The box below shows how to control the server to accompilsh basic add/del/find/edit operations.
Now you have connected to the server. The default access passwords is in `client.c` and you can modify the password in source code as you like. Please note that the server will only wait `4` seconds for a response after the last communication. You can go to `server.h` to edit this limit. The box below shows how to control the server to accompilsh basic add/del/find/edit operations.
| cmd | data | description | reply |
| ---- | ---- | ---- | ----- |

View File

@@ -330,6 +330,7 @@ ERR_INSERT_ITEM:
}
static int s3_set_data(thread_timer_t *timer) {
if(!setdicts[timer->index].data[0]) return send_data(timer->accept_fd, timer->index, ACKERRO, "erro", 4);
FILE *fp = open_ex_dict();
if(fp == NULL) return send_data(timer->accept_fd, timer->index, ACKERRO, "erro", 4);
@@ -378,6 +379,8 @@ static int s3_set_data(thread_timer_t *timer) {
r = send_data(timer->accept_fd, timer->index, ACKSUCC, "succ", 4);
}
setdicts[timer->index].data[0] = 0;
pthread_cleanup_pop(1);
return r;
}
@@ -523,6 +526,7 @@ static void cleanup_thread(thread_timer_t* timer) {
pthread_sigmask(SIG_BLOCK, &mask, NULL);
puts("Start cleaning");
timer->thread = 0;
setdicts[timer->index].data[0] = 0;
if(timer->accept_fd) {
close(timer->accept_fd);
timer->accept_fd = 0;