00001 /* 00002 * Worldvisions Weaver Software: 00003 * Copyright (C) 1997-2002 Net Integration Technologies, Inc. 00004 * 00005 * Implementation of the WvLoopback stream. WvLoopback uses a 00006 * socketpair() to create a stream that allows you to read() 00007 * everything written to it, even (especially) across a fork() call. 00008 */ 00009 #include "wvloopback.h" 00010 #include "wvsocketpair.h" 00011 00012 WvLoopback::WvLoopback() 00013 { 00014 int socks[2]; 00015 00016 if (wvsocketpair(SOCK_STREAM, socks)) 00017 { 00018 seterr(errno); 00019 return; 00020 } 00021 00022 rfd = socks[0]; 00023 wfd = socks[1]; 00024 00025 set_close_on_exec(true); 00026 set_nonblock(true); 00027 }