Log of /trunk/net/net/src/TPSocket.cxx
Parent Directory
Revision
48992 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Mar 28 15:26:26 2013 UTC (21 months, 3 weeks ago) by
rdm
File length: 25663 byte(s)
Diff to
previous 39696
From Lifeng Sun:
The attached patchset fixes a bunch of typo in the source:
0001-succes-success.patch
0002-preceed-preced.patch
0003-informations-information.patch
0004-childs-children.patch
0005-avaliable-available.patch
0006-writeable-writable.patch
0007-comand-command.patch
0008-unkown-unknown.patch
0009-wierd-weird.patch
0010-wheter-whether.patch
0011-unecessary-unnecessary.patch
0012-splitted-split.patch
0013-registerd-registered.patch
0014-recieve-receive.patch
0015-processsing-processing.patch
0016-ouput-output.patch
0017-mutiple-multiple.patch
0018-lenght-length.patch
0019-interupted-interrupted.patch
0020-independant-independent.patch
0021-inconsistant-inconsistent.patch
0022-expresion-expression.patch
0023-explicitely-explicitly.patch
0024-enviroment-environment.patch
0025-deafult-default.patch
0026-continous-continuous.patch
0027-completly-completely.patch
0028-commited-committed.patch
0029-choosen-chosen.patch
0030-backgroud-background.patch
0031-auxilliary-auxiliary.patch
0032-authentification-authentication.patch
0033-appropiate-appropriate.patch
0034-an-other-another.patch
0035-environement-environment.patch
0036-targetting-targeting.patch
0037-suppported-supported.patch
0038-paramater-parameter.patch
Revision
39696 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 13 21:35:34 2011 UTC (3 years, 7 months ago) by
pcanal
File length: 25664 byte(s)
Diff to
previous 38222
From David Dagenhart:
Implement an option to allow ROOT to use the LZMA compression
algorithm to compress data instead of the ZLIB compression algorithm.
LZMA compression typically results in smaller files, but takes more
CPU time to compress data. To use the new feature, the external XZ
package must be installed when ROOT is configured and built:
Download 5.0.3 from here http://tukaani.org/xz/
and make sure to configure with fPIC:
./configure CFLAGS='-fPIC'
Then the client C++ code must call routines to explicitly request LZMA
compression.
ZLIB compression is still the default.
Setting the Compression Level and Algorithm:
There are three equivalent ways to set the compression level and
algorithm. For example, to set the compression to the LZMA algorithm
and compression level 5.
1. TFile f(filename, option, title);
f.SetCompressionSettings(ROOT::CompressionSettings(ROOT::kLZMA, 5));
OR
2. TFile f(filename, option, title, ROOT::CompressionSettings(ROOT::kLZMA, 5));
OR
3. TFile f(filename, option, title);
f.SetCompressionAlgorithm(ROOT::kLZMA);
f.SetCompressionLevel(5);
These methods work for TFile, TBranch, TMessage, TSocket, and TBufferXML.
The compression algorithm and level settings only affect compression of
data after they have been set. TFile passes its settings to its branches
only at the time the branches are created. This can be overidden by
explicitly setting the level and algorithm for the branch. These classes
also have the following methods to access the algorithm and level for
compression.
Int_t GetCompressionAlgorithm() const;
Int_t GetCompressionLevel() const;
Int_t GetCompressionSettings() const;
If the compression level is set to 0, then no compression will be
done. All of the currently supported algorithms allow the level to be
set to any value from 1 to 9. The higher the level, the larger the
compression factors will be (smaller compressed data size). The
tradeoff is that for higher levels more CPU time is used for
compression and possibly more memory. The ZLIB algorithm takes less
CPU time during compression than the LZMA algorithm, but the LZMA
algorithm usually delivers higher compression factors.
The header file core/zip/inc/Compression.h declares the function
"CompressionSettings" and the enumeration for the algorithms.
Currently the following selections can be made for the algorithm:
kZLIB (1), kLZMA (2), kOldCompressionAlgo (3), and kUseGlobalSetting
(0). The last option refers to an older interface used to control the
algorithm that is maintained for backward compatibility. The following
function is defined in core/zip/inc/Bits.h and it set the global
variable.
R__SetZipMode(int algorithm)
If the algorithm is set to kUseGlobalSetting (0), the global variable
controls the algorithm for compression operations. This is the
default and the default value for the global variable is kZLIB.
Note that the LZMA algorithm will only be available if the LZMA
libraries from the XZ package were available when the ROOT executable
being used was configured and built. If you are building ROOT and want
LZMA then you must do something similar to the following if XZ is not
already installed on your system.
Download XZ version 5.0.3 from http://tukaani.org/xz/
unwind the tarball
cd xz-5.0.3
./configure CFLAGS='-fPIC'
make
ROOT was tested with version 5.0.3 of XZ. It might work with earlier
versions and will probably work with later versions of XZ.
Then either use "make install" to put the library and headers into
/usr/local/* so the scripts building ROOT can find them or use
arguments to the ROOT configure script to point to the proper
directories containing the XZ library and headers. These are the
library and the included header (lzma.h includes other headers in the
lzma subdirectory).
src/liblzma/.libs/liblzma.a
src/liblzma/api/lzma.h
WARNING: Data compressed with the LZMA algorithm cannot be read by
ROOT executables that were not built with LZMA support.
Revision
38221 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Fri Feb 25 10:26:55 2011 UTC (3 years, 10 months ago) by
rdm
File length: 25618 byte(s)
Diff to
previous 24480
From Gerri:
Few fixes to improve/reduce verbosity in case of connection broken or
reset by peer
- In TSocket:
- Add bit kBrokenConn and set it when the connection is broken or reset
by peer
- Add missing checks of return codes from Send and Recv operations
- In CreateAuthSocket, add an optional argument to extract the error code
in case of failure; set the error to kErrConnectionRefused when the
failure is due to a broken or reset by peer connection.
- In TPSocket:
- Add bit kBrokenConn and set it when the connection is broken or reset
by peer
- Add missing checks of return codes from Send and Recv operations
- In the main constructor, fix a bug causing a double connection attempt
in case of failure
- In TNetFile:
- Extract a more correct error code via CreateAuthSocket instead of
setting the generic authentication error code
- Fix a typo in a error message
- In TNetSystem:
- Fix a bug in ConsistentWith causing always a new helper (and connection)
instance to be created when repeating the request with the same path.
Revision
24480 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Jun 23 13:29:34 2008 UTC (6 years, 7 months ago) by
rdm
File length: 25102 byte(s)
Diff to
previous 23091
move the send streamer info and send process id code into:
SendStreamerInfos()
SendProcessIDs()
move the recv streamer info and recv process id code into:
RecvStreamerInfos()
RecvProcessIDs()
Add support for schema evolution and process ids also to TPSocket and
TXSocket.
Revision
23091 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Apr 9 15:04:27 2008 UTC (6 years, 9 months ago) by
rdm
File length: 24749 byte(s)
Copied from:
trunk/net/src/TPSocket.cxx revision 23090
Diff to
previous 20882
moving the follwing directories to "net":
alien, auth, glite, globusauth, krb5auth, ldap, monalisa, net, netx,
rootd, rpdutils, srputils, xrootd
Revision
12123 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Jun 22 20:18:12 2005 UTC (9 years, 7 months ago) by
brun
Original Path:
trunk/net/src/TPSocket.cxx
File length: 24810 byte(s)
Diff to
previous 11687
From Constantin Loizides
This patch implements:
- decentralized, automatic mutex initialization,
see R__LOCKGUARD2 in TVirtualMutex
- PROOF parallel startup fixes
- more thread protection (in base, cont, meta, rest to be done)
- cleanups
From Eddy Offermann:
TString::Atoi and Atof are made const.
Revision
11687 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Apr 28 16:14:28 2005 UTC (9 years, 8 months ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 24529 byte(s)
Diff to
previous 10798
From Gerri:
Patch introducing parallel startup of the slave servers. This new feature
will considerably reduce the startup time in PROOF setups with many 10's
to 100's of slaves. By default this feature is off, turn it on in the
[system].rootrc file by uncommenting the line:
Proof.ParallelStartup: yes
Summary of changes:
Index: Makefile
- Add the thread lib to PROOFLIBS
Index: base/inc/TVirtualMutex.h, base/src/TVirtualMutex.cxx
- Add global mutexes to protect printing and authentication
Index: base/src/TError.cxx
- Protect static buffer in DebugPrint with specific global mutex
Index: config/Makefile.depend
- Add dependence on thread lib for PROOF
Index: config/rootrc.in
- Add description of new envs
Proof.ParallelStartup, Auth.Timeout, ProofServ.UseSSH
Index: net/inc/TAuthenticate.h
- Add new member fTimeout to indicate timeout situations
and new method HasTimedOut() to retrieve it.
- Add new static member with the timeout value in sec
and method SetTimeOut() to set it
- Add new method CatchTimeOut() called at timeout expiration
Index: net/inc/THostAuth.h , net/src/THostAuth.cxx
- Add new method SetLast() to lower pririty of an attempted
protocol that has timed-out
Index: net/src/TAuthenticate.cxx
- Implementation of the new timeout setup using TTimer
- Add protection using specific global mutex
- change to start with lower case some local variables
in Authenticate
- re-introduce call to THostAuth::CountFailure() (which got
lost in a previous patch)
- Disable by default SSH for PROOF servers
- fix a couple of small memory leaks
Index: net/src/TPSocket.cxx
- Fix logic in Close() (if called too early (e.g. timeout)
the underlying socket can still be open and needs to be
closed).
Index: net/src/TSocket.cxx
- initialize member fTcpWindowSize in all constructors
- modify error logging after an unsuccessful authentication
attempt, checking for timeouts.
- disable SSH for PROOF servers
Index: proof/inc/TProof.h
- patch for parallel startup using threads:
- new methods SlaveStartupThread(void *) and
SubmasterStartupThread(void *) executed in threads
- add Bool_t argument to all implementations of StartSlaves
Index: proof/src/TProof.cxx
- patch for parallel startup using threads:
- add internal classes ProofThread and ProofThreadArg to keep
track of started threads and to pass arguments to threads
- cleanup fPlayer and fFeedBack in destructor
Index: rpdutils/src/rpdutils.cxx
- fix small memory leak
Index: thread/src/TThread.cxx
- initialize new global mutexes
Revision
10798 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Dec 15 17:48:03 2004 UTC (10 years, 1 month ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 24389 byte(s)
Diff to
previous 10271
From Gerri:
Purpose:
- Add new Select functionality in TMonitor and TSocket
This functionality will be used for asyncronous threaded
reader of TXNetFile.
- Add support for creation of a TNetFile using an existing
connection (reuse connection that was already opened by
TXNetFile while remore side is rootd and not xrootd).
net/inc/TMonitor.h
- add new private member Bool_t fMainLoop to tell if the
monitoring has to be on the main loop or outside.
- add argument 'Bool_t mainloop' to the constructor, default kTRUE
- add new method SetInterest() to change interest mask of
a socket
- add new Select() method for the out-of-main-loop case
net/src/TMonitor.cxx
- add implemention for the new methods.
net/inc/TNetFile.h
- add new signature for method Create() to open a TNetFile
using an existing connection (used to optmize the rootd
fall back support in TXNetFile).
net/src/TNetFile.cxx
- add support for new Create()
net/inc/TPSocket.h
- add new constructor to setup a parallel socket using
an existing connection (used to optmize the rootd
fall back support in TXNetFile).
- add support for new constructor in method Init()
net/src/TPSocket.cxx
- add implentation of new ctor and related modifications
in Init().
net/inc/TSocket.h
- add new method Select() to monitor the socket outside
the main event loop
- add new method SetDescriptor() used in TXSocket to save
the TSocket part
- add new member fTcpWindowSize and corresponding getter
for use in the new TPSocket ctor
- add a 'TSocket *' argument to CreateAuthSocket (default 0)
to allow re-using of an existing connection
net/src/TSocket.cxx
- add new method Select() to monitor the socket outside
the main event loop
Revision
10271 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon Oct 11 12:34:34 2004 UTC (10 years, 3 months ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 20809 byte(s)
Diff to
previous 8972
From Gerri:
Description: patch to support authentication in TServerSocket for
general server application based on ROOT.
New files:
- net/src/DaemonUtils.cxx, net/inc/DaemonUtils.h
wrappers around server-side functions implemented in
rpdutils/src/rpdutils.cxx
- rpdutils/inc/rpddefs.h
common definitions previously in rpdp.h
- tutorials/authserv.C, tutorials/authclient.C
macros to test authentication between to remote ROOT
sessions; see macro headers for instructions.
Patched files:
config:
- rootrc.in
New envs (SrvAuth.<xxx>) to steer authentication in TServerSocket,
reflecting the command lines options to rootd/proofd
globusauth/src:
- GlobusAuth.cxx
Few changes to cope with new socket "type" (i.e. non-rootd or proofd
related).
net:
- Module.mk
Drop DaemonUtils from the list of sources to be compiled;
add definition of DAEMONUTILSO used in rpdutils/Module.Mk
net/inc
- LinkDef.h
Add pragmas for global variables kSrvAuth and kSrvNoAuth, new options
to TServerSocket::Accept
- NetErrors.h
Add new error code kErrBadRTag to indicate unsuccessful verification of
the random tag associated to a token or password exchange
- TPServerSocket.h
Add option to method Accept()
- TServerSocket.h ...
Add option to method Accept() and a few methods, to set, display and
modify the defaults.
Add hooks to authentication code and cleanup code.
Add list of accepted authentication for cleanup at closing.
Add cleanup call in destructor.
Add new method Authenticate().
net/src:
- NetErrors.cxx
Add string for new errord code kErrBadRTag.
- TAuthenticate.cxx
Increase the client protocol number for backward compatibility.
Add support for new server socket "type" sock.
Add send of kROOTD_BYE after failures to avoid warning messages
on the server side.
Add signature of random tags in methods ClearAuth() (for passwords)
and AuthExists (for tokens)
- TPServerSocket.cxx
Add support for authentication in Accept()
- TPSocket.cxx
Add check on the server socket type in constructor
- TServerSocket.cxx
Add support for authentication in Accept().
Implement new method Authenticate() to run authentication; this method
loads dynamically the new library libSrvAuth.so .
Implement methods to manage options.
Add cleanup call in destructor.
- TSocket.cxx
Add support for new server socket type in CreateAuthSocket().
Improved parsing of protocol in CreateAuthSocket().
Improved description in CreateAuthSocket header.
proofd/src:
- proofd.cxx
Add check on the return code of RpdInitSession.
rootd/src:
- rootd.cxx
Add check on the return code of RpdInitSession.
rpdutils:
- Module.mk
Add rules to build libSrvAuth.so
rpdutils/inc:
- rpdp.h
Move const definitions in rpddefs.h
Include rpddefs.h
Add new signature for RpdIntiSession to be used in DaemonUtils.cxx
Add new method RpdSetMethInitFlag to reset from DaemonUtils.cxx
Add new signature for RpdCleanupAuthTab to clean the entry related
to a specified token (called by TServerSocket).
Add return codes to all the authentication-relatd functions.
rpdutils/src:
- rpdutils.cxx
Add static method 'rpdmemset' cleanup properly buffers used
for passwords, avoiding compiler optimizations.
Add static method 'rpdcrypt' to provide some protection when
crypt is not available (preparation for some support for win32gdk)
Add pre-compiler variable R__NOCRYPT to treat those cases.
Add implementation of new methods RpdSetMethInitFlag(int) and
RpdCleanupAuthTab(const char *).
Fix small problem in RpdCleanupAuthTab(const char *, int, int)
for option 'all' causing partial cleanup.
Add generation/ transmission/ check of a random tag in RpdUser and
RpdCheckAuthTab.
Make all authentication functions to return a code instead of
void; drop all 'exit' calls.
Add implementation of special RpdInitSession signature for TServerSocket
Revision
8972 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue May 18 22:20:49 2004 UTC (10 years, 8 months ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 20797 byte(s)
Diff to
previous 8857
From Gerri:
The return of kinit was implicit checked by the subsequent
check valid credentials; I made it explicit.
However, the real problem was elsewhere: in TPSocket, in
case of failed authentication, I forgot to set a flag to
false, so it was trying Init() and hanging at
TServerSocket::Accept. This was introduced last week.
Revision
8857 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Mon May 10 16:00:02 2004 UTC (10 years, 8 months ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 20712 byte(s)
Diff to
previous 8840
From Gerri:
This should fix the problem with double connection.
Crossed backward compatibility should be ok at least back to 3.05.07.
Also fixes problem with undefined fSecContext in SRPAuth and
Krb5Auth when talking to old servers.
Revision
8795 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed May 5 14:43:34 2004 UTC (10 years, 8 months ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 20255 byte(s)
Diff to
previous 8617
allow TMessages to be compressed before sending them. To have a specific
message compressed use TMessage::SetCompressionLevel(n) where 0 < n <= 9,
like for TFile::SetCompressionLevel(). To have all messages send over
a specific TSocket compressed, use TSocket::SetCompressionLevel().
When a compressed message is received it is automatically uncompressed.
See modified tutorials/hclient.C on how this feature is used.
Revision
8617 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Tue Apr 20 15:17:02 2004 UTC (10 years, 9 months ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 19948 byte(s)
Diff to
previous 8420
From Gerri:
close socket on client side in case of failure due to
"Broken Pipe" (errno = EPIPE) or "Connection reset by peer"
(errno = ECONNRESET); this to avoid futher attempts
to use the socket and the related multiple-failure messages.
(unix/src/TUnixSystem.cxx, net/src/TSocket.cxx, net/src/TPSocket.cxx,
net/inc/TAuthenticate.h, net/src/TAuthenticate.cxx).
Revision
8420 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Wed Mar 17 17:52:24 2004 UTC (10 years, 10 months ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 19603 byte(s)
Diff to
previous 8254
From Gerri:
Improvements:
o Added support for creation of authentication tokens
exclusive to parent daemon and its childs; by default
tokens have inclusive nature, i.e. can be checked by another
server on the same machine with having access to the key files
(option -E to rootd/proofd)
o Added support for non-standard file name for daemon access rules
(option -D <rootdaemonrc> to rootd/proofd)
o Added support for non-standard file name for authentication directives
(PROOF only: option -A [<rootauthrc>] to proofd; see header of
proofd/src/proofd.cxx)
o Improved security in ssh authentications
Bug fixes:
o Fix a few inconsistencies in treating error conditions
o Fix bug with default init strings for ProxyDuration and ProxyKeyBits
o Fix problem with checking for valid globus proxies
o fixed message desynchronization problem in case of non valid offset
o Modified error call in case of failure of Krb5 initialization:
execution continues (call Err instead of ErrFatal)
o Fix (again) problem with cygwingcc definition in rpdutils.cxx
o Fix problem with fgUser not being correctly saved in case
of successful authentication in TAuthenticate.cxx
o Fix a problem with duplication in socket list (TPSocket)
o Set fContext=0 after deletion TPwdCtx (in TSecContext::Deactivate).
o Fix link problem with the globus patched function in rootd/Module.mk
and proofd/Module.mk
o Added function ProofdTerm (equivalent of RootdTerm) to terminate
correctly in case of interrupting signal SIGTERM or SIGINT (proofd.cxx)
o Fix several incorrect comments.
Revision
8239 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Modified
Thu Feb 19 00:11:19 2004 UTC (10 years, 11 months ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 19686 byte(s)
Diff to
previous 8063
Big authentication patch by Gerri:
General purpose:
Add support for 'authenticated' sockets on client side
and prepare for support of server authenticated sockets.
Main changes:
o TSocket, TPsocket:
Added support of 'authenticated' sockets: authentication
is delegated to TSocket by calling a static method
CreateAuthSocket() returning a TSocket*.
TSocket is now the only class calling TAuthenticate.
o TFTP, TNetFile, TSlave:
modified to cope with new socket authentication scheme.
o TAuthDetails replaced by TSecContext containing:
- local authentication info
- expiration time
- pointer to a security context for the method (if any)
- information for cleanup (via TSecContextCleanup)
o A list of valid TSecContext has been added to TROOT,
accessible via gROOT->GetListOfSecContexts().
o THostAuth rewritten using arrays to avoid multiple use
of 'new'; functionality extended by the addition of
several new methods.
o TAuthenticate:
- Loading of information from .rootauthrc has been optimized;
this allowed to simplify method signatures and drop several
methods. Also collection and transmission of authentication
information from TSlave to TProofServ gets simplified by the
new scheme.
- Added support for server dependent directives in .rootauthrc
- Added check for changes in .rootauthrc each time a new
TAuthenticate is instantiated, so that changes in the file
are picked-up interactively.
- Checking for an existing TSecContext (previously TAuthDetails)
has been improved
- Improved diagnostics for SshAuth
- Enlarged support for authentication method indication in protocol:
UsrPwd: rootup/proofup
SRP: roots/proofs (already supported)
Krb5: rootk/proofk (already supported)
Globus: rootg/proofg
SSH: rootsh/proofsh
UigGid: rootug/proofug
o GlobusAuth.cxx, Krb5Auth.cxx, SRPAuth.cxx
- Adapted to new class TSecContext
- Added support for improved search for reusable TSecContext
- Drop globals used to store established security contexts
(saved in TSecContext) and related methods
o Automatic creation of <RootDir>/etc/system.rootauthrc from
compilation flags; this has priority on old envs
'Rootd.Authentication' and 'Proofd.Authentication' and is
superseded by $HOME/.rootauthrc
o Automatic creation of <RootDir>/etc/system.authdaemonrc from
compilation flags; this is superseded by $HOME/.rootauthrc
o rpdutils:
- several almost identical methods moved in from rootd/proofd
- several new methods to simplify manipulation of the
authentication tab file
- moved (and improved) check for running of sshd in RpdSshAuth,
performed only in case of failure (to avoid spurious messages
printed by sshd in /var/log/messages)
o proofd.cxx, rootd.cxx
- increased protocol version
- all initialization stuff (included authentication and
login) done via RpdInitSession
- postpone opening of parallels sockets after authentication
(to solve problem of Kerberos/Globus authentication with
parallel sockets)(rootd)
- Fixed problem with kerberos and globus authentication in rootd
with parallel sockets.
Revision
1477 -
(
view)
(
download)
(
as text)
(
annotate)
-
[select for diffs]
Added
Fri Jan 26 16:55:08 2001 UTC (14 years ago) by
rdm
Original Path:
trunk/net/src/TPSocket.cxx
File length: 13624 byte(s)
two new classes supporting parallel socket operation. Using this technique
network transfers are striped over a set of parallel sockets thereby
dramatically increasing the network performance over fat pipes (grid like
infrastructure). Instead of waiting for an ACK before sending a next
fragment and thereby not filling up the pipe completely, the sockets
send fragments in parallel, keeping the pipe full. These two new classes
have the same interface as the standard TSocket and TServerSocket classes.
This form allows you to request diffs between any two revisions of this file.
For each of the two "sides" of the diff,
enter a numeric revision.