DRftp home page


Content

About DRftp

  DRftp is small library (and ftp-client) that allows asynchronous communication with ftp-server (via local and distributed connections). It has implemented XS-interface, so you can use this library in Perl-scripts. Ftp-client written in perl is distributed with this library, it allows more ftp-connections at same time, supports fully automated recursive get/put, automatic restart etc. It may be configured while running with any perl-command or script (also - user functions for most important actions are called). The character "D" means "distributed" - you can run simple ftp-clients on other computers, but they are controlled with the main drftp-server. Simple security supported.

Download

  DRftp-library is distributed under the terms of LGPL, see README and COPYING files for details. Perl-scripts (drftp-client) id completely free.
Download current version (not released yet) via HTTP.
Download DRftp-1.5.0.tar.gz via HTTP.
Download DRftp-1.4.3.tar.gz via HTTP.
Download DRftp-1.4.2.tar.gz via HTTP.
Download DRftp-1.4.1.tar.gz via HTTP.
Download DRftp-1.4.0.tar.gz via HTTP.
Download DRftp-1.3.0.tar.gz via HTTP.
Download DRftp-1.2.1.tar.gz via HTTP.
Download DRftp-1.2.0.tar.gz via HTTP.
Download DRftp-1.1.0.tar.gz via HTTP.
Download DRftp-1.0.1.tar.gz via HTTP.

Compiling DRftp

  There is only one problem when compiling drftp-library - it needs function asprintf - this is probably only available in GNU libc. So, you need probably Linux or FreeBSD distribution for server. That's right only for < 1.2.0 versions, versions >= 1.2.0 no longer need this function.
If you have basic POSIX and ANSI functions in your libc, type make... if you haven't POSIX and ANSI functions, try install another OS.

How to use it

  Please see the documentation.html.

One note - there are some problems with perl 5.6, so if you have perl 5.0xx installed, simply change the first row in drftp.pl to your 5.0 version of perl (for ex. #!/usr/bin/perl5.005).

Bugs

  There are no bugs, there are only features :-) If you find any strange one, report it to my address.

Log

2000-02-13
released drftp-1.5.0
2000-02-13
added variables $localaddr, $localport, $force{addr,port,user,pass} to drftp-client, it can now be used as secure-proxy
2000-02-13
fixed a really really small bug in client (that wasn't never able to disclose) - missed ^ in regexp before PORT
2000-02-06
fixed bug in ratio.i (userfunc - when $user_wantput was set, last client was modified instead of $cl[findCid($user_wantput)])
2000-01-13
released drftp-1.4.3
2000-01-13
included ratio.i for ratio-servers, really good script for automating download/upload order
2000-01-13
found and hopefully fixed a little bug, when getting 421-rc from server
2000-01-13
added setDtimeout function
1999-11-29
fixed bug in writeFile, function used invalid finf
1999-11-18
fixed bug - when uploading directory, local-directory handle remained opened
1999-10-25
released drftp-1.4.2
some small changes
1999-10-24
found a bug in writeFile and readFile, they didn't set {'err'} when returning RT_USERERR
1999-09-18
released drftp-1.4.1
1999-09-18
before doing any action now reply-buffer is cleared
fixed possible exploit, when reveiving message containing ASCII 0
sometimes it's good to test server-reply when it's incomplete, now usertestrep is called even if go() returns RT_CONT
1999-07-20
last version works well, releasing drftp-1.4.0, there will be probably no more any major changes
1999-07-18
updated user-interface documentation
improved user-interface, many user-functions added, some warnings removed
1999-04-28
when parsing work-file, addFiles (addFile) died when using 'u' file type
1999-04-25
seems all works ok, released drftp-1.3.0
1999-04-15
fixed bug in directory-get
1999-04-13
changes in saving directory names (mkd dir/ is problem for most ftp-servers)
1999-04-04
released drftp-1.2.1
1999-04-04
fixed incompatibility with some servers
1999-04-01
some improvements, much better init-scripts included in distribution
1999-03-23
released drftp-1.2.0
1999-03-23
wrote simple asprintf, asprintf in libc is no longer required

Fixed bug in recursive put

Improved user-interface

And some other small changes+one bug in drftp.pl

1999-03-17
released drftp-1.1.0
1999-03-17
changes in testing timeouts, now $ktotfreq is ignored

Also some not so visible changes in drftp-library

1999-03-14
released drftp-1.0.1
1999-03-14
some minor changes in drftp-client
1999-03-07
released drftp-1.0.0
1999-03-07
renamed library to drftp because of collision with existing program :-)
1999-03-07
improved user-interface

fixed memory leak in FtpClient::sending

1999-03-06
added support for user-functions, it shouldn't be problem to write another user-interface using the current

improved the current perl-interface (added functions killCl, ckillCl, key cid)

1999-03-05
masquerading works...
1999-03-04
some servers do not support command "pasv", starting to write masquerade...

fixed bug - in some special situation FtpClient loops reading from closed csock

fixed bug - cross-reference between FtpClient and pFtpClient didn't allow deleting of those objects

1999-03-03
released rftp-0.99.0
1999-03-03
great, it works, but passive-connection must be set, because server allows port-command only on that address of ftp-connection.
1999-03-02
only one connection allowed from your IP - known "problem" of some ftp-servers, starting to write support for distributed clients - should only transfer data from one communication socket to another
1999-02-20
changed name to rftp because of collision with another program...

About author

  All (library and ftp-client) written by Zbynek Vyskovsky. My e-mail address is kvr@centrum.cz.
You can use finger or talk on rat@atrey.karlin.mff.cuni.cz or rat@ratteburg.kolej.mff.cuni.cz.
  Feel free to ask me if you have any questions or suggestions.

Last update: 1999-04-25