[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tyndur-devel] [PATCH] FTP-Client



*ftp: Befehl rm wurde hinzugefügt! Ist ja doof ohne löschen auf dem Server ;-)

Signed-off-by: Paul Lange <matheeguru@xxxxxx>
---
 Makefile                    |    5 ++---
 src/modules/c/ftp/command.c |   12 ++++++++++++
 src/modules/c/ftp/command.h |    6 +++++-
 src/modules/c/ftp/help.c    |    1 +
 src/modules/c/ftp/main.c    |   10 ++++++++++
 5 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/Makefile b/Makefile
index 9b63409..63c8c47 100644
--- a/Makefile
+++ b/Makefile
@@ -5,7 +5,7 @@ PPC=fpc -n -Cn -CX -Ttyndur  -Fu../lib/units -Fu../units
 ASM_ELF=nasm -felf -O99 
 ASM_BIN=nasm -fbin -O99
 
-BUILD_ROOT=/home/kevin/entwicklung/tyndur/build/output
+BUILD_ROOT=/home/paul/Projekte/tyndur/build/output
 BUILD_DIR=$(BUILD_ROOT)
 
 AS=as -32
@@ -22,11 +22,10 @@ obj:
 
 subdirs:
 	$(MAKE) --no-print-directory -sC doc
-	$(MAKE) --no-print-directory -sC patches
 	$(MAKE) --no-print-directory -sC src
 
 clean:
-	rm -f *.o *.a *.mod
+	rm -f *.o *.a *.mod *.ppu link.res ppas.sh tyndur
 	for file in *; do if [ -f "$$file/Makefile" -a \( ! -f "$$file/.nobuild" -o -f "$$file/.ignorenobuild" \) ]; then $(MAKE) -sC "$$file" clean; rm "$$file/Makefile"; fi done  
 
 .SILENT: all makefiles subdirs obj clean clean_root updateroot image-floppy image-hd test-qemu test-qemu-hd
diff --git a/src/modules/c/ftp/command.c b/src/modules/c/ftp/command.c
index 7da54d7..bf326c5 100644
--- a/src/modules/c/ftp/command.c
+++ b/src/modules/c/ftp/command.c
@@ -180,6 +180,18 @@ void ftp_mkdir(const char* pathname)
     response();
 }
 
+void ftp_rm(const char* pathname)
+{
+    if (handle == NULL) {
+        puts("\033[1;37mes besteht keine Serververbindung...\033[0m");
+        return;
+    }
+
+    fprintf(handle, "DELE %s\r\n", pathname);
+    fflush(handle);
+    response();
+}
+
 void ftp_rmdir(const char* pathname)
 {
     if (handle == NULL) {
diff --git a/src/modules/c/ftp/command.h b/src/modules/c/ftp/command.h
index a5a27e9..f81ae19 100644
--- a/src/modules/c/ftp/command.h
+++ b/src/modules/c/ftp/command.h
@@ -46,8 +46,12 @@ void ftp_account(void);
 // @param Pfadname+Dateiname
 void ftp_mkdir(const char*);
 
-// loescht ein Verzeichniss auf dem FTP-Server
+// loescht eine Datei auf dem FTP-Server
 // @param Pfadname+Dateiname
+void ftp_rm(const char*);
+
+// loescht ein Verzeichniss auf dem FTP-Server
+// @param Pfadname
 void ftp_rmdir(const char*);
 
 // wechselt das Verzeichniss auf dem FTP-Server
diff --git a/src/modules/c/ftp/help.c b/src/modules/c/ftp/help.c
index 4b8b8d5..79dae27 100644
--- a/src/modules/c/ftp/help.c
+++ b/src/modules/c/ftp/help.c
@@ -49,4 +49,5 @@ const char* help =
     "open    - [ftp.name.net] öffnet eine Verbindung zu einem Server\n"
     "put     - [Pfad+Dateiname] speichert eine Datei auf dem Server\n"
     "quit    - schließt die Verbindung zum Server und beendet den FTP-Client\n"
+    "rm      - [Pfad+Dateiname] löscht die Datei auf dem Server\n"
     "rmdir   - [Pfad+Ordnername] löscht einen Ordner auf dem Server\n";
diff --git a/src/modules/c/ftp/main.c b/src/modules/c/ftp/main.c
index 12e19cb..34acd62 100644
--- a/src/modules/c/ftp/main.c
+++ b/src/modules/c/ftp/main.c
@@ -95,6 +95,16 @@ int main(int argc, char* argv[])
 
                     ftp_mkdir(input);
                 }
+            } else if (!strncmp(input, "rm", 2)) {
+                input += 2;
+                for (; isspace(*input); input++);
+                if (*input != '\0') {
+                    for (buffer = input; !isspace(*buffer) && *buffer;
+                         buffer++);
+                         *buffer = '\0';
+
+                         ftp_rm(input);
+                }
             } else if (!strncmp(input, "rmdir", 5)) {
                 input += 5;
                 for (; isspace(*input); input++);
-- 
1.6.0.4