oracle home
ONC+ RPC Developer's Guide
Exit Print View
Search Term
Search Scope:
This Document
Entire Library
» ...
Index R
Updated: July 2014
ONC+ RPC Developer's Guide
Document Information
Using This Documentation
Product Documentation Library
Access to Oracle Support
Feedback
Chapter 1 Introduction to ONC+ Technologies
Introduction
Brief Description of ONC+ Technologies
TI-RPC
XDR
NFS
Chapter 2 Introduction to TI-RPC
What Is TI-RPC?
TI-RPC Issues
Parameter Passing
Binding
Transport Protocol
Call Semantics
Data Representation
Program, Version, and Procedure Numbers
Overview of Interface Routines
Simplified Interface Routines
Standard Interface Routines
Top-Level Routines
Intermediate-Level Routines
Expert-Level Routines
Bottom-Level Routines
Network Selection
Transport Selection
Name-to-Address Translation
Address Look-up Services
Registering Addresses
Reporting RPC Information
Chapter 3 rpcgen Programming Guide
What Is rpcgen?
Software Environment Features
rpcgen Tutorial
Converting Local Procedures to Remote Procedures
Passing Complex Data Structures
Preprocessing Directives
cpp Directive
Compile-Time Flags
Compile-Time Client and Server Templates
Compile-Time C-style Mode
Compile-Time MT-Safe Code
Compile-Time MT Auto Mode
Compile-Time TI-RPC or TS-RPC Library Selection
Compile-Time ANSI C-compliant Code
Compile-Time xdr_inline Count
rpcgen Programming Techniques
Network Types/Transport Selection
Command-Line Define Statements
Server Response to Broadcast Calls
Port Monitor Support
Time-out Changes
Client Authentication
Dispatch Tables
64???Bit Considerations for rpcgen
IPv6 Considerations for rpcgen
Debugging Applications
Chapter 4 Programmer's Interface to RPC
Simplified Interface
Client Side of Simplified Interface
Server Side of the Simplified Interface
Hand-Coded Registration Routine
Passing Arbitrary Data Types
Standard Interfaces
Top-Level Interface
Client Side of the Top-Level Interface
Intermediate-Level Interface
Client Side of the Intermediate-Level Interface
Server Side of the Intermediate-Level Interface
Expert-Level Interface
Client Side of the Expert-Level Interface
Server Side of the Expert-Level Interface
Bottom-Level Interface
Client Side of the Bottom-Level Interface
Server Side of the Bottom-Level Interface
Server Caching
Low-Level Data Structures
Testing Programs Using Low-Level Raw RPC
Connection-Oriented Transports
Memory Allocation With XDR
Chapter 5 Advanced RPC Programming Techniques
poll on the Server Side
Broadcast RPC
Batching
Authentication
AUTH_SYS Authentication
AUTH_DES Authentication
AUTH_KERB Authentication
Authentication Using RPCSEC_GSS
RPCSEC_GSS API
RPCSEC_GSS Routines
Creating a Context
Changing Values and Destroying a Context
Principal Names
Setting Server Principal Names
Generating Client Principal Names
Freeing Principal Names
Receiving Credentials at the Server
Cookies
Callbacks
Maximum Data Size
Miscellaneous Functions
Associated Files
gsscred Table
/etc/gss/qop and /etc/gss/mech
Using Port Monitors
Using inetd
Using the Listener
Multiple Server Versions
Multiple Client Versions
Using Transient RPC Program Numbers
Chapter 6 Porting From TS-RPC to TI-RPC
Porting an Application
Benefits of Porting
IPv6 Considerations for RPC
Porting Issues
Differences Between TI-RPC and TS-RPC
Function Compatibility Lists
Creating and Destroying Services
Registering and Unregistering Services
Compatibility Calls
Broadcasting
Address Management Functions
Authentication Functions
Other Functions
Comparison Examples
Chapter 7 Multithreaded RPC Programming
MT Client Overview
MT Server Overview
Sharing the Service Transport Handle
MT Auto Mode
MT User Mode
Freeing Library Resources in User Mode
Chapter 8 Extensions to the Oracle Solaris RPC Library
New Features
One-Way Messaging
clnt_send
oneway Attribute
One-way call using a simple counter service
Non-Blocking I/O
Using Non-Blocking I/O
Using a simple counter with non-blocking I/O
clnt_call Configured as Non-Blocking
Client Connection Closure Callback
Example of client connection closure callback
User File Descriptor Callbacks
Example of User File Descriptors
Appendix A XDR Technical Note
What Is XDR?
Canonical Standard
XDR Library
XDR Library Primitives
Memory Requirements for XDR Routines
Number Filters
Floating-Point Filters
Enumeration Filters
No-Data Routine
Constructed Data Type Filters
Strings
Byte Arrays
Arrays
Array Example 1
Array Example 2
Array Example 3
Opaque Data
Fixed-Length Arrays
Discriminated Unions
Discriminated Union Example
Pointers
Pointer Example
Pointer Semantics
Nonfilter Primitives
Operation Directions
Stream Access
Standard I/O Streams
Memory Streams
Record TCP/IP Streams
XDR Stream Implementation
XDR Object
Advanced XDR Topics
Linked Lists
Appendix B RPC Protocol and Language Specification
Protocol Overview
RPC Model
Transports and Semantics
Binding and Rendezvous Independence
Program and Procedure Numbers
Program Number Assignment
Program Number Registration
Other Uses of the RPC Protocol
Batching
Broadcast RPC
RPC Message Protocol
Record-Marking Standard
Authentication Protocols
AUTH_NONE
AUTH_SYS
AUTH_SHORT Verifier
AUTH_DES Authentication
AUTH_DES Authentication Verifiers
Nicknames and Clock Synchronization
DES Authentication Protocol (in XDR language)
Diffie-Hellman Encryption
AUTH_KERB Authentication
NFS Mount Example
KERB Authentication Protocol
RPC Language Specification
Example Service Described in the RPC Language
RPCL Syntax
RPCL Enumerations
RPCL Constants
RPCL Type Definitions
RPCL Declarations
RPCL Simple Declarations
RPCL Fixed-Length Array Declarations
RPCL Variable-Length Array Declarations
RPCL Pointer Declarations
RPCL Structures
RPCL Unions
RPCL Programs
RPCL Special Cases
RPCL C-style Mode
RPCL Booleans
RPCL Strings
RPCL Opaque Data
RPCL Voids
rpcbind Protocol
rpcbind Operation
Appendix C XDR Protocol Specification
XDR Protocol Introduction
Graphic Box Notation
Basic Block Size
XDR Data Type Declarations
Signed Integer
Declaration
Signed Integer Encoding
Unsigned Integer
Declaration
Unsigned Integer Encoding
Enumerations
Booleans
Hyper Integer and Unsigned Hyper Integer
Declaration
Hyper Integer Encoding
Floating Point
Declaration
Double-Precision Floating Point Encoding
Quadruple-Precision Floating Point
Declaration
Quadruple-Precision Floating Point Encoding
Fixed-Length Opaque Data
Declaration
Fixed-Length Opaque Encoding
Variable-Length Opaque Data
Declaration
Variable-Length Opaque Encoding
Counted Byte Strings
Declaration
String Encoding
Fixed-Length Array
Declaration
Fixed-Length Array Encoding
Variable-Length Array
Declaration
Counted Array Encoding
Structure
Declaration
Structure Encoding
Discriminated Union
Declaration
Discriminated Union Encoding
Void
Declaration
Constant
Declaration
Typedef
Optional-Data
XDR Language Specification
Notational Conventions
Lexical Notes
Syntax Notes
XDR Data Description
RPC Language Reference
Appendix D RPC Code Examples
Directory Listing Program and Support Routines (rpcgen)
Time Server Program (rpcgen)
Add Two Numbers Program (rpcgen)
Spray Packets Program (rpcgen)
Print Message Program With Remote Version
Batched Code Example
Non-Batched Example
Appendix E portmap Utility
System Registration Overview
portmap Protocol
portmap Operation
PMAPPROC_NULL
PMAPPROC_SET
PMAPPROC_UNSET
PMAPPROC_GETPORT
PMAPPROC_DUMP
PMAPPROC_CALLIT
Glossary
Index
Index Numbers and Symbols
Index A
Index B
Index C
Index D
Index E
Index F
Index H
Index I
Index K
Index L
Index M
Index N
Index O
Index P
Index Q
Index R
Index S
Index T
Index U
Index V
Index W
Index X
Language:
English
R
/rpcsvc directory
Program Number Registration
raw RPC
testing programs using low-level
Simple Program Using Raw RPC
READDIR procedure
Directory Listing Program and Support Routines (rpcgen)
Client-side Implementation of rls.c
Passing Complex Data Structures
record streams
XDR
Record-Marking Standard
Record-Marking Standard
Record TCP/IP Streams
Memory Streams
record-marking standard
Record-Marking Standard
Record-Marking Standard
recursive data structures
Optional-Data
Nonrecursive Stack in XDR
Advanced XDR Topics
registering
authentication numbers
Authentication Protocols
procedures as RPC programs
Server Side of the Simplified Interface
RPC Routines???Simplified Level
registration
Registering and Unregistering Services
hand-coded registration routine
Hand-Coded Registration Routine
procedures as RPC programs
Hand-Coded Registration Routine
program version numbers
Multiple Server Versions
remote directory listing service
Client-side Implementation of rls.c
Passing Complex Data Structures
remote procedures
conversion of local procedures
Client Program to Call printmsg.c
conversion of local procedures to
Converting Local Procedures to Remote Procedures
identification
Program and Procedure Numbers
Transports and Semantics
identifying
Program Number Registration
Program, Version, and Procedure Numbers
Program, Version, and Procedure Numbers
Remote Time Protocol
Compile-Time MT Auto Mode
rpcgen Preprocessing Directives
rendezvousing
TI-RPC
Binding and Rendezvous Independence
rls.c
routine
Client-side Implementation of rls.c
RPC
address look-up services
Registering Addresses
Address Look-up Services
RPC Routines???Expert Level
address reporting
Reporting RPC Information
address translation
Porting Issues
Name-to-Address Translation
asynchronous mode
poll on the Server Side
batched
Batched Code Example
Batching
Batched Server
Batching
errors
Program and Procedure Numbers
Debugging Applications
Debugging Applications
identification of remote procedures
Transports and Semantics
identifying remote procedures
Program and Procedure Numbers
Program, Version, and Procedure Numbers
Program, Version, and Procedure Numbers
information report
Using Transient RPC Program Numbers
Using Transient RPC Program Numbers
information reporting
Reporting RPC Information
interface routines
Top-Level Interface
Standard Interfaces
Simplified Interface
Programmer's Interface to RPC
Top-Level Routines
Overview of Interface Routines
bottom-level
Bottom-Level Interface
caching servers
Server Caching
expert-level
Server for RPC Lower Level
Expert-Level Interface
intermediate level
Intermediate-Level Interface
Intermediate-Level Routines
low-level data structures
Low-Level Data Structures
simplified
Standard Interfaces
xdr_reference Syntax Use
standard
Standard Interfaces
top-level
Client Program to Call printmsg.c
multiple client versions
Multiple Client Versions
multiple server versions
Multiple Server Versions
name-to-address translation
Porting Issues
Registering Addresses
Name-to-Address Translation
network selection
Network Selection
poll routine
poll on the Server Side
record-marking standard
Record-Marking Standard
standards
Record-Marking Standard
Record-Marking Standard
How RPC Works
transient RPC program numbers
RPC Program Number Assignment
Using Transient RPC Program Numbers
transport selection
Transport Selection
RPC (
identifying remote procedures
Program Number Registration
RPC (remote procedure call)
errors
Client Program to Call printmsg.c
failure of
Client Program to Call printmsg.c
interface routines
top-level
Client Program to Call printmsg.c
RPC call
record-marking standard
Record-Marking Standard
RPC language
reference
RPC Language Reference
RPC language (RPCL)
RPCL Voids
RPCL Syntax
RPC Language Specification
arrays
RPCL Variable-Length Array Declarations
RPCL Fixed-Length Array Declarations
Booleans
RPCL Booleans
C
What Is rpcgen?
C-style mode and
RPCL C-style Mode
constants
RPCL Constants
declarations
RPCL Variable-Length Array Declarations
RPCL Declarations
definitions
RPC Language Definitions
discriminated unions
RPCL Unions
RPCL Unions
RPC Protocol Description File: dir.x
enumerations
RPCL Enumerations
RPCL Enumerations
RPC Protocol Description File: dir.x
example protocol described in
Single Process Version of printmesg.c
fixed-length arrays
RPCL Fixed-Length Array Declarations
RPCL Fixed-Length Array Declarations
keywords
RPC Protocol Description File: dir.x
opaque data
RPCL Opaque Data
overview
RPC Language Reference
pointers
RPCL Pointer Declarations
RPCL Pointer Declarations
portmap protocol specification
Typical Portmap Sequence (For TCP/IP Only)
program declarations
RPCL Programs
RPCL Programs
simple declarations
RPCL Simple Declarations
special cases
RPCL Voids
RPCL Special Cases
specification
RPCL Voids
RPC Language Specification
strings
RPCL Strings
Single Process Version of printmesg.c
structures
RPCL Structures
RPC Protocol Description File: dir.x
syntax
RPC Language Definitions
RPCL Syntax
type definitions
RPCL Type Definitions
unions
RPCL Unions
RPCL Unions
RPC Protocol Description File: dir.x
variable-length arrays
RPCL Variable-Length Array Declarations
voids
RPCL Voids
XDR language
RPC Language Specification
XDR language vs.
RPC Language Reference
RPCL Syntax
RPC_AUTHERROR error
Nicknames and Clock Synchronization
RPC_CLNT preprocessing directive
rpcgen Preprocessing Directives
rpc_createerr global variable
Client for Trivial Date Service
rpc_gss_principal_t principal name structure
Principal Names
rpc_gss_principal_t principal structure name
Generating Client Principal Names
RPC_HDR preprocessing directive
rpcgen Preprocessing Directives
RPC_SVC preprocessing directive
rpcgen Preprocessing Directives
RPC_TBL preprocessing directive
rpcgen Preprocessing Directives
RPC_XDR preprocessing directive
rpcgen Preprocessing Directives
rpcbind daemons
registering addresses with
Registering Addresses
rpcbind routine
time service
AUTH_DES Authentication Verifiers
RPCBPROC_CALLIT procedure
Registering Addresses
RPCBPROC_GETTIME procedure
AUTH_DES Authentication Verifiers
rpcgen tool
Add Two Numbers Program (rpcgen)
Debugging Applications
64???Bit Considerations for rpcgen
rpcgen Programming Guide
advantages
What Is rpcgen?
arguments
RPCL C-style Mode
xdr_reference Syntax Use
Passing Arbitrary Data Types
Server Side of the Simplified Interface
Compile-Time C-style Mode
RPC Version of printmsg.c
RPC Version of printmsg.c
authentication
AUTH_KERB Authentication
AUTH_DES Authentication
Client Authentication
RPC Programming Techniques
batched code example
Batched Code Example
broadcast call server response
Server Response to Broadcast Calls
C and
Compile-Time ANSI C-compliant Code
ANSI C compliance
Compile-Time ANSI C-compliant Code
rpcgen Compile-Time Flags
Software Environment Features
C-style mode
RPCL C-style Mode
Compile-Time C-style Mode
rpcgen Compile-Time Flags
Software Environment Features
preprocessing directives
Command-Line Define Statements
cpp Directive
Preprocessing Directives
compilation modes
Compile-Time C-style Mode
Software Environment Features
complex data structure passing
Client-side Implementation of rls.c
Passing Complex Data Structures
conversion of local procedures to remote procedures
Client Program to Call printmsg.c
Converting Local Procedures to Remote Procedures
cpp
directive
cpp Directive
debugging
Debugging Applications
Debugging Applications
Command-Line Define Statements
RPC Programming Techniques
defaults
argument passing mode
C-style Mode Client Stub for add.x
Compile-Time C-style Mode
C preprocessor
cpp Directive
client time-out period
Time-out Changes
compilation mode
Software Environment Features
library selection
Compile-Time TI-RPC or TS-RPC Library Selection
MT-safety
Compile-Time MT-Safe Code
Software Environment Features
output
What Is rpcgen?
server exit interval
Port Monitor Support
define statements on command line
Command-Line Define Statements
directory listing program
Directory Listing Program and Support Routines (rpcgen)
Client-side Implementation of rls.c
Passing Complex Data Structures
dispatch tables
Using a Dispatch Table
Dispatch Tables
failure of remote procedure calls
Client Program to Call printmsg.c
flags
rpcgen Compile-Time Flags
-A (MT Auto mode)
Compile-Time MT Auto Mode
rpcgen Compile-Time Flags
-a (templates)
rpcgen Template Selection Flags
rpcgen Compile-Time Flags
-b (TS-RPC library)
Compile-Time TI-RPC or TS-RPC Library Selection
rpcgen Compile-Time Flags
-i (
xdr_inline()
count)
Compile-Time xdr_inline Count
-M (MT-safe code)
Compile-Time MT-Safe Code
rpcgen Compile-Time Flags
-N (C-style mode)
Compile-Time C-style Mode
rpcgen Compile-Time Flags
-Sc (templates)
rpcgen Template Selection Flags
rpcgen Compile-Time Flags
-Sm (templates)
rpcgen Template Selection Flags
rpcgen Compile-Time Flags
-Ss (templates)
rpcgen Template Selection Flags
rpcgen Compile-Time Flags
listed
Compile-Time Flags
hand-coding vs.
Hand-Coded Registration Routine
libraries
libnsl
Differences Between TI-RPC and TS-RPC
Porting Issues
RPC Protocol Description File: dir.x
Client Program to Call printmsg.c
selecting TI-RPC or TS-RPC library
Compile-Time TI-RPC or TS-RPC Library Selection
rpcgen Compile-Time Flags
Software Environment Features
MT (multithread) Auto mode
MT Auto Mode
Compile-Time MT Auto Mode
rpcgen Compile-Time Flags
Software Environment Features
MT (multithread)-safe code
Compile-Time MT-Safe Code
rpcgen Compile-Time Flags
Software Environment Features
naming remote procedure calls
RPC Version of printmsg.c
network types/transport selection
Network Types/Transport Selection
Newstyle (C-style) mode
Compile-Time C-style Mode
rpcgen Compile-Time Flags
Software Environment Features
optional output
What Is rpcgen?
pointers
RPC Version of printmsg.c
RPC Version of printmsg.c
port monitor support
Port Monitor Support
Port Monitor Support
Client Program to Call printmsg.c
preprocessing directives
Command-Line Define Statements
RPC Programming Techniques
cpp Directive
Preprocessing Directives
print message program
Print Message Program With Remote Version
Client Program to Call printmsg.c
Converting Local Procedures to Remote Procedures
programming techniques
Debugging Applications
rpcgen Programming Techniques
socket functions
Compile-Time TI-RPC or TS-RPC Library Selection
spray packets program
Spray Packets Program (rpcgen)
templates
Default Mode Version of add.x
Compile-Time Client and Server Templates
rpcgen Compile-Time Flags
Software Environment Features
TI-RPC and TS-RPC library selection
Compile-Time TI-RPC or TS-RPC Library Selection
TI-RPC vs. TS-RPC
Differences Between TI-RPC and TS-RPC
TI-RPC vs. TS-RPC library selection
rpcgen Compile-Time Flags
Software Environment Features
time server program
Time Server Program (rpcgen)
Compile-Time MT Auto Mode
rpcgen Preprocessing Directives
time-out changes
Time-out Changes
tutorial
rpcgen Compile-Time Flags
rpcgen Tutorial
variable declarations and
RPCL Fixed-Length Array Declarations
XDR routine generation
What Is XDR?
rpcgen Preprocessing Directives
Client-side Implementation of rls.c
Passing Complex Data Structures
xdr_inline()
count
Compile-Time xdr_inline Count
xdr_inline
count
rpcgen Compile-Time Flags
RPCPROGVERSMISMATCH error
Multiple Client Versions
RPCSEC_GSS security flavor
/etc/gss/qop file
gsscred Table
etc/gss/mech/ file
gsscred Table
service
integrity
Authentication Using RPCSEC_GSS
rstat program
multithreaded
MT Client Overview
Previous
Next