This description is for httpsync version 3.00
Synopsis and Operation
To use a proxy server
httpsync -x proxy.domain.com @http://hostaddress/URI
Secure Sockets Layer
As of HTTPsync version 3.0, SSL for https: URLs is supported when you compile with either the USE_SSLEAY or USE_OPENSSL macros defined. No validation of certificates is done.
Remote Username and Password Authentication
To use HTTP Basic Authentication, specify a username on the command line. If you must provide a password on the command line, be aware that it may be visible to other users who can view the parameters of your your running processes. If you are running interactively, you should not specify a password on the command line. (You will be prompted.)
httpsync -u username [-p password] @http://hostaddress/URI
Automation and GUI
If you wish to automate HTTPsync, or wrap with a GUI, see the source code for operation when given the '-a' flag.
What HTTPsync does
The URI specifies the location of a "packing list" of files (created by the host maintainer) which will be saved relative to the current working directory. The packing list specifies names, sizes and dates.
Here is a short example packing list.
#-#httpsync 101 Packing List for httpsync 1.01
# Visit the httpsync home page: http://www.mibsoftware.com/httpsync/
./zero.test 0 Tue, 05 May 1998 20:02:42 GMT 644
./test.test 32 Tue, 05 May 1998 20:24:06 GMT 644
Only the files which are missing locally or do not match in date and size are requested from the host, one at a time. Files which already match are not transferred. IMPORTANT: No attempt is made to preserve or merge local changes; They will be overwritten.
HTTPsync will automatically create subdirectories if needed.
HTTPsync does not need any special permissions to run. It will only create files and directories at or "below" the current working directory. Each path name in the packing list is checked to ensure that it is relative to '.', and it includes no '..' sequence. (This is to protect against "malicious" packing lists which attempt to access parent directories, or absolute path names.)
Progress is reported to the standard output. The first file obtained is the packing list. This is stored in the current directory using the last name in the URL path. Subsequent files are obtained only if necessary. A reason code prefixes each file request:
"N" - Local file does not exist. Local file is created.
"D.lt" - Date of local file is later than source file. Local file is replaced.
"D.gt" - Date of local file is later than source file. Local file is replaced.
"S.ne" - Date matches, but size mismatch. Local file is replaced.
"M" - Owner mode (R/W/X) difference. The mode is updated.
The completion status is indicated "OK" or "Retry." Errors are reported when they detected.
N GET /httpsync/./zero.test...OK
Skipped 1 unchanged files
Requirement to have a packing list
A packing list file (in the proper format) must already be accessible at the host site. HTTPsync does not automatically "discover" other URLs to get. Contact the host system administrator for valid packing lists. See HTTPsync: Packing List Syntax for a discussion of syntax and methods of creating this file.
Most error responses are self-explanatory. HTTPsync includes limited "retry on failure" behavior. A complete error list and corrective action for each appears at HTTPsync Error Checking
HTTPsync Mirroring of CVS and CVSup projects
HTTPsync Conditional and "Access Protected" Packing Lists
Up to HTTPsync home
Inquiries [DocID: /httpsync/0003.htm]
Copyright 1998, 1999, 2000, 2001 Forrest J. Cavalier III, Mib Software