HPUX ipclookup[2]

ipclookup(2) ipclookup(2)
NAME
ipclookup - obtain a NetIPC destination descriptor
SYNOPSIS
#include <sys/ns_ipc.h>
void ipclookup(
const char *socketname,
ns_int_t nlen,
const char *nodename,
ns_int_t nodelen,
ns_int_t *flags,
ns_int_t *destdesc,
ns_int_t *protocol,
ns_int_t *socketkind,
ns_int_t *result);
DESCRIPTION
ipclookup() is used to obtain a destination descriptor for a named
call socket. When supplied with valid socket and node names,
ipclookup() looks up the call socket in the socket registry at the
node specified in the nodename parameter and returns a destination
descriptor that can be used by subsequent NetIPC calls to locate the
call socket. A destination descriptor is required by the ipcconnect()
call to provide the information necessary to direct a connection
request to the proper node and call socket and thus initiate a
connection.
When a process attempts to look up a socket name in the appropriate
socket registry, the name must be there or an NSR_NAME_NOT_FOUND error
is returned to the calling process. When two processes are running
concurrently, it may be difficult to ensure that a socket name is
placed in the socket registry prior to being "looked up" by another
process. This problem is referred to as a race condition because the
two processes are "racing" to see which one accesses the socket
registry first.
In order to avoid a race situation, the process that calls ipclookup()
can test for a NSR_NAME_NOT_FOUND error in the call's result
parameter. If this error is returned, the process can try again by
entering a loop and repeating the ipclookup() call for a specified
number of times. The process should also call sleep() to suspend
execution for an interval (see sleep(3C), then repeat the ipclookup()
call.
Parameters
socketname (input parameter) The name of the call socket to
be ``looked up''. Uppercase and lowercase
characters are treated as equivalent.
Hewlett-Packard Company - 1 - HP-UX Release 9.0: August 1992
ipclookup(2) ipclookup(2)
nlen (input parameter) The length of the socketname
parameter in characters. Maximum length is 16
characters.
nodename (input parameter) The ASCII-coded name that that
identifies the node where the socket specified in
the socketname parameter resides. Default:
organization, organization and domain, or all
parts of the node name can be omitted. When
organization or organization and domain are
omitted, they default to the local organization
and/or domain. If the entire parameter is
omitted, the node name defaults to the local node.
nodelen (input parameter) The length in bytes of the
nodename parameter. If zero is specified, NetIPC
searches the local node's socket registry (see
nodename parameter above for more information).
flags (input parameter) This parameter is reserved for
future use. All bits must be clear (not set).
destdesc (output parameter) Destination descriptor. Refers
to the descriptor that indicates the location of
the named call socket. Can be used in subsequent
NetIPC calls.
protocol (output parameter) This parameter is reserved for
future use. Zero (0) is always returned in this
parameter.
socketkind (output parameter) Identifies the socket's type.
Can be used in an ipccreate() call to create a
socket of the appropriate type.
result (output parameter) See ERRORS below.
RETURN VALUE
None. Errors are returned in the result parameter.
ERRORS
[NSR_NO_ERROR] The call was successful.
[NSR_BOUNDS_VIO] A parameter address is invalid.
[NSR_FLAGS] The value in the flags parameter in
invalid.
[NSR_PROTOCOL] The protocol of the socket specified by
socketname is not supported by the local
system.
Hewlett-Packard Company - 2 - HP-UX Release 9.0: August 1992
ipclookup(2) ipclookup(2)
[NSR_NLEN] The value in the nodelen parameter is
not valid.
[NSR_NODE_NAME_SYNTAX] The string pointed to by nodename is
invalid.
[NSR_NO_NODE] nodename is unknown to the local host.
[NSR_NO_MEMORY] Sufficient system memory is not
available to execute this call at this
time.
[NSR_PATH_REPORT] The path report could not be
interpreted.
[NSR_NAME_NOT_FOUND] The specified socketname was not found
in the socket registry.
[NSR_CANT_CONTACT_SERVER] The ipclookup() request could not be
sent to the remote socket registry
server.
[NSR_NO_REG_RESPONSE] No response was received from the remote
socket registry server.
[NSR_VERSION] The reply from the remote socket
registry indicates a version error
occurred.
[NSR_BAD_REG_MSG] A corrupt reply message was received
from the remote socket registry server.
[NSR_NO_FILE_AVAIL] No file table entries are available.
[NSR_NO_DESC_AVAIL] The process exceeded the system-defined
number of file and socket descriptors
that can be open at a time (see
getrlimit(2)).
AUTHOR
ipclookup() was developed by HP.
SEE ALSO
getrlimit(2), ipcconnect(2), ipccontrol(2), ipccreate(2), ipcdest(2),
ipcgetnodename(2), ipcname(2), ipcnamerase(2), ipcrecv(2),
ipcrecvcn(2), ipcselect(2), ipcsend(2), ipcsetnodename(2),
ipcshutdown(2), addopt(3N), initopt(3N), ipcerrmsg(3N),
optoverhead(3N), readopt(3N), sleep(3C).
Hewlett-Packard Company - 3 - HP-UX Release 9.0: August 1992