SuperScript::Software

ucspi-ipc



How to install ucspi-ipc

Servers
The ipcserver program
The ipcrules program
The ipcrulescheck program

The ipcexec program
The ipcexecrules program
The ipcexecrulescheck program
The ipcexec-config program

Clients
The ipcclient program
The ipccat program
The ipcconnect program

The ipccommand program
The ipcdo program
The ipcrun program

Preforking Servers
Compiling an ipchandle server
The ipcperl program

General Information
The ucspi-ipc environment variables
The ucspi-ipc protocol description

getpeereid
A mailing list for ucspi-ipc and general ucspi discussion


What is ucspi-ipc?

ipcserver and ipcclient are command-line tools for building local-domain client-server applications. They conform to the UNIX Client-Server Program Interface, UCSPI.

ipcserver listens for connections on a local-domain stream socket, and runs a program for each connection it accepts. The program environment includes variables that hold the local and remote socket addresses, and the effective user and group IDs of the process that called connect. ipcserver offers a concurrency limit on acceptance of new connections, and selective handling of connections based on client identity.

ipcclient requests a connection to a local-domain socket, and runs a program. The program environment includes a variable that holds the local socket address.

ipcperl is an example of an ipchandle server. It invokes a perl subroutine for each request.

Features

A service running as a privileged user under ipcserver can perform tasks on behalf of nonprivileged users without setuid programs. Clients user and group IDs are known to the server can be logged. Access to any service is configurable through a standard, simple mechanism, based on the client user and group ID.

Operating System Support

The ucspi-ipc package requires an implementation of getpeereid. Recent Linux kernels offer sufficient basis for getpeereid. Various operating systems implement a getpeereid system call, including OpenBSD 3.0, FreeBSD 4.6, and AIX 5L.

Patches to add a getpeereid system call are available for several operating systems.

Related Software

D.J. Bernstein created the UCSPI framework and wrote ucspi-tcp.

Bruce Guenter has a protocol and package similar to ucspi-ipc called ucspi-unix