WHY/HOW TO USE THIS PROGRAM ? Working on different Maschines with different accounts, I had to move lots of files between them. It took a lot of time to use ftp again and again. So I decided to write this nice little program which facilitates this task. Consider a host where you want to put some files from another host to. All you have to do is: 1) Start the program (Server part) with a portnumber of your choice (portnumbers between 1025 and 32767 are always legal unless they are in use--then simply choose another portnumber): Example: pftp 1234 2) Now start the program (Client part) on that host where you want to send files from. You have to choose the same portnumber as is chosen with the server part of the program at the destination host. So in our example this is '1234'. Then enter the name of the host which will receive the files, and finaly the files you want to send: Example: pftp 1234 destinationhost files RETURN STATUSES USING `-q' The following lists pftp's return statuses which will be useful when using pftp within script files. Name Number Meaning ---- ------ ------- PFTP_NO_ERR 0x00 no error occured PFTP_ALLOCATION_ERR 0x01 memory allocation error PFTP_IOCTL_TTY_ERR 0x02 cannot get or set tty modes PFTP_OPEN_RC_ERR 0x03 cannot open pftp resource file PFTP_FGET_STDIN_ERR 0x04 cannot get characters from stdin PFTP_PRINTLIST_ERR 0x05 no host list found in variable PFTP_MCLOPTION_ERR 0x06 misused command line option PFTP_UUSER_ERR 0x07 cannot resolve user name PFTP_CHDIR_ERR 0x08 cannot change directory PFTP_FILE_OPEN_ERR 0x09 unable to open the file PFTP_WRITETODISK_ERR 0x0a cannot write to disk PFTP_FILTER_ERR 0x0b filter variable is not set PFTP_NETBUF_ERR 0x0c netbuf variable is not set PFTP_BANDWIDTH_ERR 0x0d bandwidth variable is not set PFTP_HOSTNAME_ERR 0x0e no host name specified PFTP_PORT_ERR 0x0f missing or illegal a port number PFTP_FORK_ERR 0x10 cannot create a new child process PFTP_NO_ROOT 0x11 missing root privileges PFTP_INVHOST_ERR 0x12 invalid host name specified PFTP_CONNECTION_ERR 0x13 connection was refused by remote host PFTP_NO_DAEMON_ERR 0x14 no daemon is running on remote host PFTP_NO_SERVER_ERR 0x15 no server is running on remote host PFTP_WRITETONET_ERR 0x16 cannot write to net PFTP_NO_ANSWER_ERR 0x17 missing COME ON from remote host PFTP_REMOTE_ERR 0x18 remote host broke connection PFTP_FILE_SEEK_ERR 0x19 error seeking position in file PFTP_SETSOCKOPT_ERR 0x1a setsockopt error occured PFTP_OPEN_LOG_ERR 0x1b cannot open log file PFTP_LISTEN_ERR 0x1c a listen error occured PFTP_ACCEPT_ERR 0x1d an accept error occured PFTP_INPUT_ERR 0x1e wrong input from stdin PFTP_PROG_ERR 0x1f cannot execute external program PFTP_PIPE_ERR 0x20 cannot open pipe to program PFTP_ENVIRON_ERR 0x21 insufficient space in the environment PFTP_NO_TTY_ERR 0x22 cannot write to tty PFTP_SIGNALMASK_ERR 0x23 error setting the signal mask PFTP_SIGACTION_ERR 0x24 error performing signal action PFTP_RES_HOST_ERR 0x25 error resolving remote host name PFTP_UHOST_ERR 0x26 unknown host name PFTP_SOCKET_ERR 0x27 cannot create socket PFTP_MULTICAST_ERR 0x28 cannot join multicast group PFTP_INTERFACE_ERR 0x29 cannot use interface PFTP_BIND_ERR 0x2a cannot bind name to socket PFTP_RECEIVE_ERR 0x2b error receiving data PFTP_OUTPUT_ERR 0x2c cannot write to stdout PFTP_READ_DISK_ERR 0x2d cannot read open file PFTP_DIR_OPEN_ERR 0x2e unable to open the directory PFTP_UPLOADDIR_ERR 0x2f upload directory variable is not set PFTP_PFM_ERR 0x30 there's another pfm running PFTP_NEW_DATA 0x31 there's new data in the upload directory PFTP_RESPONSE_ERR 0x32 the server doesn't respond after sending PFTP_TIMEOUT_ERR 0x33 connection timed out NEW FEATURES Version 0.4.X 1) '-r' send/receive directories recursively 2) '-' send/receive standard input Version 0.5.X 1) `-a' always overwrite existing files 2) `-s' always skip existing files 3) `PFTPLOG' environment variable 4) `.pftprc' resource file containing default host names Version 0.6.X 1) `-c host_names' accept specified clients only 2) `-f' use filter specified by PFTPCFILTER resp. PFTPSFILTER 3) `PFTPCLIENTS' environment variable 4) `-oN' send file beginning at N bytes from file Version 0.7.X 1) pftp may receive more than one file at once 2) support for POSIX Threads if libraries are avaible 3) manually buffered standard input 4) environment variables may be specified in the resource file 5) `-b' buffered stdin/stdout 6) `-B' same as `-b32767' 7) `-q' run silently 8) `PFTPSLOG' environment variable for `-q' Version 0.8.X 1) `-i' server started by inetd 2) `-d' daemon started by user or root 3) PFTPNOROOT environment variable to allow root if set to 0 4) PFTPASS holds alternativ password 5) `-e' create a normal password with crypt() 6) `-n' send data to a friend if daemon or inetd server is present 7) PFTPRECEIVE holds the absolute path of the upload directory 8) PFTPUPLIMIT maximum amount of kilo bytes in `PFTPRECEIVE' 10) internal pager for the simple file and directory manager 11) PFTPEDITOR holds the name of an external editor 12) PFTPAGER holds the name of an external pager 13) PFTPSORTBY determines sorting within the pfm 14) `-N' to peek for new data 15) PFTPBANDWID bandwidth in bytes per second (`-w') 16) Host names may look like this user@hostname 17) Read file names from standard input Version 0.9.X 1) Do not follow symbolic links with option `-L' Some options changed! See `pftp -h' or rtfm. 2) `-Q' used by the not existing pftp front end. 3) `-x' exit after first connection. 4) `-p' send all received data to stdout. 5) `-T' tcp based net performance test. 6) `-P' set datagram priority (IPv6) 7) `-v' output more information 8) `-o' allow only one connection at a time. 9) `-u' transfer data using UDP (for AUDIO and VIDEO streams). 10) `-s' UDP: display received bytes. 11) `-m' for multicasting 12) `-mg' for multicast group 13) `-mi' for multicast interface 14) `-ml' for multicast loop back 15) `-mt' for multicast time to live Version 1.0.X 1) `-ANUM' specify the number of clients accepted at once. 2) `-F' Determine MPEG AUDIO bitrate. 3) PFTPAUSER holds alias names for login names. 4) `-D=DIR' change to directory DIR before receiving data. 5) PFTPIUPDATE interval between pfm's main menu update. 6) Introduced host specific variable setting. 7) PFTPCFVAR and PFTPSFVAR are variables for the filter. Version 1.1.X 1) `-nl' starts host name list followed by the pfm. 2) `-N[NUM]' peek for new data in host specific upload directories. 3) interactive help for the internal pager. 4) PFTPRENAME automatically rename new files if they exist. 5) `-R' command line option for PFTPRENAME. 6) PFTPSINFO client/server: always send and set file information. 7) `-I' command line option for PFTPSINFO. 8) PFTPAINFO daemon: accept setting file and directory information. 9) `-G' sets optimized values for Gigabit Ethernet links. 10) PFTPGIGASTR set a different string size for `-G'. 11) PFTPGIGANET set a different net buffer size for `-G'. Please peruse the manual page for further information! --> Every comment via e-mail will be appreciated! Author: Ben Schluricke E-Mail: support@pftp.de This program is dedicated to my girl-friend, Heather O'Rourke.