1/* $NetBSD$ */ 2 3/*++ 4/* NAME 5/* duplex_pipe 3 6/* SUMMARY 7/* local IPD 8/* SYNOPSIS 9/* #include <iostuff.h> 10/* 11/* int duplex_pipe(fds) 12/* int *fds; 13/* DESCRIPTION 14/* duplex_pipe() uses whatever local primitive it takes 15/* to get a two-way I/O channel. 16/* DIAGNOSTICS 17/* A null result means success. In case of error, the result 18/* is -1 and errno is set to the appropriate number. 19/* LICENSE 20/* .ad 21/* .fi 22/* The Secure Mailer license must be distributed with this software. 23/* AUTHOR(S) 24/* Wietse Venema 25/* IBM T.J. Watson Research 26/* P.O. Box 704 27/* Yorktown Heights, NY 10598, USA 28/*--*/ 29 30/* System libraries */ 31 32#include <sys_defs.h> 33#include <sys/socket.h> 34#include <unistd.h> 35 36/* Utility library. */ 37 38#include "iostuff.h" 39#include "sane_socketpair.h" 40 41/* duplex_pipe - give me a duplex pipe or bust */ 42 43int duplex_pipe(int *fds) 44{ 45#ifdef HAS_DUPLEX_PIPE 46 return (pipe(fds)); 47#else 48 return (sane_socketpair(AF_UNIX, SOCK_STREAM, 0, fds)); 49#endif 50} 51 52