[分享]解决vsftpd乱码(vsftpd-2.0.6)

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#16

帖子 angelus » 2008-08-18 19:53

2G限制可能是编写补丁的变量设置为 long 型的,超过-2147438648~+2147438647这个范围就会溢出
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
pockter
帖子: 1
注册时间: 2008-04-24 14:32

包里的东西是RedHat的吧

#17

帖子 pockter » 2008-09-12 11:26

下了附件,查看了Install文件和Makefile里面应该是红帽的?
restar
帖子: 322
注册时间: 2007-11-06 13:38

Re: [分享]解决vsftpd乱码(vsftpd-2.0.6)

#18

帖子 restar » 2008-10-22 9:19

那个有完美解决2G以上文件不能显示的问题啊
restar
帖子: 322
注册时间: 2007-11-06 13:38

Re: [分享]解决vsftpd乱码(vsftpd-2.0.6)

#19

帖子 restar » 2008-10-31 11:20

没有高手来解决2G问题啊
crazyrabbit
帖子: 31
注册时间: 2008-10-18 13:34

Re: [分享]解决vsftpd乱码(vsftpd-2.0.6)

#20

帖子 crazyrabbit » 2009-04-17 17:12

你好! :em01
我安装的版本是vsftpd-2.0.7,用这个方法也可解决乱码问题吗?
razorluo
帖子: 4
注册时间: 2008-04-04 21:13

Re: [分享]解决vsftpd乱码(vsftpd-2.0.6)

#21

帖子 razorluo » 2009-05-25 22:37

已经测试过,服务器ubuntu8.04-server,客户机xp,xp上传后编码正常
多谢楼主分享了,gj
xiaoxiu77
帖子: 1
注册时间: 2009-05-27 13:48

Re: [分享]解决vsftpd乱码(vsftpd-2.0.6)

#22

帖子 xiaoxiu77 » 2009-05-27 13:53

楼主,我在编译时出现一个warning,麻烦帮我看看,谢谢!
错误信息:
-----------------
gcc -c str.c -O2 -Wall -W -Wshadow -idirafter dummyinc
str.c: In function `str_iconv_write':
str.c:682: warning: assignment discards qualifiers from pointer target type
str.c:680: warning: unused variable `print_buf'
str.c: In function `str_iconv_read':
str.c:757: warning: assignment discards qualifiers from pointer target type
str.c:755: warning: unused variable `print_buf'
gcc -c netstr.c -O2 -Wall -W -Wshadow -idirafter dummyinc
--------------------------

下面是str.c的相应位置
----------------
void
str_iconv_write(struct mystr* p_str)
{
iconv_t cd;
char *from_buf;
char *dyn_from_buf, *to_buf, *dyn_to_buf;
unsigned int from_len;
unsigned int dyn_from_len, to_len, dyn_to_len;
unsigned int print_buf;

from_buf = str_getbuf(p_str);
from_len = str_getlen(p_str);

p_str->p_buf = 0;
str_free(p_str);

private_str_alloc_memchunk(p_str, from_buf, from_len);
str_reserve(p_str, 2*from_len);
p_str->len=2*from_len;
vsf_sysutil_memclr(p_str->p_buf, p_str->len+1);
dyn_from_buf = from_buf;
dyn_from_len = from_len;
to_buf = p_str->p_buf;
dyn_to_buf = to_buf;
to_len = p_str->len;
dyn_to_len = to_len;

if((cd = vsf_sysutil_iconv_init_write())==(iconv_t)(-1))
{
bug("str_iconv_write");
}

while(vsf_sysutil_iconv(cd, &dyn_from_buf, &dyn_from_len, &dyn_to_buf, &dyn_to_len)==(size_t)(-1))
{
switch(errno)
{
case EILSEQ:
if((dyn_to_buf<to_buf+to_len)&&(dyn_to_buf>=to_buf))
{
vsf_sysutil_memcpy(dyn_to_buf, dyn_from_buf, 1);
dyn_to_buf+=1;
dyn_to_len-=1;
dyn_from_buf+=1;
dyn_from_len = from_buf + from_len -dyn_from_buf;
if(dyn_from_len==0) break;
}
else
break;
continue;

case EINVAL:
break;

case E2BIG:
str_reserve(p_str, to_len+dyn_from_len);
p_str->len=to_len+dyn_from_len;
dyn_to_len+=dyn_from_len;
dyn_to_buf = p_str->p_buf + (dyn_to_buf-to_buf);
to_buf = p_str->p_buf;
to_len = p_str->len;
continue;

default:
die("iconv set strange errno. Should not happenned!");
break;
}
break;
}

str_trunc(p_str, (p_str->len)-dyn_to_len);

vsf_sysutil_iconv_close(cd);
vsf_sysutil_free(from_buf);
}

查阅相关资料好像是数据类型有问题,但是不知道怎么处理 :em20
踏雪惊鸿
帖子: 40
注册时间: 2010-04-21 19:33

Re: [分享]解决vsftpd乱码(vsftpd-2.0.6)

#23

帖子 踏雪惊鸿 » 2010-11-09 20:46

用了你的方法,问题不但没解决, 还变得更加难受,现在搞得我vsftpd卸载卸载不了,重装也重装不了,非常郁闷。

root@xiezhiwei-laptop:/home/xiezhiwei# apt-get install vsftpd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
vsftpd 已经是最新的版本了。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
需要下载 0B/141kB 的软件包。
解压缩后会消耗掉 0B 的额外空间。
正在预设定软件包 ...
选中了曾被取消选择的软件包 vsftpd。
(正在读取数据库 ...

正预备替换 vsftpd 2.2.2-3ubuntu6 (使用 .../vsftpd_2.2.2-3ubuntu6_i386.deb) ...
正在解压缩将用于更替的包文件 vsftpd ...
正在处理用于 man-db 的触发器...
正在处理用于 ureadahead 的触发器...
正在设置 vsftpd (2.2.2-3ubuntu6) ...
vsftpd user (ftp) already exists, doing nothing.

vsftpd directory (/srv/ftp) already exists, doing nothing.
vsftpd start/running, process 11554

显示说在runing,但是登录不上。

重启也出现问题:
root@xiezhiwei-laptop:/home/xiezhiwei# service vsftpd restart
restart: Unknown instance:

删除出现错误:
xiezhiwei@xiezhiwei-laptop:~$ sudo apt-get remove vsftpd
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
下列软件包将被【卸载】:
vsftpd
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 0 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
解压缩后将会空出 471kB 的空间。
您希望继续执行吗?[Y/n]Y
(正在读取数据库 ... 系统当前总共安装有 165 个文件和目录。)
正在删除 vsftpd ...
dpkg:警告:当删除 vsftpd 时,无法删掉目录“/usr”:设备或资源忙 - 该目录会不会是一个挂载点呢?
dpkg:处理 vsftpd (--remove)时出错:
无法删除“/.”: 无效的参数
正在处理用于 ureadahead 的触发器...
正在处理用于 man-db 的触发器...
在处理时有错误发生:
vsftpd
E: Sub-process /usr/bin/dpkg returned an error code (1)


查错误代码,这样解决还是不行,彻底无语了。
cd /var/lib/dpkg
sudo mv info info.bak
sudo mkdir info
重新安装,在此为:
sudo apt-get --reinstall install

以前还能传英文文件,现在进都进不去了! :em20 :em20
———— I Belive I Can! ————
coffecat
帖子: 1
注册时间: 2011-03-01 21:24

Re: [分享]解决vsftpd乱码(vsftpd-2.0.6)

#24

帖子 coffecat » 2011-03-11 22:12

鉴定完毕,结果如下:
用IE打开时乱码,但是cuteftp打开确是中文
回复