fixes file upload with spaces
This commit is contained in:
+9
-6
@@ -181,17 +181,20 @@ int32_t file_send_prepare(session *sess, char *line, server_data_t *s_d) {
|
|||||||
|
|
||||||
int file_receive_prepare(session *sess, char *line, server_data_t *s_d) {
|
int file_receive_prepare(session *sess, char *line, server_data_t *s_d) {
|
||||||
int sd = sess->sd;
|
int sd = sess->sd;
|
||||||
char fname[64];
|
size_t fsize = 0;
|
||||||
size_t fsize;
|
|
||||||
int perm;
|
int perm;
|
||||||
sscanf(line, "file upload \"%s %zd %d", fname, &fsize, &perm);
|
/* TODO: */
|
||||||
|
char *name_begin = strchr(line, '"') + 1;
|
||||||
|
char *name_end = strrchr(line, '"');
|
||||||
|
int name_len = name_end - name_begin;
|
||||||
|
sscanf(name_end, "\" %zd %d", &fsize, &perm);
|
||||||
sess->file = malloc(sizeof(s_file_t));
|
sess->file = malloc(sizeof(s_file_t));
|
||||||
sess->file->name = malloc(sizeof(char) * strlen(fname));
|
sess->file->name = malloc(sizeof(char) * (name_len + 1));
|
||||||
sess->file->path = malloc(sizeof(STORAGE_FOLDER) + 2 + 9);
|
sess->file->path = malloc(sizeof(STORAGE_FOLDER) + 2 + 9);
|
||||||
sess->file->permissions = (char)perm;
|
sess->file->permissions = (char)perm;
|
||||||
sess->file->description = NULL;
|
sess->file->description = NULL;
|
||||||
strncpy(sess->file->name, fname, strlen(fname) - 1);
|
strncpy(sess->file->name, name_begin, name_len);
|
||||||
sess->file->name[strlen(fname) - 1] = 0;
|
sess->file->name[name_len] = 0;
|
||||||
|
|
||||||
char mes[256];
|
char mes[256];
|
||||||
char mes_len = 0;
|
char mes_len = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user