bin/91299: [patch] add ftpd SITE SHA256 command

Pawel Worach pawel.worach at gmail.com
Tue Jan 3 22:30:09 PST 2006


>Number:         91299
>Category:       bin
>Synopsis:       [patch] add ftpd SITE SHA256 command
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Wed Jan 04 06:30:06 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     Pawel Worach
>Release:        7.0-CURRENT
>Organization:
>Environment:
[patch] ftpd SITE SHA256 command
>Description:
              Patch to add a "SITE SHA256" command to ftpd similar to the "SITE MD5" command.
>How-To-Repeat:
              
>Fix:
Index: libexec/ftpd/ftpcmd.y
===================================================================
RCS file: /export/ctm/cvs/src/libexec/ftpd/ftpcmd.y,v
retrieving revision 1.64
diff -u -u -r1.64 ftpcmd.y
--- libexec/ftpd/ftpcmd.y	18 Nov 2004 13:46:29 -0000	1.64
+++ libexec/ftpd/ftpcmd.y	4 Jan 2006 05:29:02 -0000
@@ -64,6 +64,7 @@
 #include <md5.h>
 #include <netdb.h>
 #include <pwd.h>
+#include <sha256.h>
 #include <signal.h>
 #include <stdint.h>
 #include <stdio.h>
@@ -137,7 +138,7 @@
 	CDUP	STOU	SMNT	SYST	SIZE	MDTM
 	LPRT	LPSV	EPRT	EPSV
 
-	UMASK	IDLE	CHMOD	MDFIVE
+	UMASK	IDLE	CHMOD	MDFIVE	SHATWOFIVESIX
 
 	LEXERR	NOTIMPL
 
@@ -619,6 +620,20 @@
 			if ($6)
 				free($6);
 		}
+	| SITE SP SHATWOFIVESIX check_login SP pathname CRLF
+		{
+			char p[64], *q;
+
+			if ($4 && $6) {
+				q = SHA256_File($6, p);
+				if (q != NULL)
+					reply(200, "SHA256(%s) = %s", $6, p);
+				else
+					perror_reply(550, $6);
+			}
+			if ($6)
+				free($6);
+		}
 	| SITE SP UMASK check_login CRLF
 		{
 			int oldmask;
@@ -1131,6 +1146,7 @@
 
 struct tab sitetab[] = {
 	{ "MD5", MDFIVE, STR1, 1,	"[ <sp> file-name ]" },
+	{ "SHA256", SHATWOFIVESIX, STR1, 1,	"[ <sp> file-name ]" },
 	{ "UMASK", UMASK, ARGS, 1,	"[ <sp> umask ]" },
 	{ "IDLE", IDLE, ARGS, 1,	"[ <sp> maximum-idle-time ]" },
 	{ "CHMOD", CHMOD, NSTR, 1,	"<sp> mode <sp> file-name" },
Index: libexec/ftpd/ftpd.8
===================================================================
RCS file: /export/ctm/cvs/src/libexec/ftpd/ftpd.8,v
retrieving revision 1.69
diff -u -u -r1.69 ftpd.8
--- libexec/ftpd/ftpd.8	18 Jan 2005 09:29:39 -0000	1.69
+++ libexec/ftpd/ftpd.8	4 Jan 2006 05:29:02 -0000
@@ -295,6 +295,7 @@
 .It IDLE Ta set idle-timer, e.g. ``SITE IDLE 60''
 .It CHMOD Ta "change mode of a file [RW], e.g. ``SITE CHMOD 755 filename''"
 .It MD5 Ta "report the files MD5 checksum, e.g. ``SITE MD5 filename''"
+.It SHA256 Ta "report the files SHA256 checksum, e.g. ``SITE SHA256 filename''"
 .It HELP Ta give help information
 .El
 .Pp

>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list