API: file list, file search: default values
This commit is contained in:
+23
-3
@@ -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;
|
||||
}
|
||||
@@ -43,9 +54,18 @@ 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")) {
|
||||
|
||||
+1
-2
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user