[prev in list] [next in list] [prev in thread] [next in thread] 

List:       proftpd-committers
Subject:    [ProFTPD-committers] CVS: proftpd/modules mod_auth.c,1.212,1.213 mod_core.c,1.281,1.282 mod_ls.c,1.1
From:       TJ Saunders <castaglia () users ! sourceforge ! net>
Date:       2006-05-25 16:55:36
Message-ID: E1FjJ7Y-0001TG-LL () sc8-pr-cvs1 ! sourceforge ! net
[Download RAW message or body]

Update of /cvsroot/proftp/proftpd/modules
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4276/modules

Modified Files:
	mod_auth.c mod_core.c mod_ls.c mod_site.c mod_xfer.c 
Log Message:

Adding UTF8 encoding/decoding functions.  Marking source, preparing it
for use with the gettext utilities.

Part of the work towards making the proftpd source i18n/l10n ready.


Index: mod_auth.c
===================================================================
RCS file: /cvsroot/proftp/proftpd/modules/mod_auth.c,v
retrieving revision 1.212
retrieving revision 1.213
diff -u -r1.212 -r1.213
--- mod_auth.c	20 Apr 2006 02:01:14 -0000	1.212
+++ mod_auth.c	25 May 2006 16:55:34 -0000	1.213
@@ -368,9 +368,9 @@
     /* Append the final greeting lines. */
     if (session.sf_flags & SF_ANON)
       pr_response_add(auth_pass_resp_code,
-        "Anonymous access granted, restrictions apply.");
+        _("Anonymous access granted, restrictions apply"));
     else
-      pr_response_add(auth_pass_resp_code, "User %s logged in.", user);
+      pr_response_add(auth_pass_resp_code, _("User %s logged in"), user);
 
   } else {
      /* Handle any AccessGrantMsg directive. */
@@ -1833,8 +1833,8 @@
   session.group = NULL;
 
   if (nopass) {
-    pr_response_add(R_331, "Anonymous login ok, send your complete email "
-      "address as your password.");
+    pr_response_add(R_331, _("Anonymous login ok, send your complete email "
+      "address as your password"));
 
   /* Check to see if a password from the client is required.  In the
    * vast majority of cases, a password will be required.
@@ -1862,7 +1862,7 @@
     pr_cmd_dispatch(fakecmd);
 
   } else
-    pr_response_add(R_331, "Password required for %s.", cmd->argv[1]);
+    pr_response_add(R_331, _("Password required for %s"), cmd->argv[1]);
 
   return HANDLED(cmd);
 }
@@ -1952,12 +1952,12 @@
 }
 
 MODRET auth_acct(cmd_rec *cmd) {
-  pr_response_add(R_502, "ACCT command not implemented.");
+  pr_response_add(R_502, _("ACCT command not implemented"));
   return HANDLED(cmd);
 }
 
 MODRET auth_rein(cmd_rec *cmd) {
-  pr_response_add(R_502, "REIN command not implemented.");
+  pr_response_add(R_502, _("REIN command not implemented"));
   return HANDLED(cmd);
 }
 

Index: mod_core.c
===================================================================
RCS file: /cvsroot/proftp/proftpd/modules/mod_core.c,v
retrieving revision 1.281
retrieving revision 1.282
diff -u -r1.281 -r1.282
--- mod_core.c	18 May 2006 15:38:44 -0000	1.281
+++ mod_core.c	25 May 2006 16:55:34 -0000	1.282
@@ -2927,7 +2927,7 @@
       regexec(allow_regex, cmd->arg, 0, NULL, 0) != 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by AllowFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden command argument", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden command argument"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -2938,7 +2938,7 @@
       regexec(deny_regex, cmd->arg, 0, NULL, 0) == 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by DenyFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden command argument", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden command argument"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -3006,7 +3006,7 @@
     return ERROR(cmd);
   }
 
-  pr_response_add(R_257,"\"%s\" is current directory.",
+  pr_response_add(R_257, _("\"%s\" is the current directory"),
     quote_dir(cmd, session.vwd));
 
   return HANDLED(cmd);
@@ -3018,7 +3018,7 @@
   config_rec *c = NULL;
 
   if (session.sf_flags & SF_EPSV_ALL) {
-    pr_response_add_err(R_500, "Illegal PASV command, EPSV ALL in effect");
+    pr_response_add_err(R_500, _("Illegal PASV command, EPSV ALL in effect"));
     return ERROR(cmd);
   }
 
@@ -3063,8 +3063,8 @@
       session.c->local_addr, INPORT_ANY, FALSE);
 
   if (!session.d) {
-    pr_response_add_err(R_425, "Unable to build data connection: "
-      "Internal error");
+    pr_response_add_err(R_425, _("Unable to build data connection: "
+      "Internal error"));
     return ERROR(cmd);
   }
 
@@ -3099,6 +3099,9 @@
   pr_log_debug(DEBUG1, "Entering Passive Mode (%s,%u,%u).", addrstr,
     (port >> 8) & 255, port & 255);
 
+  /* Note: this response is specifically NOT localised because clients
+   * assume this particular text.  Nice, huh?
+   */
   pr_response_add(R_227, "Entering Passive Mode (%s,%u,%u).", addrstr,
     (port >> 8) & 255, port & 255);
  
@@ -3117,7 +3120,7 @@
   unsigned char *allow_foreign_addr = NULL, *privsdrop = NULL;
 
   if (session.sf_flags & SF_EPSV_ALL) {
-    pr_response_add_err(R_500, "Illegal PORT command, EPSV ALL in effect");
+    pr_response_add_err(R_500, _("Illegal PORT command, EPSV ALL in effect"));
     return ERROR(cmd);
   }
 
@@ -3142,7 +3145,7 @@
       session.c->local_port < 1025) {
     pr_log_debug(DEBUG0, "RootRevoke in effect, unable to bind to local "
       "port %d for active transfer", session.c->local_port);
-    pr_response_add_err(R_500, "Unable to service PORT commands");
+    pr_response_add_err(R_500, _("Unable to service PORT commands"));
     return ERROR(cmd);
   }
 
@@ -3150,14 +3153,14 @@
   if (sscanf(cmd->argv[1], "%u,%u,%u,%u,%u,%u", &h1, &h2, &h3, &h4, &p1,
       &p2) != 6) {
     pr_log_debug(DEBUG2, "PORT '%s' is not syntactically valid", cmd->argv[1]);
-    pr_response_add_err(R_501, "Illegal PORT command");
+    pr_response_add_err(R_501, _("Illegal PORT command"));
     return ERROR(cmd);
   }
 
   if (h1 > 255 || h2 > 255 || h3 > 255 || h4 > 255 || p1 > 255 || p2 > 255 ||
       (h1|h2|h3|h4) == 0 || (p1|p2) == 0) {
     pr_log_debug(DEBUG2, "PORT '%s' has invalid value(s)", cmd->arg);
-    pr_response_add_err(R_501, "Illegal PORT command");
+    pr_response_add_err(R_501, _("Illegal PORT command"));
     return ERROR(cmd);
   }
   port = ((p1 << 8) | p2);
@@ -3174,7 +3177,7 @@
   if (port_addr == NULL) {
     pr_log_debug(DEBUG1, "error getting sockaddr for '%s': %s", buf,
       strerror(errno)); 
-    pr_response_add_err(R_501, "Illegal PORT command");
+    pr_response_add_err(R_501, _("Illegal PORT command"));
     return ERROR(cmd);
   }
 
@@ -3199,7 +3202,7 @@
         pr_netaddr_is_v4mappedv6(remote_addr) != TRUE) {
       pr_log_pri(PR_LOG_WARNING, "Refused PORT %s (IPv4/IPv6 address mismatch)",
         cmd->arg);
-      pr_response_add_err(R_500, "Illegal PORT command");
+      pr_response_add_err(R_500, _("Illegal PORT command"));
       return ERROR(cmd);
     }
 #endif /* PR_USE_IPV6 */
@@ -3207,7 +3210,7 @@
     if (pr_netaddr_cmp(port_addr, remote_addr) != 0) {
       pr_log_pri(PR_LOG_WARNING, "Refused PORT %s (address mismatch)",
         cmd->arg);
-      pr_response_add_err(R_500, "Illegal PORT command");
+      pr_response_add_err(R_500, _("Illegal PORT command"));
       return ERROR(cmd);
     }
   }
@@ -3220,7 +3223,7 @@
 
   if (port < 1024) {
     pr_log_pri(PR_LOG_WARNING, "Refused PORT %s (bounce attack)", cmd->arg);
-    pr_response_add_err(R_500, "Illegal PORT command");
+    pr_response_add_err(R_500, _("Illegal PORT command"));
     return ERROR(cmd);
   }
 
@@ -3235,7 +3238,7 @@
   }
 
   session.sf_flags |= SF_PORT;
-  pr_response_add(R_200, "PORT command successful");
+  pr_response_add(R_200, _("PORT command successful"));
 
   return HANDLED(cmd);
 }
@@ -3249,7 +3252,7 @@
   char *tmp = NULL;
 
   if (session.sf_flags & SF_EPSV_ALL) {
-    pr_response_add_err(R_500, "Illegal PORT command, EPSV ALL in effect");
+    pr_response_add_err(R_500, _("Illegal PORT command, EPSV ALL in effect"));
     return ERROR(cmd);
   }
 
@@ -3277,7 +3280,7 @@
       session.c->local_port < 1025) {
     pr_log_debug(DEBUG0, "RootRevoke in effect, unable to bind to local "
       "port %d for active transfer", session.c->local_port);
-    pr_response_add_err(R_500, "Unable to service EPRT commands");
+    pr_response_add_err(R_500, _("Unable to service EPRT commands"));
     return ERROR(cmd);
   }
 
@@ -3302,9 +3305,9 @@
 
     default:
 #ifdef PR_USE_IPV6
-      pr_response_add_err(R_522, "Network protocol not supported, use (1,2)");
+      pr_response_add_err(R_522, _("Network protocol not supported, use (1,2)"));
 #else
-      pr_response_add_err(R_522, "Network protocol not supported, use (1)");
+      pr_response_add_err(R_522, _("Network protocol not supported, use (1)"));
 #endif /* PR_USE_IPV6 */
       return ERROR(cmd);
   }
@@ -3320,13 +3323,13 @@
     argstr++;
 
   else {
-    pr_response_add_err(R_501, "Illegal EPRT command");
+    pr_response_add_err(R_501, _("Illegal EPRT command"));
     return ERROR(cmd);
   }
 
   if ((tmp = strchr(argstr, delim)) == NULL) {
     pr_log_debug(DEBUG3, "badly formatted EPRT argument: '%s'", cmd->argv[1]);
-    pr_response_add_err(R_501, "Illegal EPRT command");
+    pr_response_add_err(R_501, _("Illegal EPRT command"));
     return ERROR(cmd);
   }
 
@@ -3347,7 +3350,7 @@
       if (pr_inet_pton(AF_INET, argstr, pr_netaddr_get_inaddr(&na)) <= 0) {
         pr_log_debug(DEBUG2, "error converting IPv4 address '%s': %s",
           argstr, strerror(errno));
-        pr_response_add_err(R_501, "Illegal EPRT command");
+        pr_response_add_err(R_501, _("Illegal EPRT command"));
         return ERROR(cmd);
       }
       break;
@@ -3359,7 +3362,7 @@
       if (pr_inet_pton(AF_INET6, argstr, pr_netaddr_get_inaddr(&na)) <= 0) {
         pr_log_debug(DEBUG2, "error converting IPv6 address '%s': %s",
           argstr, strerror(errno));
-        pr_response_add_err(R_501, "Illegal EPRT command");
+        pr_response_add_err(R_501, _("Illegal EPRT command"));
         return ERROR(cmd);
       }
       break;
@@ -3379,7 +3382,7 @@
    */
   if (*argstr != delim) {
     pr_log_debug(DEBUG3, "badly formatted EPRT argument: '%s'", cmd->argv[1]);
-    pr_response_add_err(R_501, "Illegal EPRT command");
+    pr_response_add_err(R_501, _("Illegal EPRT command"));
     return ERROR(cmd);
   }
 
@@ -3394,7 +3397,7 @@
     if (pr_netaddr_cmp(&na, session.c->remote_addr) != 0 || !port) {
       pr_log_pri(PR_LOG_WARNING, "Refused EPRT %s (address mismatch)",
         cmd->arg);
-      pr_response_add_err(R_500, "Illegal EPRT command");
+      pr_response_add_err(R_500, _("Illegal EPRT command"));
       return ERROR(cmd);
     }
   }
@@ -3407,7 +3410,7 @@
 
   if (port < 1024) {
     pr_log_pri(PR_LOG_WARNING, "Refused EPRT %s (bounce attack)", cmd->arg);
-    pr_response_add_err(R_500, "Illegal EPRT command");
+    pr_response_add_err(R_500, _("Illegal EPRT command"));
     return ERROR(cmd);
   }
 
@@ -3436,7 +3439,7 @@
   }
 
   session.sf_flags |= SF_PORT;
-  pr_response_add(R_200, "EPRT command successful");
+  pr_response_add(R_200, _("EPRT command successful"));
 
   return HANDLED(cmd);
 }
@@ -3463,7 +3466,7 @@
 
   if (arg && strcasecmp(arg, "all") == 0) {
     session.sf_flags |= SF_EPSV_ALL;
-    pr_response_add(R_200, "EPSV ALL command successful");
+    pr_response_add(R_200, _("EPSV ALL command successful"));
     return HANDLED(cmd);
   }
 
@@ -3475,7 +3478,8 @@
     family = strtol(arg, &endp, 10);
 
     if (endp && *endp) {
-      pr_response_add_err(R_501, "%s: unknown network protocol", cmd->argv[0]);
+      pr_response_add_err(R_501, _("%s: unknown network protocol"),
+        cmd->argv[0]);
       return ERROR(cmd);
     }
  
@@ -3509,9 +3513,9 @@
 
     default:
 #ifdef PR_USE_IPV6
-      pr_response_add_err(R_522, "Network protocol not supported, use (1,2)");
+      pr_response_add_err(R_522, _("Network protocol not supported, use (1,2)"));
 #else
-      pr_response_add_err(R_522, "Network protocol not supported, use (1)");
+      pr_response_add_err(R_522, _("Network protocol not supported, use (1)"));
 #endif /* PR_USE_IPV6 */
       return ERROR(cmd);
   }
@@ -3541,7 +3545,7 @@
 
   if (!session.d) {
     pr_response_add_err(R_425,
-      "Unable to build data connection: Internal error");
+      _("Unable to build data connection: Internal error"));
     return ERROR(cmd);
   }
 
@@ -3597,7 +3601,7 @@
     if (pr_help_add_response(cmd, cmd->argv[1]) == 0)
       return HANDLED(cmd);
 
-    pr_response_add_err(R_502, "Unknown command '%s'.", cmd->argv[1]);
+    pr_response_add_err(R_502, _("Unknown command '%s'"), cmd->argv[1]);
     return ERROR(cmd);
   }
 
@@ -3764,7 +3768,7 @@
     }
   }
 
-  pr_response_add(R_250, "%s command successful", cmd->argv[0]);
+  pr_response_add(R_250, _("%s command successful"), cmd->argv[0]);
   return HANDLED(cmd);
 }
 
@@ -3782,7 +3786,7 @@
   if (preg && regexec(preg, cmd->arg, 0, NULL, 0) != 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathAllowFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550,"%s: Forbidden filename",cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -3791,7 +3795,7 @@
   if (preg && regexec(preg, cmd->arg, 0, NULL, 0) == 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathDenyFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
     return ERROR(cmd);
   }
 #endif
@@ -3808,7 +3812,7 @@
     return ERROR(cmd);
 
   } else
-    pr_response_add(R_250, "%s command successful", cmd->argv[0]);
+    pr_response_add(R_250, _("%s command successful"), cmd->argv[0]);
 
   return HANDLED(cmd);
 }
@@ -3823,7 +3827,7 @@
   CHECK_CMD_MIN_ARGS(cmd, 2);
 
   if (strchr(cmd->arg, '*')) {
-    pr_response_add_err(R_550, "%s: Invalid directory name", cmd->argv[1]);
+    pr_response_add_err(R_550, _("%s: Invalid directory name"), cmd->argv[1]);
     return ERROR(cmd);
   }
 
@@ -3833,7 +3837,7 @@
     if (preg && regexec(preg, cmd->arg, 0, NULL, 0) != 0) {
       pr_log_debug(DEBUG2, "'%s %s' denied by PathAllowFilter", cmd->argv[0],
         cmd->arg);
-      pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+      pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
       return ERROR(cmd);
     }
 
@@ -3842,7 +3846,7 @@
     if (preg && regexec(preg, cmd->arg, 0, NULL, 0) == 0) {
       pr_log_debug(DEBUG2, "'%s %s' denied by PathDenyFilter", cmd->argv[0],
         cmd->arg);
-      pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+      pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
       return ERROR(cmd);
     }
 #endif
@@ -3895,7 +3899,7 @@
         (unsigned long) session.fsgid);
   }
 
-  pr_response_add(R_257, "\"%s\" - Directory successfully created",
+  pr_response_add(R_257, _("\"%s\" - Directory successfully created"),
     quote_dir(cmd, dir));
 
   return HANDLED(cmd);
@@ -3934,13 +3938,13 @@
   if (!path ||
       !dir_check(cmd->tmp_pool, cmd->argv[0], cmd->group, path, NULL) ||
       pr_fsio_stat(path, &sbuf) == -1) {
-    pr_response_add_err(R_550,"%s: %s", cmd->arg, strerror(errno));
+    pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(errno));
     return ERROR(cmd);
 
   } else {
 
     if (!S_ISREG(sbuf.st_mode)) {
-      pr_response_add_err(R_550,"%s: not a plain file.",cmd->argv[1]);
+      pr_response_add_err(R_550, _("%s: not a plain file"), cmd->argv[1]);
       return ERROR(cmd);
 
     } else {
@@ -3989,7 +3993,7 @@
 
   } else {
     if (!S_ISREG(sbuf.st_mode)) {
-      pr_response_add_err(R_550, "%s: not a regular file", cmd->arg);
+      pr_response_add_err(R_550, _("%s: not a regular file"), cmd->arg);
       return ERROR(cmd);
 
     } else
@@ -4015,7 +4019,7 @@
   if (preg && regexec(preg, cmd->arg, 0, NULL, 0) != 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathAllowFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -4024,7 +4028,7 @@
   if (preg && regexec(preg, cmd->arg, 0, NULL, 0) == 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathDenyFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
     return ERROR(cmd);
   }
 #endif
@@ -4057,7 +4061,7 @@
       (session.sf_flags & SF_ASCII ? 'a' : 'b'), 'd', 'r', session.user, 'c');
   }
 
-  pr_response_add(R_250, "%s command successful", cmd->argv[0]);
+  pr_response_add(R_250, _("%s command successful"), cmd->argv[0]);
   return HANDLED(cmd);
 }
 
@@ -4078,7 +4082,7 @@
       memset(&session.xfer, '\0', sizeof(session.xfer));
     }
 
-    pr_response_add_err(R_503, "Bad sequence of commands");
+    pr_response_add_err(R_503, _("Bad sequence of commands"));
     return ERROR(cmd);
   }
 
@@ -4088,7 +4092,7 @@
   if (preg && regexec(preg, cmd->arg, 0, NULL, 0) != 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathAllowFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -4097,7 +4101,7 @@
   if (preg && regexec(preg, cmd->arg, 0, NULL, 0) == 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathDenyFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
     return ERROR(cmd);
   }
 #endif
@@ -4113,7 +4117,7 @@
   if ((!allow_overwrite || *allow_overwrite == FALSE) &&
       pr_fsio_stat(path, &st) == 0) {
     pr_log_debug(DEBUG6, "AllowOverwrite denied permission for %s", path);
-    pr_response_add_err(R_550, "%s: Rename permission denied", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Rename permission denied"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -4122,7 +4126,7 @@
       pr_fsio_rename(session.xfer.path, path) == -1) {
 
     if (errno != EXDEV) {
-      pr_response_add_err(R_550, "Rename %s: %s", cmd->arg, strerror(errno));
+      pr_response_add_err(R_550, _("Rename %s: %s"), cmd->arg, strerror(errno));
       return ERROR(cmd);
     }
 
@@ -4130,7 +4134,7 @@
      * to the destination paths.
      */
     if (pr_fs_copy_file(session.xfer.path, path) < 0) {
-      pr_response_add_err(R_550, "Rename %s: %s", cmd->arg, strerror(errno));
+      pr_response_add_err(R_550, _("Rename %s: %s"), cmd->arg, strerror(errno));
       return ERROR(cmd);
     }
 
@@ -4140,7 +4144,7 @@
         strerror(errno));
   }
 
-  pr_response_add(R_250, "Rename successful");
+  pr_response_add(R_250, _("Rename successful"));
   return HANDLED(cmd);
 }
 
@@ -4166,7 +4170,7 @@
   if (preg && regexec(preg, cmd->arg, 0, NULL, 0) != 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathAllowFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -4175,7 +4179,7 @@
   if (preg && regexec(preg, cmd->arg, 0, NULL, 0) == 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathDenyFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
     return ERROR(cmd);
   }
 #endif
@@ -4200,14 +4204,14 @@
   pr_pool_tag(session.xfer.p, "session xfer pool");
 
   session.xfer.path = pstrdup(session.xfer.p, path);
-  pr_response_add(R_350, "File or directory exists, ready for "
-    "destination name.");
+  pr_response_add(R_350, _("File or directory exists, ready for "
+    "destination name"));
 
   return HANDLED(cmd);
 }
 
 MODRET core_noop(cmd_rec *cmd) {
-  pr_response_add(R_200, "NOOP command successful");
+  pr_response_add(R_200, _("NOOP command successful"));
   return HANDLED(cmd);
 }
 
@@ -4224,7 +4228,7 @@
 
   feat = pr_feat_get();
   if (feat) {
-    feat = pstrcat(cmd->tmp_pool, "Features:\n ", feat, NULL);
+    feat = pstrcat(cmd->tmp_pool, _("Features:\n "), feat, NULL);
     while (TRUE) {
       const char *next;
 
@@ -4239,10 +4243,10 @@
     }
 
     pr_response_add(R_211, "%s", feat);
-    pr_response_add(R_DUP, "End");
+    pr_response_add(R_DUP, _("End"));
 
   } else {
-    pr_response_add(R_211, "No features supported");
+    pr_response_add(R_211, _("No features supported"));
   }
 
   return HANDLED(cmd);
@@ -4267,7 +4271,7 @@
     *cp = toupper(*cp);
 
   if (!command_exists(opts_cmd)) {
-    pr_response_add_err(R_501, "%s: %s not understood", cmd->argv[0],
+    pr_response_add_err(R_501, _("%s: %s not understood"), cmd->argv[0],
       cmd->argv[1]);
     return ERROR(cmd);
   }
@@ -4285,12 +4289,12 @@
    */
 
   if (cmd->argc == 3) {
-    pr_response_add_err(R_501, "%s: %s options '%s' not understood",
+    pr_response_add_err(R_501, _("%s: %s options '%s' not understood"),
       cmd->argv[0], cmd->argv[1], cmd->argv[2]);
     return ERROR(cmd);
   }
 
-  pr_response_add(R_200, "%s command successful", cmd->argv[0]);
+  pr_response_add(R_200, _("%s command successful"), cmd->argv[0]);
   return HANDLED(cmd);
 }
 
@@ -4412,6 +4416,9 @@
   pr_feat_add("MDTM");
   pr_feat_add("REST STREAM");
   pr_feat_add("SIZE");
+#ifdef PR_USE_NLS
+  pr_feat_add("UTF8");
+#endif /* PR_USE_NLS */
 
   /* Register a startup handler. */
   pr_event_register(&core_module, "core.startup", core_startup_ev, NULL);

Index: mod_ls.c
===================================================================
RCS file: /cvsroot/proftp/proftpd/modules/mod_ls.c,v
retrieving revision 1.128
retrieving revision 1.129
diff -u -r1.128 -r1.129
--- mod_ls.c	24 Aug 2005 16:10:30 -0000	1.128
+++ mod_ls.c	25 May 2006 16:55:34 -0000	1.129
@@ -2,7 +2,7 @@
  * ProFTPD - FTP server daemon
  * Copyright (c) 1997, 1998 Public Flood Software
  * Copyright (c) 1999, 2000 MacGyver aka Habeeb J. Dihu <macgyver@tos.net>
- * Copyright (c) 2001-2004 The ProFTPD Project team
+ * Copyright (c) 2001-2006 The ProFTPD Project team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -375,11 +375,6 @@
     else
       t = pr_localtime(p, (time_t *) &mtime);
 
-    if (!t) {
-      pr_response_add_err(R_421, "Fatal error (localtime() returned NULL?!?)");
-      return -1;
-    }
-
     if (opt_F) {
       if (S_ISLNK(st.st_mode))
         suffix[0] = '@';
@@ -953,15 +948,6 @@
 
     int d = 0;
 
-#if 0
-    if (opt_l) {
-      if (opt_STAT)
-        pr_response_add(R_211, "total 0");
-      else if (sendline("total 0\n") < 0)
-        return -1;
-    }
-#endif
-
     s = dir;
     while (*s) {
       if (**s == '.') {
@@ -1134,7 +1120,7 @@
     ls_errno = 0;
 
   } else if (ls_errno) {
-    pr_response_add(R_211, "ERROR: %s", strerror(ls_errno));
+    pr_response_add(R_211, _("ERROR: %s"), strerror(ls_errno));
     ls_errno = 0;
   }
 }
@@ -1523,13 +1509,13 @@
 
     } else if (!skiparg) {
       if (a == GLOB_NOSPACE)
-        pr_response_add(R_226, "Out of memory during globbing of %s", arg);
+        pr_response_add(R_226, _("Out of memory during globbing of %s"), arg);
 
       else if (a == GLOB_ABORTED)
-        pr_response_add(R_226, "Read error during globbing of %s", arg);
+        pr_response_add(R_226, _("Read error during globbing of %s"), arg);
 
       else if (a != GLOB_NOMATCH)
-        pr_response_add(R_226, "Unknown error during globbing of %s", arg);
+        pr_response_add(R_226, _("Unknown error during globbing of %s"), arg);
     }
 
     if (!skiparg && use_globbing && globbed)
@@ -1878,25 +1864,24 @@
       return ERROR(cmd);
     }
 
-    pr_response_add(R_211, "Status of '%s'", main_server->ServerName);
-    pr_response_add(R_DUP, "Connected from %s (%s)", session.c->remote_name,
+    pr_response_add(R_211, _("Status of '%s'"), main_server->ServerName);
+    pr_response_add(R_DUP, _("Connected from %s (%s)"), session.c->remote_name,
       pr_netaddr_get_ipstr(session.c->remote_addr));
-    pr_response_add(R_DUP, "Logged in as %s", session.user);
-    pr_response_add(R_DUP, "TYPE: %s, STRUcture: File, Mode: Stream",
+    pr_response_add(R_DUP, _("Logged in as %s"), session.user);
+    pr_response_add(R_DUP, _("TYPE: %s, STRUcture: File, Mode: Stream"),
       (session.sf_flags & SF_ASCII) ? "ASCII" : "BINARY");
 
     if (session.total_bytes)
-      pr_response_add(R_DUP, "Total bytes transferred for session: %" PR_LU,
+      pr_response_add(R_DUP, _("Total bytes transferred for session: %" PR_LU),
         (pr_off_t) session.total_bytes);
 
     if (session.sf_flags & SF_XFER) {
-
       /* Report on the data transfer attributes.
        */
 
-      pr_response_add(R_DUP, "%s from %s port %u",
+      pr_response_add(R_DUP, _("%s from %s port %u"),
         (session.sf_flags & SF_PASSIVE) ?
-          "Passive data transfer from" : "Active data transfer to",
+          _("Passive data transfer from") : _("Active data transfer to"),
         pr_netaddr_get_ipstr(session.d->remote_addr), session.d->remote_port);
 
       if (session.xfer.file_size)
@@ -1911,9 +1896,9 @@
           session.xfer.path, (pr_off_t) session.xfer.total_bytes);
 
     } else
-      pr_response_add(R_DUP, "No data connection");
+      pr_response_add(R_DUP, _("No data connection"));
 
-    pr_response_add(R_DUP, "End of status");
+    pr_response_add(R_DUP, _("End of status"));
 
     return HANDLED(cmd);
   }
@@ -1978,9 +1963,9 @@
   opt_C = opt_d = opt_F = opt_R = 0;
   opt_a = opt_l = opt_STAT = 1;
 
-  pr_response_add(R_211, "Status of %s:", arg && *arg ? arg : ".");
+  pr_response_add(R_211, _("Status of %s:"), arg && *arg ? arg : ".");
   res = dolist(cmd, arg && *arg ? arg : ".", FALSE);
-  pr_response_add(R_211, "End of Status");
+  pr_response_add(R_211, _("End of status"));
   return (res == -1 ? ERROR(cmd) : HANDLED(cmd));
 }
 
@@ -2126,7 +2111,7 @@
     memset(&g, '\0', sizeof(glob_t));
 
     if (pr_fs_glob(target, GLOB_PERIOD, NULL, &g) != 0) {
-      pr_response_add_err(R_450, "No files found");
+      pr_response_add_err(R_450, _("No files found"));
       return ERROR(cmd);
     }
 
@@ -2214,7 +2199,7 @@
       res = nlstdir(cmd, target);
 
     } else {
-      pr_response_add_err(R_450, "%s: Not a regular file", cmd->arg);
+      pr_response_add_err(R_450, _("%s: Not a regular file"), cmd->arg);
       return ERROR(cmd);
     }
 

Index: mod_site.c
===================================================================
RCS file: /cvsroot/proftp/proftpd/modules/mod_site.c,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- mod_site.c	12 Dec 2004 05:59:27 -0000	1.44
+++ mod_site.c	25 May 2006 16:55:34 -0000	1.45
@@ -72,7 +72,8 @@
 #endif
 
   if (cmd->argc < 3) {
-    pr_response_add_err(R_500, "'SITE %s' not understood", _get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'SITE %s' not understood"),
+      _get_full_cmd(cmd));
     return NULL;
   }
 
@@ -88,7 +89,7 @@
   if (preg && regexec(preg, arg, 0, NULL, 0) != 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathAllowFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), arg);
     return ERROR(cmd);
   }
 
@@ -97,7 +98,7 @@
   if (preg && regexec(preg, arg, 0, NULL, 0) == 0) {
     pr_log_debug(DEBUG2, "'%s %s' denied by PathDenyFilter", cmd->argv[0],
       cmd->arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), arg);
     return ERROR(cmd);
   }
 #endif
@@ -129,7 +130,7 @@
     return ERROR(cmd);
 
   } else
-    pr_response_add(R_200, "SITE %s command successful", cmd->argv[0]);
+    pr_response_add(R_200, _("SITE %s command successful"), cmd->argv[0]);
 
   return HANDLED(cmd);
 }
@@ -143,7 +144,8 @@
 #endif
 
   if (cmd->argc < 3) {
-    pr_response_add_err(R_500, "'SITE %s' not understood", _get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'SITE %s' not understood"),
+      _get_full_cmd(cmd));
     return NULL;
   }
 
@@ -159,7 +161,7 @@
   if (preg && regexec(preg, arg, 0, NULL, 0) != 0) {
     pr_log_debug(DEBUG2, "'%s %s %s' denied by PathAllowFilter", cmd->argv[0],
       cmd->argv[1], arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), arg);
     return ERROR(cmd);
   }
 
@@ -168,7 +170,7 @@
   if (preg && regexec(preg, arg, 0, NULL, 0) == 0) {
     pr_log_debug(DEBUG2, "'%s %s %s' denied by PathDenyFilter", cmd->argv[0],
       cmd->argv[1], arg);
-    pr_response_add_err(R_550, "%s: Forbidden filename", arg);
+    pr_response_add_err(R_550, _("%s: Forbidden filename"), arg);
     return ERROR(cmd);
   }
 #endif
@@ -327,7 +329,7 @@
     }
 
     if (invalid) {
-      pr_response_add_err(R_550, "'%s': invalid mode.", cmd->argv[1]);
+      pr_response_add_err(R_550, _("'%s': invalid mode"), cmd->argv[1]);
       return ERROR(cmd);
     }
   }
@@ -337,7 +339,7 @@
     return ERROR(cmd);
 
   } else
-    pr_response_add(R_200, "SITE %s command successful", cmd->argv[0]);
+    pr_response_add(R_200, _("SITE %s command successful"), cmd->argv[0]);
 
   return HANDLED(cmd);
 }
@@ -371,13 +373,13 @@
       *cp = toupper(*cp);
 
     for (i = 0; _help[i].cmd; i++)
-      if (!strcasecmp(cmd->argv[1], _help[i].cmd)) {
-        pr_response_add(R_214, "Syntax: SITE %s %s",
+      if (strcasecmp(cmd->argv[1], _help[i].cmd) == 0) {
+        pr_response_add(R_214, _("Syntax: SITE %s %s"),
           cmd->argv[1], _help[i].syntax);
         return HANDLED(cmd);
       }
 
-    pr_response_add_err(R_502, "Unknown command 'SITE %s'", cmd->arg);
+    pr_response_add_err(R_502, _("Unknown command 'SITE %s'"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -399,22 +401,22 @@
   register unsigned int i = 0;
 
   if (!cmd->argc) {
-    pr_response_add_err(R_500, "'SITE' requires parameters");
+    pr_response_add_err(R_500, _("'SITE' requires parameters"));
     return ERROR(cmd);
   }
 
   for (i = 0; site_commands[i].command; i++)
-    if (!strcmp(cmd->argv[0], site_commands[i].command)) {
+    if (strcmp(cmd->argv[0], site_commands[i].command) == 0) {
       if (site_commands[i].requires_auth && cmd_auth_chk &&
           !cmd_auth_chk(cmd)) {
-        pr_response_send(R_530, "Please login with " C_USER " and " C_PASS);
+        pr_response_send(R_530, _("Please login with " C_USER " and " C_PASS));
         return ERROR(cmd);
 
       } else
         return site_commands[i].handler(cmd);
     }
 
-  pr_response_add_err(R_500, "'SITE %s' not understood", cmd->argv[0]);
+  pr_response_add_err(R_500, _("'SITE %s' not understood"), cmd->argv[0]);
   return ERROR(cmd);
 }
 
@@ -424,7 +426,7 @@
 MODRET site_pre_cmd(cmd_rec *cmd) {
   if (cmd->argc > 1 && !strcasecmp(cmd->argv[1], "help"))
     pr_response_add(R_214,
-      "The following SITE commands are recognized (* =>'s unimplemented).");
+      _("The following SITE commands are recognized (* =>'s unimplemented)"));
   return DECLINED(cmd);
 }
 
@@ -449,8 +451,9 @@
 }
 
 MODRET site_post_cmd(cmd_rec *cmd) {
-  if (cmd->argc > 1 && !strcasecmp(cmd->argv[1], "help"))
-    pr_response_add(R_214, "Direct comments to %s.",
+  if (cmd->argc > 1 &&
+      strcasecmp(cmd->argv[1], "help") == 0)
+    pr_response_add(R_214, _("Direct comments to %s"),
       (cmd->server->ServerAdmin ? cmd->server->ServerAdmin : "ftp-admin"));
   return DECLINED(cmd);
 }

Index: mod_xfer.c
===================================================================
RCS file: /cvsroot/proftp/proftpd/modules/mod_xfer.c,v
retrieving revision 1.200
retrieving revision 1.201
diff -u -r1.200 -r1.201
--- mod_xfer.c	25 May 2006 15:44:14 -0000	1.200
+++ mod_xfer.c	25 May 2006 16:55:34 -0000	1.201
@@ -916,7 +916,7 @@
   if (!basenamestart) {
 
     /* This probably shouldn't happen */
-    pr_response_add_err(R_451, "%s: Bad file name", path);
+    pr_response_add_err(R_451, _("%s: Bad file name"), path);
     return -1;
   }
 
@@ -928,7 +928,7 @@
   if (maxlen > PR_TUNABLE_PATH_MAX) {
 
     /* This probably shouldn't happen */
-    pr_response_add_err(R_451, "%s: File name too long", path);
+    pr_response_add_err(R_451, _("%s: File name too long"), path);
     return -1;
   }
 
@@ -962,7 +962,7 @@
     pr_log_debug(DEBUG3, "HiddenStore path '%s' already exists",
       hidden_path);
 
-    pr_response_add_err(R_550, "%s: Temporary hidden file %s already exists",
+    pr_response_add_err(R_550, _("%s: Temporary hidden file %s already exists"),
       cmd->arg, hidden_path);
 
     return -1;
@@ -1012,7 +1012,7 @@
     *allow_restart = NULL;
 
   if (cmd->argc < 2) {
-    pr_response_add_err(R_500, "'%s' not understood", get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
@@ -1030,12 +1030,12 @@
   if (fmode && (session.xfer.xfer_type != STOR_APPEND) &&
       (!allow_overwrite || *allow_overwrite == FALSE)) {
     pr_log_debug(DEBUG6, "AllowOverwrite denied permission for %s", cmd->arg);
-    pr_response_add_err(R_550, "%s: Overwrite permission denied", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Overwrite permission denied"), cmd->arg);
     return ERROR(cmd);
   }
 
   if (fmode && !S_ISREG(fmode) && !S_ISFIFO(fmode)) {
-    pr_response_add_err(R_550, "%s: Not a regular file", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Not a regular file"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -1048,7 +1048,7 @@
      (session.restart_pos || (session.xfer.xfer_type == STOR_APPEND)) &&
      (!allow_restart || *allow_restart == FALSE)) {
 
-    pr_response_add_err(R_451, "%s: Append/Restart not permitted, try again",
+    pr_response_add_err(R_451, _("%s: Append/Restart not permitted, try again"),
       cmd->arg);
     session.restart_pos = 0L;
     session.xfer.xfer_type = STOR_DEFAULT;
@@ -1088,7 +1088,7 @@
    */
 
   if (cmd->argc > 2) {
-    pr_response_add_err(R_500, "'%s' not understood.", get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
@@ -1097,7 +1097,7 @@
    *   REST: session.restart_pos > 0
    */
   if (session.restart_pos) {
-    pr_response_add_err(R_550, "STOU incompatible with REST");
+    pr_response_add_err(R_550, _("STOU incompatible with REST"));
     return ERROR(cmd);
   }
 
@@ -1119,7 +1119,7 @@
       strerror(errno));
 
     /* If we can't guarantee a unique filename, refuse the command. */
-    pr_response_add_err(R_450, "%s: unable to generate unique filename",
+    pr_response_add_err(R_450, _("%s: unable to generate unique filename"),
       cmd->argv[0]);
     return ERROR(cmd);
 
@@ -1159,14 +1159,14 @@
   if (mode && session.xfer.xfer_type != STOR_APPEND &&
       (!allow_overwrite || *allow_overwrite == FALSE)) {
     pr_log_debug(DEBUG6, "AllowOverwrite denied permission for %s", cmd->arg);
-    pr_response_add_err(R_550, "%s: Overwrite permission denied", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Overwrite permission denied"), cmd->arg);
     return ERROR(cmd);
   }
 
   /* Not likely to _not_ be a regular file, but just to be certain... */
   if (mode && !S_ISREG(mode)) {
     (void) pr_fsio_unlink(cmd->arg);
-    pr_response_add_err(R_550, "%s: Not a regular file", cmd->arg);
+    pr_response_add_err(R_550, _("%s: Not a regular file"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -1265,7 +1265,7 @@
     ret = regexec(preg, cmd->arg, 0, NULL, 0);
     if (ret != 0) {
       pr_log_debug(DEBUG2, "'%s' denied by PathAllowFilter", cmd->arg);
-      pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+      pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
       return ERROR(cmd);
 
     } else {
@@ -1282,7 +1282,7 @@
     ret = regexec(preg, cmd->arg, 0, NULL, 0);
     if (ret == 0) {
       pr_log_debug(DEBUG2, "'%s' denied by PathDenyFilter", cmd->arg);
-      pr_response_add_err(R_550, "%s: Forbidden filename", cmd->arg);
+      pr_response_add_err(R_550, _("%s: Forbidden filename"), cmd->arg);
       return ERROR(cmd);
 
     } else {
@@ -1336,7 +1336,7 @@
      * file being resumed.
      */
     if (stor_fh && session.restart_pos > st.st_size) {
-      pr_response_add_err(R_554, "%s: invalid REST argument", cmd->arg);
+      pr_response_add_err(R_554, _("%s: invalid REST argument"), cmd->arg);
       (void) pr_fsio_close(stor_fh);
       stor_fh = NULL;
       return ERROR(cmd);
@@ -1509,7 +1509,7 @@
         pr_log_pri(PR_LOG_WARNING, "Rename of %s to %s failed: %s.",
           session.xfer.path_hidden, session.xfer.path, strerror(errno));
 
-        pr_response_add_err(R_550, "%s: Rename of hidden file %s failed: %s",
+        pr_response_add_err(R_550, _("%s: Rename of hidden file %s failed: %s"),
           session.xfer.path, session.xfer.path_hidden, strerror(errno));
 
         pr_fsio_unlink(session.xfer.path_hidden);
@@ -1529,7 +1529,7 @@
   unsigned char *hidden_stores = NULL;
 
   if (cmd->argc != 2) {
-    pr_response_add_err(R_500, "'%s' not understood", get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
@@ -1537,7 +1537,8 @@
   hidden_stores = get_param_ptr(CURRENT_CONF, "HiddenStores", FALSE);
   if (hidden_stores != NULL &&
       *hidden_stores == TRUE) {
-    pr_response_add_err(R_501, "REST not compatible with server configuration");
+    pr_response_add_err(R_501,
+      _("REST not compatible with server configuration"));
     return ERROR(cmd);
   }
 
@@ -1546,7 +1547,7 @@
    */
   if (*cmd->argv[1] == '-') {
     pr_response_add_err(R_501,
-      "REST requires a value greater than or equal to 0");
+      _("REST requires a value greater than or equal to 0"));
     return ERROR(cmd);
   }
 
@@ -1559,7 +1560,7 @@
   if (endp &&
       *endp) {
     pr_response_add_err(R_501,
-      "REST requires a value greater than or equal to 0");
+      _("REST requires a value greater than or equal to 0"));
     return ERROR(cmd);
   }
 
@@ -1576,14 +1577,14 @@
       pos != 0) {
     pr_log_debug(DEBUG5, "%s not allowed in ASCII mode", cmd->argv[0]);
     pr_response_add_err(R_501,
-      "%s: Resuming transfers not allowed in ASCII mode", cmd->argv[0]);
+      _("%s: Resuming transfers not allowed in ASCII mode"), cmd->argv[0]);
     return ERROR(cmd);
   } 
 
   session.restart_pos = pos;
 
-  pr_response_add(R_350, "Restarting at %" PR_LU ". Send STORE or RETRIEVE to "
-    "initiate transfer", (pr_off_t) pos);
+  pr_response_add(R_350, _("Restarting at %" PR_LU
+    ". Send STORE or RETRIEVE to initiate transfer"), (pr_off_t) pos);
   return HANDLED(cmd);
 }
 
@@ -1597,7 +1598,7 @@
   unsigned char *allow_restart = NULL;
 
   if (cmd->argc < 2) {
-    pr_response_add_err(R_500, "'%s' not understood", get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
@@ -1615,7 +1616,7 @@
     if (!fmode)
       pr_response_add_err(R_550, "%s: %s", cmd->arg, strerror(errno));
     else
-      pr_response_add_err(R_550, "%s: Not a regular file", cmd->arg);
+      pr_response_add_err(R_550, _("%s: Not a regular file"), cmd->arg);
     return ERROR(cmd);
   }
 
@@ -1626,7 +1627,7 @@
 
   if (session.restart_pos &&
      (allow_restart && *allow_restart == FALSE)) {
-    pr_response_add_err(R_451, "%s: Restart not permitted, try again",
+    pr_response_add_err(R_451, _("%s: Restart not permitted, try again"),
       cmd->arg);
     session.restart_pos = 0L;
     return ERROR(cmd);
@@ -1680,7 +1681,7 @@
      * file being resumed.
      */
     if (session.restart_pos > st.st_size) {
-      pr_response_add_err(R_554, "%s: invalid REST argument", cmd->arg);
+      pr_response_add_err(R_554, _("%s: invalid REST argument"), cmd->arg);
       pr_fsio_close(retr_fh);
       retr_fh = NULL;
 
@@ -1696,7 +1697,7 @@
 
       pr_log_debug(DEBUG0, "error seeking to offset %" PR_LU
         "for file %s: %s", session.restart_pos, dir, strerror(errno));
-      pr_response_add_err(R_554, "%s: invalid REST argument", cmd->arg);
+      pr_response_add_err(R_554, _("%s: invalid REST argument"), cmd->arg);
       return ERROR(cmd);
     }
 
@@ -1815,7 +1816,7 @@
 
 MODRET xfer_abor(cmd_rec *cmd) {
   if (cmd->argc != 1) {
-    pr_response_add_err(R_500, "'%s' not understood", get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
@@ -1823,13 +1824,13 @@
   pr_data_reset();
   pr_data_cleanup();
 
-  pr_response_add(R_226, "Abort successful");
+  pr_response_add(R_226, _("Abort successful"));
   return HANDLED(cmd);
 }
 
 MODRET xfer_type(cmd_rec *cmd) {
   if (cmd->argc < 2 || cmd->argc > 3) {
-    pr_response_add_err(R_500, "'%s' not understood", get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
@@ -1850,17 +1851,17 @@
     session.sf_flags &= (SF_ALL^SF_ASCII);
 
   } else {
-    pr_response_add_err(R_500, "'%s' not understood", get_full_cmd(cmd));
+    pr_response_add_err(R_500, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
-  pr_response_add(R_200, "Type set to %s", cmd->argv[1]);
+  pr_response_add(R_200, _("Type set to %s"), cmd->argv[1]);
   return HANDLED(cmd);
 }
 
 MODRET xfer_stru(cmd_rec *cmd) {
   if (cmd->argc != 2) {
-    pr_response_add_err(R_501, "'%s' not understood", get_full_cmd(cmd));
+    pr_response_add_err(R_501, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
@@ -1869,7 +1870,7 @@
   switch ((int) cmd->argv[1][0]) {
     case 'F':
       /* Should 202 be returned instead??? */
-      pr_response_add(R_200, "Structure set to F.");
+      pr_response_add(R_200, _("Structure set to F"));
       return HANDLED(cmd);
       break;
 
@@ -1888,13 +1889,13 @@
 
     case 'P':
       /* RFC-1123 recommends against implementing P. */
-      pr_response_add_err(R_504, "'%s' unsupported structure type.",
+      pr_response_add_err(R_504, _("'%s' unsupported structure type"),
         get_full_cmd(cmd));
       return ERROR(cmd);
       break;
 
     default:
-      pr_response_add_err(R_501, "'%s' unrecognized structure type.",
+      pr_response_add_err(R_501, _("'%s' unrecognized structure type"),
         get_full_cmd(cmd));
       return ERROR(cmd);
       break;
@@ -1903,7 +1904,7 @@
 
 MODRET xfer_mode(cmd_rec *cmd) {
   if (cmd->argc != 2) {
-    pr_response_add_err(R_501, "'%s' not understood", get_full_cmd(cmd));
+    pr_response_add_err(R_501, _("'%s' not understood"), get_full_cmd(cmd));
     return ERROR(cmd);
   }
 
@@ -1912,7 +1913,7 @@
   switch ((int) cmd->argv[1][0]) {
     case 'S':
       /* Should 202 be returned instead??? */
-      pr_response_add(R_200, "Mode set to S.");
+      pr_response_add(R_200, _("Mode set to S"));
       return HANDLED(cmd);
       break;
 
@@ -1920,13 +1921,13 @@
       /* FALLTHROUGH */
 
     case 'C':
-      pr_response_add_err(R_504, "'%s' unsupported transfer mode.",
+      pr_response_add_err(R_504, _("'%s' unsupported transfer mode"),
         get_full_cmd(cmd));
       return ERROR(cmd);
       break;
 
     default:
-      pr_response_add_err(R_501, "'%s' unrecognized transfer mode.",
+      pr_response_add_err(R_501, _("'%s' unrecognized transfer mode"),
         get_full_cmd(cmd));
       return ERROR(cmd);
       break;
@@ -1934,12 +1935,12 @@
 }
 
 MODRET xfer_allo(cmd_rec *cmd) {
-  pr_response_add(R_202, "No storage allocation necessary.");
+  pr_response_add(R_202, _("No storage allocation necessary"));
   return HANDLED(cmd);
 }
 
 MODRET xfer_smnt(cmd_rec *cmd) {
-  pr_response_add(R_502, "SMNT command not implemented.");
+  pr_response_add(R_502, _("SMNT command not implemented"));
   return HANDLED(cmd);
 }
 



-------------------------------------------------------
All the advantages of Linux Managed Hosting--Without the Cost and Risk!
Fully trained technicians. The highest number of Red Hat certifications in
the hosting industry. Fanatical Support. Click to learn more
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=107521&bid=248729&dat=121642
_______________________________________________
ProFTPD Committers Mailing List
proftpd-committers@proftpd.org
https://lists.sourceforge.net/lists/listinfo/proftp-committers
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic