Distinct offers Network Monitor, the ONLY natural language Protocol Analyzer, ONC RPC for C++, .NET and Java, and IntelliTerm, the fastest Terminal Emulator for TN3270, TN5250 and VT420 on the market.

Knowledge Base

   Products   Downloads   Sales   Support   About us
  Knowledge Base  Ask Cody  Manuals  Source Code Library  Resources



        
 
Distinct RPC for C, C++, Delphi : All topics frequently asked questions
 

Page 1 of 2  Next

Product: Distinct RPC for C, C++, DelphiTopic: GeneralLast 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++, DelphiTopic: GeneralLast 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

  1. The problem where the rpcgen32 utility was not producing the right files when absolute and relative paths of .x file were used is fixed.
  2. 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:
  1. When used in the VC++ 6.0 environment the dll caused an access violation when the clnt_create() function call was called.
  2. 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.
  3. 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.
  4. Some anomalies reported that were caused by the server receiving several megabytes of data have been fixed.
  5. 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++, DelphiTopic: GeneralLast 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++, DelphiTopic: GeneralLast 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++, DelphiTopic: GeneralLast 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++, DelphiTopic: GeneralLast 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++, DelphiTopic: GeneralLast 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++, DelphiTopic: GeneralLast 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++, DelphiTopic: GeneralLast 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++, DelphiTopic: GeneralLast 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

Page 1 of 2  Next

Search by Keyword


If you did not find what you are looking for:


Products

 Network Sniffing
The Distinct Network Monitor is a protocol analyzer for Windows that includes both packet sniffing and network traffic statistical analysis tools.

 Intelliterm
The Most Complete Terminal Emulator for TN3270, TN5250 and DEC VT220 to VT420

 RPC for C and C++
The Fastest Way to Port Your Existing Unix-RPC Applications to Windows

  7/24/2008   Legal notices | PRIVACY Policy | Networking News |         Page Last Modified: 3/31/2008