| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: Deployment of RPC Applications |
| A.: Before deploying your applications that incorporate the Distinct libraries you must first obtain deployment licenses from Distinct. Please contact our sales department if you need pricing and deployment options for high quantity deployments. Our staff will work with you to select the best deployment model for your needs. |
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: Distinct ONC RPC/XDR Toolkit - 32 Ver. 3.1 Release Notes |
A.: This release fixes a number of problems reported in version 3 and includes some
enhancements. Please note that this release requires service pack 4 to be
applied on NT 4.0 and the latest Winsock patch to be applied to any Windows 95
system.
Portmapper
This fix addresses the problem where the clnt_broadcast function was not
getting a response from the Distinct portmapper even though the server that the
client is attempting to connect to was registered.
The memory leak that was occuring in the rpc.dll when the portmapper was left
running for a long time has been fixed.
Rpcgen32
- The problem where the rpcgen32 utility was not producing the right files when
absolute and relative paths of .x file were used is fixed.
- Two new command line options are added to allow the file to be preprocessed by
the C-Preprocessor by invoking the C preprocessor. BEFORE you can use this
option you must add two values to the following registry key:
| |
HKEY_LOCAL_MACHINE\SOFTWARE/Distinct/Dlls\RPC32 Cpconst
D CpDelim "/"
|
The first of these sets the compiler definitions option to D and the second sets
the argument delimeter to /. If your compiler uses different values set these
here.
By default, preprocessing will not be invoked. To invoke preprocessing follow
these steps below:
To invoke the C-preprocessor use the following syntax when running
rpcgen32:
| |
rpcgen32 -p "compiler arguments" [-D
name=value] where: -p invokes the
preprocessor "arguments" are the set of arguments required by
your compiler -D is optional and is used to specify specific
compiler definitions.
|
When do you need to use C-Preprocessing?
Your files will require C-Preprocessing when they contain #if, #else, #ifdef,
#ifndef, #if defined etc. If the files contain these definitions please use the
C-Preprocessor option.
Example
If you are using cl.exe (Microsoft's Visual C++ compiler) the
argument should be -p "cl.exe /EP /nologo" file.x.
The existing command line options can be used in conjunction with -p
option.
If you are using a c-preprocessor other than cl.exe please enter
the argument list as needed. The argument list should be able to send the
processed file to the stdout and should only contain information for rcpgen32 to
do further processing. That is, the output must not contain any banner or text
issued by the compiler. For Microsoft C++ the /nologo option will inhibit these.
Warning
The program creates a temporary file having the name of the .x file but with
a .i extension. If a file with the same name exists, its contents will be
overwritten. The file will be created in the directory where the output files
are generated. This file will be cleaned up before the program exits.
D32-rpc.dll
The following problems were fixed:
- When used in the VC++ 6.0 environment the dll caused an access violation
when the clnt_create() function call was called.
- In VC++6.0 it appears that the select() function call does not honor a specified
timeout. This was causing an unnecessary increase in the network traffic for
each client-server call when used under the VC++6.0 environment. A workaround to
this problem is included in this patch.
- When the server is slow in responding to requests, the dll was not handling
multiple client calls (clnt_call() function) which were sent from the same
application in succession.
- Some anomalies reported that were caused by the server receiving several
megabytes of data have been fixed.
- The xdr_free() routine is now correctly freeing the memory used by pmaplist.
|
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: Distinct ONC RPC/XDR Toolkit Ver. 4.0 Patch A Release Notes. July 11th 2002 |
A.: Release notes for Distinct ONC RPC/XDR for C/C++ and Delphi
Version 4.0 Patch A
-------------------
Patch A is being released to correct the following:
RPCGEN
------
RPCGEN now generates a hook in the server stub to let user free
the memory allocated in the user application: server_freeresult().
Sample code has also been modified to reflect this addition.
D32-rpc.dll
-----------
An error in the encoding done by the following functions has been corrected:
xdr_float(), xdr_double(), xdr_longlong_t(),
xdr_u_longlong_t(), xdr_hyper(), xdr_u_hyper()
The problem of client/server failure on the same host after terminating
a server abruptly several times has been fixed.
DRPCSRVR.dll
------------
The problem of client/server failure on the same host after terminating
a server abruptly several times has been fixed.
Corrected the memory leak in svc_run that was occuring on certain versions
of Windows.
RPCBIND
-------
The problem which was causing a memory conflict on receiving a broadcast
request is solved (problem was in the RPCBPROC_CALLIT procedure).
d32-rpc.h
---------
Made changes to the header file to avoid conflicts with the definitions
in other C header files.
Samples
-------
Changes were made to all samples to reflect the above changes.
|
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: Distinct ONC RPC/XDR Toolkit Ver. 4.0 Release Notes. April 26th 2002 |
A.: The following are the new features added to Distinct ONC RPC/XDR for C/C++. Version 4.0 of the Distinct ONC RPC/XDR Toolkit includes a number of new features in addition to enhancements of existing features and generally better performance.
ASYNCHRONOUS CALLS
Asynchronous calls have been greatly enhanced. Asynchronous calls have improved UDP support and can now be multithreaded.
BATCHING
Full support for call batching has been added.
With batching the server does not respond to each call, the client can send new calls in parallel with the server processing previous calls. This decreases interprocess communication overhead and the total time of a series of calls.
SECURE RPC(*)
Both client and server now include the ability to authenticate using AUTH_DES. AUTH_DES includes a level of security for authentication. Using AUTH_DES, the client can check if the results coming back are really from the same server, which it expects to get the result from. The support has been built to make use of the DLL that is available from OpenSSL. Before using this feature please make sure you are able to comply with all US Export regulations for single DES.
An application called NewKey.exe is included to generate the DH Key pairs.
NEW XDR DATATYPES
Following new XDR Datatypes are supported with this release.
xdr_quadruple
xdr_hyper
xdr_u_hyper
xdr_longlong_t
xdr_u_longlong_t
NEW XDR ROUTINES
Support for the following XDR routines has been added
Standard I/O File Based Routines
xdrstdio_create()
Record-oriented XDR Routines
xdrrec_create()
xdrrec_skiprecord()
xdrrec_eof()
xdrrec_endofrecord()
xdrrec_readbytes()
Memory related Routines
xdrmem_create()
RPCBIND
RPCBIND replaces the Portmapper. This server application contains support for RPCBIND version 3 and 4 while maintaining its compatibility with the older portmapper versions.
RUNNING APPLICATIONS WITHOUT RPCBIND
Support has been added to allow RPC applications to work without the use of RPCBIND or the portmapper.
RPCINFO
A new application for RPCINFO is included. This includes support for the information that can be received by RPCBIND versions 3 and 4.
RPCGEN
A new version of RPCGEN is included with support for new XDR datatypes. It supports multi-argument procedures and adds support for the Borland C preprocessor.
Winsock 2
Support for Winsock 2 has been added. Use of Winsock 2 will give enhanced performance under certain circumstances.
SUPPORT UTILITY
Debug trace support has been added to expedite your support requests when needed.
ADDITIONAL SAMPLES
Several new samples have been added to illustrate new and existing features.
CLIENT AND SERVER LIBRARIES
All Server calls are now in the drpcsrvr.dll. The d32-rpc.dll now only contains the client side calls.
(*)Please note that certain US Export Restrictions apply to the use of this feature. If you are in a country to which export is permitted, you are still subject to the US export regulations and may not develop an application using this feature for export to a country to which such export is prohibited under the US Export regulations. |
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: I accidentally used the same toolkit license on two systems and am now getting License Violation as the other system is running the toolkit.
How do I go about updating licenses? |
| A.: Run the licrpctk.exe program that is installed in the DistinctShared folder to enter the correct license number. |
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: I am trying to use the Distinct rpcgen utility and I get the following error
""(null), line 0: error executing preprocessor (cl /C /EP /nologo), create process failed; exit code is 2"".
|
A.: This is because "CL.EXE" is not in the PATH environmental variable.
You can run "$(VC_DIR)\BIN\VCVARS32.BAT" before running "RPCGEN.EXE",
where VC_DIR is the directory in which Visual C is installed
|
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: Is there a procedure or thread that gives me the clnt handle status?
|
A.: No but you can call procedure number 0 for this. This proc 0 exists for all rpc application. This call must be in the same thread with the client object thread, otherwise, the communication with the server will be disrupted
if (clnt_call (clnt, 0, xdr_void, NULL, xdr_void, NULL, tv) == RPC_SUCCESS)
{
// ok
}
else
{
// error between client & server
}
You need to destroy the client and create a new client object
if the return indicates the connection is closed. You must
be sure that there are no other rpc calls ongoing for
that client when you make the proc 0 call. Otherwise, the
rpc call will return error even when the connection is ok.
|
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: What do I need to know about memory allocation when using the RPC libraries? |
A.: For CRPC Server applications, you need to use the hook we generated to free the memory that you allocated in your own routines.
For other memory blocks allocated in the Distinct CRPC DLLs, memory will be freed by the DLLs themselves.
For CRPC Client applications, you need to use clnt_freeres() or
xdr_free() to free the memory returned by clnt_call() or similar
calls for the rpc call result. The memory is allocated by
D32-RPC.DLL to hold the result, it cannot be freed by using
free() directly.
|
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: What is XDR - External Data Representation? |
| A.: XDR is a data description and representation standard that is used to encode the values in ONC RPC/XDR call and reply messages. The Distinct XDR can be also used to encode and decode messages that need to be exchanged between divers systems, independent of RPC. |
| |
Do you find this information useful ? Yes No Not Sure |
|
| Product: Distinct RPC for C, C++, Delphi | Topic: General | Last updated: 3/31/2008 |
| |
| Q.: When I run 'RCPGEN' I get an error.
|
A.: RPCGEN displays an error if the C compiler cannot be found in the path.
Once you register the compiler's path variables, rpcgen will work fine. |
| |
Do you find this information useful ? Yes No Not Sure |
|