REST is for BLOCK mode only, which we don't support anyway. Expect APPE
authorMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 11 Mar 2008 04:22:55 +0000 (04:22 +0000)
committerMatthew Mondor <mmondor@pulsar-zone.net>
Tue, 11 Mar 2008 04:22:55 +0000 (04:22 +0000)
to be used instead as necessary.

mmsoftware/mmftpd/src/mmftpd.c
mmsoftware/mmftpd/src/mmftpd.h

index 0a1723f..9b96e7a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmftpd.c,v 1.74 2008/02/13 19:30:42 mmondor Exp $ */
+/* $Id: mmftpd.c,v 1.75 2008/03/11 04:22:55 mmondor Exp $ */
 
 /*
  * Copyright (C) 2001-2008, Matthew Mondor
@@ -92,7 +92,7 @@
 
 MMCOPYRIGHT("@(#) Copyright (c) 2001-2004\n\
 \tMatthew Mondor. All rights reserved.\n");
-MMRCSID("$Id: mmftpd.c,v 1.74 2008/02/13 19:30:42 mmondor Exp $");
+MMRCSID("$Id: mmftpd.c,v 1.75 2008/03/11 04:22:55 mmondor Exp $");
 
 
 
@@ -171,7 +171,7 @@ static struct command commands[] = {
     {2, "STOU", "[<file>]", "Store unique file"},
     {2, "APPE", "<file>", "Permits upload to append on file"},
     {3, "ALLO", "<bytes> [<frame>]", "Allocate storage"},
-    {2, "REST", "<offset>", "Restart/resume command"},
+    {2, "REST", "<marker>", NULL},
     {3, "RNFR", "<file>", "Rename from"},
     {3, "RNTO", "<file>", "Rename to"},
     {3, "ABOR", "", "Abort command"},
@@ -263,7 +263,7 @@ static int (*state_main[])(clientenv *) = {
        main_stou,              /* STOU */
        main_appe,              /* APPE */
        main_allo,              /* ALLO */
-       main_rest,              /* REST */
+       NULL,                   /* REST */
        main_rnfr,              /* RNFR */
        main_rnto,              /* RNTO */
        main_abor,              /* ABOR */
@@ -1667,25 +1667,6 @@ main_allo(clientenv *clenv)
 
 
 static int
-main_rest(clientenv *clenv)
-{
-    char *args[3];
-
-    if ((mm_straspl(args, clenv->buffer, 2)) == 2) {
-       clenv->rest = (off_t)atoll(args[1]);
-       reply(clenv->fdb, 350, FALSE,
-                   "Restarting at %lld, waiting for STOR/RETR",
-                   (int64_t)clenv->rest);
-    } else {
-       reply(clenv->fdb, 550, FALSE, "Command syntax error");
-       REGISTER_ERROR();
-    }
-
-    return (STATE_CURRENT);
-}
-
-
-static int
 main_rnfr(clientenv *clenv)
 {
     int t = MMPATH_DENIED;
@@ -1778,8 +1759,10 @@ main_abor(clientenv *clenv)
     transfermsg *msg = &(clenv->tmsg);
 
     if ((mm_straspl(args, clenv->buffer, 1)) == 1) {
-       if (clenv->rest) clenv->rest = 0;
-       if (clenv->rnfr) clenv->rnfr = mmstrfree(clenv->rnfr);
+       if (clenv->rest)
+           clenv->rest = 0;
+       if (clenv->rnfr)
+           clenv->rnfr = mmstrfree(clenv->rnfr);
        reply(clenv->fdb, 226, FALSE, "Aborted");
        if (transfer_request(REQ_STATUS, TRUE, clenv)) {
            if (msg->ongoing) {
@@ -3770,7 +3753,8 @@ err:
  * clenv and server_sockaddr.
  */
 static bool
-pasv_bind(clientenv *clenv, struct server_sockaddr *server, int *sock, int *port)
+pasv_bind(clientenv *clenv, struct server_sockaddr *server, int *sock,
+       int *port)
 {
     int fd;
 
index e09d115..4da54c5 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: mmftpd.h,v 1.30 2008/01/11 19:08:49 mmondor Exp $ */
+/* $Id: mmftpd.h,v 1.31 2008/03/11 04:22:55 mmondor Exp $ */
 
 /*
  * Copyright (C) 2001-2008, Matthew Mondor
@@ -222,7 +222,6 @@ typedef struct clientenv {
     long maxlogins;              /* Allowed simultanious logins for user */
     off_t maxhomesize;           /* Maximum home directory size (or -1) */
     off_t minfilesize;           /* If limits used, minimum file size */
-    off_t rest;                          /* Restore offset */
     mode_t umask;                /* Current umask */
     bool anonymous;              /* TRUE if anonymous login acount */
     bool login;                          /* TRUE if user currently logged in */
@@ -383,7 +382,6 @@ static int main_stor(clientenv *);
 static int main_stou(clientenv *);
 static int main_appe(clientenv *);
 static int main_allo(clientenv *);
-static int main_rest(clientenv *);
 static int main_rnfr(clientenv *);
 static int main_rnto(clientenv *);
 static int main_abor(clientenv *);