File transfer problem

I use proxy for file transfer. when i transfer file to the other user,but he does not accept file as soon as he get the invitation message. After a long time(for example,half an hour later),when he clicked acept button, the file can’'t transfer. The problem happens during the process of Target Establishes SOCKS5 Connection with StreamHost.

after send SOCKS request as follow:

-----+-++


+–


VER

REP

RSV

ATYP

BND.ADDR

BND.PORT

-----+-++


+–


1

1

X’‘00’’

1

Variable

2

-----+-++


+–


where:

o VER : X’‘05’’

o CMD: X’‘01’’

o RSV : X’‘00’’

o ATYP: X’'03

the The server returns a reply in which the value of Reply field is X’‘02’’ (connection not allowed by ruleset)

why this happens?when the file transfer fails,the openfire error log of server is as follow:

2007.07.16 14:40:36 [org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$1$1.run(Pr oxyConnectionManager.java:110)

] Error processing file transfer proxy connection

java.io.IOException: Illegal proxy transfer

at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.processConn ection(ProxyConnectionManager.java:187)

at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager.access$100( ProxyConnectionManager.java:39)

at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$1$1.run(Pro xyConnectionManager.java:107)

at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

2007.07.16 14:41:25 [org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$2.run(Prox yConnectionManager.java:296)

] Error during file transfer

java.net.SocketException: Connection reset

at java.net.SocketInputStream.read(Unknown Source)

at java.net.SocketInputStream.read(Unknown Source)

at org.jivesoftware.openfire.filetransfer.proxy.DefaultProxyTransfer.doTransfer(De faultProxyTransfer.java:129)

at org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager$2.run(Proxy ConnectionManager.java:293)

at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)

at java.util.concurrent.FutureTask.run(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)