API: file list, file search: default values
This commit is contained in:
+25
-5
@@ -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
@@ -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];
|
||||||
|
|||||||
Reference in New Issue
Block a user