API: file list, file search: default values

This commit is contained in:
2026-02-13 12:22:16 +02:00
parent 57d7612f60
commit fad725f919
2 changed files with 26 additions and 7 deletions
+25 -5
View File
@@ -8,19 +8,30 @@
#include <string.h> #include <string.h>
#include <unistd.h> #include <unistd.h>
#define DEF_LIMIT 15
#define DEF_PAGE_NUM 1
void process_client_command(char *line, session *sess, server_data_t *s_d) { void process_client_command(char *line, session *sess, server_data_t *s_d) {
char arg_1[32]; char arg_1[32];
char arg_2[32]; char arg_2[32];
uint32_t res; uint32_t res;
i_file_list_t fl_args; i_file_list_t fl_args;
fl_args.name = NULL; fl_args.name = NULL;
int32_t ret = 0;
sscanf(line, "%s %s", arg_1, arg_2); sscanf(line, "%s %s", arg_1, arg_2);
if (!strcmp(arg_1, "file")) { if (!strcmp(arg_1, "file")) {
/* LIST */ /* LIST */
if (!strcmp(arg_2, "list")) { if (!strcmp(arg_2, "list")) {
sscanf(line, "%*s %*s %u %u", &(fl_args.limit), &(fl_args.page)); ret = sscanf(line, "%*s %*s %u %u", &(fl_args.limit), &(fl_args.page));
switch (ret) {
case EOF:
case 0:
fl_args.limit = DEF_LIMIT;
case 1:
fl_args.page = DEF_PAGE_NUM;
}
file_list(sess, s_d, &fl_args); file_list(sess, s_d, &fl_args);
return; return;
} }
@@ -28,7 +39,7 @@ void process_client_command(char *line, session *sess, server_data_t *s_d) {
/* UPLOAD */ /* UPLOAD */
if (!strcmp(arg_2, "upload")) { if (!strcmp(arg_2, "upload")) {
res = file_receive_prepare(sess, line, s_d); res = file_receive_prepare(sess, line, s_d);
if (!res) if (!res)
sess->state = OP_UPLOAD; sess->state = OP_UPLOAD;
return; return;
} }
@@ -43,10 +54,19 @@ void process_client_command(char *line, session *sess, server_data_t *s_d) {
/* SEARCH */ /* SEARCH */
if (!strcmp(arg_2, "search")) { if (!strcmp(arg_2, "search")) {
char *s_type = arg_1; /* since we don't need the contents of arg_1 and arg_2 variables */ char *s_type = arg_1; /* since we don't need the contents of arg_1 and
arg_2 variables */
char *s_val = arg_2; char *s_val = arg_2;
sscanf(line, "%*s %*s %s %s %u %u", s_type, s_val, &(fl_args.limit), &(fl_args.page)); ret = sscanf(line, "%*s %*s %s %s %u %u", s_type, s_val, &(fl_args.limit),
&(fl_args.page));
switch (ret) {
case 2:
fl_args.limit = DEF_LIMIT;
case 3:
fl_args.page = DEF_PAGE_NUM;
}
/* by name */ /* by name */
if (!strcmp(s_type, "name")) { if (!strcmp(s_type, "name")) {
fl_args.name = s_val; fl_args.name = s_val;
+1 -2
View File
@@ -70,7 +70,7 @@ void file_list(session *sess, server_data_t *s_d, i_file_list_t *f_args) {
pages_count = full_count / f_args->limit; pages_count = full_count / f_args->limit;
if (!pages_count) if (!pages_count)
pages_count = 1; pages_count = 1;
if (pages_count % f_args->limit) if (pages_count > 1 && (pages_count % f_args->limit))
pages_count++; pages_count++;
sprintf(page_info, ":END: PAGE %u/%lu COUNT: %lu/%lu\n", f_args->page, sprintf(page_info, ":END: PAGE %u/%lu COUNT: %lu/%lu\n", f_args->page,
@@ -132,7 +132,6 @@ void extract_names_from_hash(uint32_t file_hash, char *dirname, char *fname) {
int32_t file_send_prepare(session *sess, char *line, server_data_t *s_d) { int32_t file_send_prepare(session *sess, char *line, server_data_t *s_d) {
int32_t sd = sess->sd; int32_t sd = sess->sd;
i_get_file_db args = {.id = 0, .user_id = 0, .name = ""}; i_get_file_db args = {.id = 0, .user_id = 0, .name = ""};
char st_message[256];
int32_t file_d; int32_t file_d;
size_t fsize; size_t fsize;
char hashed_dir_name[3]; char hashed_dir_name[3];