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 <unistd.h>
#define DEF_LIMIT 15
#define DEF_PAGE_NUM 1
void process_client_command(char *line, session *sess, server_data_t *s_d) {
char arg_1[32];
char arg_2[32];
uint32_t res;
i_file_list_t fl_args;
fl_args.name = NULL;
int32_t ret = 0;
sscanf(line, "%s %s", arg_1, arg_2);
if (!strcmp(arg_1, "file")) {
/* 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);
return;
}
@@ -28,7 +39,7 @@ void process_client_command(char *line, session *sess, server_data_t *s_d) {
/* UPLOAD */
if (!strcmp(arg_2, "upload")) {
res = file_receive_prepare(sess, line, s_d);
if (!res)
if (!res)
sess->state = OP_UPLOAD;
return;
}
@@ -43,10 +54,19 @@ void process_client_command(char *line, session *sess, server_data_t *s_d) {
/* 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;
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 */
if (!strcmp(s_type, "name")) {
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;
if (!pages_count)
pages_count = 1;
if (pages_count % f_args->limit)
if (pages_count > 1 && (pages_count % f_args->limit))
pages_count++;
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 sd = sess->sd;
i_get_file_db args = {.id = 0, .user_id = 0, .name = ""};
char st_message[256];
int32_t file_d;
size_t fsize;
char hashed_dir_name[3];