- Fix reply code handling for USER command and bump PORTREVISION.

According to STD 9 (RFC 959), 230 reply code can be returned
  just after that command.  While the upstream has been informed
  it is unlikely to roll out the next release including this fix
  in the near future.
- Make portlint(1) happy.
- Take maintainership.
This commit is contained in:
Hiroki Sato 2006-03-23 10:36:38 +00:00
parent fb1aeeee80
commit eaaaeac3ec
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=158000
3 changed files with 45 additions and 15 deletions

View file

@ -8,15 +8,15 @@
PORTNAME= spegla
PORTVERSION= 1.1p4
PORTREVISION= 3
PORTREVISION= 4
CATEGORIES= ftp ipv6
MASTER_SITES= ftp://subzero.campus.luth.se/pub/spegla/
# ftp://ftp.luth.se/pub/unix/mirror/
MASTER_SITES= ftp://subzero.campus.luth.se/pub/spegla/ \
ftp://ftp.luth.se/pub/unix/mirror/
PATCH_SITES= http://www.imasy.or.jp/~ume/ipv6/
PATCHFILES= ${DISTNAME}-ipv6-20020129-3.diff.gz
MAINTAINER= ports@FreeBSD.org
MAINTAINER= hrs@FreeBSD.org
COMMENT= A mirror program for FTP sites (written in C)
MAKE_ARGS= MANDIR=${MAN1PREFIX}/man/man
@ -30,11 +30,11 @@ post-extract:
.endfor
pre-install:
@${MKDIR} ${PREFIX}/share/examples/spegla
@${MKDIR} ${EXAMPLESDIR}
post-install:
${INSTALL_DATA} ${WRKSRC}/freebsd.org ${PREFIX}/share/examples/spegla
${INSTALL_DATA} ${WRKSRC}/spegla.conf ${PREFIX}/share/examples/spegla
${INSTALL_SCRIPT} ${WRKSRC}/spegla.sh ${PREFIX}/share/examples/spegla
${INSTALL_DATA} ${WRKSRC}/freebsd.org ${EXAMPLESDIR}
${INSTALL_DATA} ${WRKSRC}/spegla.conf ${EXAMPLESDIR}
${INSTALL_SCRIPT} ${WRKSRC}/spegla.sh ${EXAMPLESDIR}
.include <bsd.port.mk>

View file

@ -1,5 +1,5 @@
--- jftp.c.orig Fri Mar 19 03:47:12 2004
+++ jftp.c Fri Mar 19 03:47:57 2004
--- jftp.c.orig Thu Mar 23 17:34:21 2006
+++ jftp.c Thu Mar 23 17:39:39 2006
@@ -40,6 +40,7 @@
#include <netinet/in.h>
#include <arpa/inet.h>
@ -50,7 +50,36 @@
}
if(islongtext) {
size = sizeof(c->ftp_buf);
@@ -980,7 +998,7 @@
@@ -455,17 +473,22 @@
c->ftp_resp = JFTP_ERR;
return -1;
}
- if (ftp_req(c, "user %s", c->ftp_user_name) < 0 || c->ftp_resp != 331) {
+ if (ftp_req(c, "user %s", c->ftp_user_name) < 0
+ || (c->ftp_resp != 331 && c->ftp_resp != 230)) {
E_LOGX_1(0, "Username %s: failed", c->ftp_user_name);
FD_CLOSE(c->ftp_com);
c->ftp_resp = JFTP_ERR;
return -1;
}
- if (ftp_req(c, "pass %s", c->ftp_password) < 0 || c->ftp_resp != 230) {
- E_LOGX(0, "Password xxxxx: failed");
- FD_CLOSE(c->ftp_com);
- c->ftp_resp = JFTP_ERR;
- return -1;
+ /* USER command can respond 230 immediately in some cases */
+ if (c->ftp_resp != 230) {
+ if (ftp_req(c, "pass %s", c->ftp_password) < 0
+ || c->ftp_resp != 230) {
+ E_LOGX(0, "Password xxxxx: failed");
+ FD_CLOSE(c->ftp_com);
+ c->ftp_resp = JFTP_ERR;
+ return -1;
+ }
}
c->ftp_resp = 0;
if (ftp_req(c, "TYPE I") < 0 || c->ftp_resp != 200) {
@@ -980,7 +1003,7 @@
/* Late versions of wu-ftpd does some kind of recursive
* listing if only a '.' is given as directory.
*/

View file

@ -1,5 +1,6 @@
@comment $FreeBSD$
bin/spegla
share/examples/spegla/freebsd.org
share/examples/spegla/spegla.conf
share/examples/spegla/spegla.sh
@dirrm share/examples/spegla
%%EXAMPLESDIR%%/freebsd.org
%%EXAMPLESDIR%%/spegla.conf
%%EXAMPLESDIR%%/spegla.sh
@dirrm %%EXAMPLESDIR%%