diff --git a/ftp/data/a/hello.txt b/ftp/data/a/hello.txt deleted file mode 100644 index 944ea50b..00000000 --- a/ftp/data/a/hello.txt +++ /dev/null @@ -1 +0,0 @@ -Hello ftp world diff --git a/ftp/data/a/testdir/emptyfile b/ftp/data/a/testdir/emptyfile deleted file mode 100644 index e69de29b..00000000 diff --git a/ftp/srcs/client/cli_get.c b/ftp/srcs/client/cli_get.c index ac74ac59..c89027b6 100644 --- a/ftp/srcs/client/cli_get.c +++ b/ftp/srcs/client/cli_get.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/11/10 13:00:28 by jhalford #+# #+# */ -/* Updated: 2017/11/12 15:02:03 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:23:32 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -34,9 +34,15 @@ int cli_get(t_ftp *ftp, char **av) FTP_CMD(ftp, "RETR %s", av[1]); if (dconn_open(ftp) < 0) return (cleanup(fd, av[1])); - size = ftp_recvraw(ftp->d_sock, &msg); - write(fd, msg, size); - ft_strdel(&msg); + console_msg(0, "download in progress... please wait"); + if ((size = ftp_recvraw(ftp->d_sock, &msg)) < 0) + console_msg(0, "download FAIL"); + else + { + console_msg(0, "download SUCCESS"); + write(fd, msg, size); + ft_strdel(&msg); + } close(fd); dconn_close(ftp); return (0); diff --git a/ftp/srcs/client/cli_put.c b/ftp/srcs/client/cli_put.c index d94d7d04..c2d4126e 100644 --- a/ftp/srcs/client/cli_put.c +++ b/ftp/srcs/client/cli_put.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/11/10 16:20:14 by jhalford #+# #+# */ -/* Updated: 2017/11/12 19:19:47 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:22:33 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -44,13 +44,17 @@ int cli_put(t_ftp *ftp, char **av) return (munmap(file, buf.st_size)); FTP_CMD(ftp, "STOR %s", fname(av[1])); if (dconn_open(ftp) < 0) + { + console_msg(0, "Upload FAIL"); return (munmap(file, buf.st_size)); - console_msg(0, "Upload in progess, please wait... %i", buf.st_size); - /* ftp_sendraw(ftp->d_sock, file, buf.st_size); */ - send(ftp->d_sock, file, buf.st_size, 0); + } + console_msg(0, "upload in progess, please wait... (%i bytes)", buf.st_size); + if (send(ftp->d_sock, file, buf.st_size, 0) < 0) + console_msg(0, "upload FAIL"); + else + console_msg(0, "upload SUCCESS"); close(ftp->d_sock); ftp->d_sock = 0; - dconn_close(ftp); munmap(file, buf.st_size); - return (0); + return (dconn_close(ftp)); } diff --git a/ftp/srcs/client/console_msg.c b/ftp/srcs/client/console_msg.c index ed2926a4..1e3f9ac6 100644 --- a/ftp/srcs/client/console_msg.c +++ b/ftp/srcs/client/console_msg.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/10/08 12:05:23 by jhalford #+# #+# */ -/* Updated: 2017/11/10 16:17:59 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:00:38 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/ftp/srcs/client/crlf.c b/ftp/srcs/client/crlf.c index f7666842..878920df 100644 --- a/ftp/srcs/client/crlf.c +++ b/ftp/srcs/client/crlf.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/11/08 19:52:07 by jhalford #+# #+# */ -/* Updated: 2017/11/12 19:11:18 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:26:43 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,19 +16,21 @@ ** stream mode with file structure --> raw data no EOF */ -#define M (1024 * 1024) +#define M (1024 * 1024) +#define CHUNK (M) int ftp_recvraw(int sock, char **msg) { int ret; - char buf[1024]; + char buf[CHUNK]; void *tmp; int size; tmp = NULL; size = 0; - while ((ret = recv(sock, buf, 1024, 0)) > 0) + while ((ret = recv(sock, buf, CHUNK, 0)) > 0) { + console_msg(2, "recv size=%i", ret); buf[ret] = 0; *msg = ft_strnew(size + ret); ft_memcpy(*msg, tmp, size); @@ -71,19 +73,15 @@ int ftp_sendraw(int sock, char *file, off_t size) sent = 0; chunk = M / 512; - DG("size=%zu", size); while (sent < size) { if (size - sent < chunk) chunk = size - sent; - DG("sent=%zu", sent); ret = send(sock, file, chunk, 0); - DG("ret=%i", ret); console_msg(2, "---> sendraw error"); file += chunk; sent += chunk; } - DG("sent=%zu", sent); console_msg(1, "---> rawsend done size %zu", size); return (0); } @@ -115,8 +113,8 @@ int ftp_msg(t_ftp *ftp, char **msg) if (ftp_recv(ftp->cmd_sock, msg) < 0) return (-1); - console_msg(0, "<--- %s", *msg); code = ft_atoi(*msg); + console_msg(0, "<--- %s (%i)", *msg, code); return (code); } @@ -125,7 +123,8 @@ int ftp_code(t_ftp *ftp) char *msg; int code; - code = ftp_msg(ftp, &msg); + if ((code = ftp_msg(ftp, &msg)) < 0) + return (-1); ft_strdel(&msg); return (code); } diff --git a/ftp/srcs/client/dconn.c b/ftp/srcs/client/dconn.c index 0fba7b67..a313733e 100644 --- a/ftp/srcs/client/dconn.c +++ b/ftp/srcs/client/dconn.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/11/08 14:55:15 by jhalford #+# #+# */ -/* Updated: 2017/11/12 18:48:44 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:11:45 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -52,7 +52,11 @@ int dconn_open(t_ftp *ftp) { int code; - code = ftp_code(ftp); + if ((code = ftp_code(ftp)) < 0) + { + console_msg(1, "code=%i", code); + return (-1); + } if (code == 150) { if (ftp->data_state == DATA_ACTV) @@ -69,10 +73,8 @@ int dconn_close(t_ftp *ftp) { int code; - DG("check"); if ((code = ftp_code(ftp)) < 0) return (-1); - DG("check"); if (code == 226) { if (ftp->d_sock != 0) diff --git a/ftp/srcs/server/cmd_retr.c b/ftp/srcs/server/cmd_retr.c index e6eeb894..9592fd2d 100644 --- a/ftp/srcs/server/cmd_retr.c +++ b/ftp/srcs/server/cmd_retr.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/11/02 15:32:28 by jhalford #+# #+# */ -/* Updated: 2017/11/12 14:50:38 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:23:28 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -28,7 +28,11 @@ static int retr_internal(t_ftp *ftp, struct stat buf, int fd) munmap(file, buf.st_size); return (-1); } + console_msg(1, "starting upload"); send(ftp->d_sock, file, buf.st_size, 0); + console_msg(1, "upload done"); + close(ftp->d_sock); + ftp->d_sock = 0; dconn_close(ftp); munmap(file, buf.st_size); return (0); diff --git a/ftp/srcs/server/cmd_stor.c b/ftp/srcs/server/cmd_stor.c index b0e5c513..d8746176 100644 --- a/ftp/srcs/server/cmd_stor.c +++ b/ftp/srcs/server/cmd_stor.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/11/02 16:01:54 by jhalford #+# #+# */ -/* Updated: 2017/11/12 18:35:55 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:01:47 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -25,7 +25,9 @@ int cmd_stor(t_ftp *ftp, char **av) dconn_close(ftp); return (FTP_RET(ftp, "550 couldn't open/create file")); } + console_msg(2, "recvraw() now"); size = ftp_recvraw(ftp->d_sock, &msg); + console_msg(2, "recvraw() done"); write(fd, msg, size); ft_strdel(&msg); close(fd); diff --git a/ftp/srcs/server/console_msg.c b/ftp/srcs/server/console_msg.c index 04abda3c..ce946a94 100644 --- a/ftp/srcs/server/console_msg.c +++ b/ftp/srcs/server/console_msg.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/10/08 12:05:23 by jhalford #+# #+# */ -/* Updated: 2017/11/08 19:57:41 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:28:07 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -17,16 +17,19 @@ int console_msg(int level, char *str, ...) va_list ap; va_start(ap, str); + ft_dprintf(2, "|%-5d| ", getpid()); if (g_debug >= level) { if (level == -1) - ft_printf("{red}"); - if (level == 0) - ft_printf("{blu}"); + ft_dprintf(2, "{red}"); + else if (level == 0) + ft_dprintf(2, "{blu}"); + else if (level == 1) + ft_dprintf(2, "{gre}"); else - ft_printf("{mag}"); - ft_vdprintf(1, str, ap); - ft_printf("{eoc}\n"); + ft_dprintf(2, "{yel}"); + ft_vdprintf(2, str, ap); + ft_dprintf(2, "{eoc}\n"); } return (level); } diff --git a/ftp/srcs/server/crlf.c b/ftp/srcs/server/crlf.c index 73939995..a14789a1 100644 --- a/ftp/srcs/server/crlf.c +++ b/ftp/srcs/server/crlf.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/11/08 19:52:07 by jhalford #+# #+# */ -/* Updated: 2017/11/12 19:02:56 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:27:59 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -16,18 +16,20 @@ ** stream mode with file structure --> raw data no EOF */ -#define M (1024 * 1024) +#define M (1024 * 1024) +#define CHUNK (M) int ftp_recvraw(int sock, char **msg) { int ret; - char buf[10 * M]; + char buf[CHUNK]; void *tmp; int size; size = 0; tmp = NULL; - while ((ret = recv(sock, buf, 10 * M, 0)) > 0) + console_msg(0, "starting download..."); + while ((ret = recv(sock, buf, CHUNK, 0)) > 0) { buf[ret] = 0; *msg = ft_strnew(size + ret); @@ -37,7 +39,7 @@ int ftp_recvraw(int sock, char **msg) tmp = *msg; size += ret; } - console_msg(2, "%-5i<--- raw msg size %i", getpid(), size); + console_msg(2, "<--- raw msg size %i", size); return (size); } @@ -50,7 +52,7 @@ int ftp_recv(int sock, char **msg) return (ret); if (ret == 0) { - console_msg(0, "%-5i client terminated", getpid()); + console_msg(0, "client terminated"); exit(0); } buf[ret] = 0; @@ -64,7 +66,7 @@ int ftp_recv(int sock, char **msg) return (1); } *msg = ft_strdup(buf); - console_msg(0, "%-5i<--- %s", getpid(), buf); + console_msg(0, "<--- %s", buf); return (0); } @@ -80,10 +82,10 @@ int ftp_send(int sock, char *msg, ...) crlf_msg = ft_strjoin(crlf_tmp, "\r\n"); if ((err = send(sock, crlf_msg, ft_strlen(crlf_msg), 0)) < 0) { - console_msg(1, "%-5i---> send error '%s'", getpid(), crlf_tmp); + console_msg(1, "---> send error '%s'", crlf_tmp); return (err); } - console_msg(0, "%-5i---> %s", getpid(), crlf_tmp); + console_msg(0, "---> %s", crlf_tmp); ft_strdel(&crlf_tmp); ft_strdel(&crlf_msg); return (ft_atoi(msg)); diff --git a/ftp/srcs/server/dconn.c b/ftp/srcs/server/dconn.c index ce13703b..33e52be7 100644 --- a/ftp/srcs/server/dconn.c +++ b/ftp/srcs/server/dconn.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/11/08 14:55:15 by jhalford #+# #+# */ -/* Updated: 2017/11/12 14:44:50 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 13:11:03 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/ftp/srcs/server/server.c b/ftp/srcs/server/server.c index 1c87fe76..5ab0f260 100644 --- a/ftp/srcs/server/server.c +++ b/ftp/srcs/server/server.c @@ -6,7 +6,7 @@ /* By: jhalford +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2017/04/02 15:02:48 by jhalford #+# #+# */ -/* Updated: 2017/11/12 17:59:25 by jhalford ### ########.fr */ +/* Updated: 2017/11/15 12:47:20 by jhalford ### ########.fr */ /* */ /* ************************************************************************** */ @@ -35,7 +35,7 @@ t_ftp_cmd g_ftp_cmd[] = {"DELE", cmd_dele, LOG_YES}, {0, 0, 0}, }; -int g_debug = 2; +int g_debug = 10; int ftp_cmd(t_ftp *ftp, char *msg) {