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 #include #include +#include #include #include #include @@ -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, "[ file-name ]" }, + { "SHA256", SHATWOFIVESIX, STR1, 1, "[ file-name ]" }, { "UMASK", UMASK, ARGS, 1, "[ umask ]" }, { "IDLE", IDLE, ARGS, 1, "[ maximum-idle-time ]" }, { "CHMOD", CHMOD, NSTR, 1, " mode 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