1 /* $NetBSD: timed_ipc.c,v 1.2 2017/02/14 01:16:45 christos Exp $ */ 2 3 /*++ 4 /* NAME 5 /* timed_ipc 3 6 /* SUMMARY 7 /* enforce IPC timeout on stream 8 /* SYNOPSIS 9 /* #include <time_ipc.h> 10 /* 11 /* void timed_ipc_setup(stream) 12 /* VSTREAM *stream; 13 /* DESCRIPTION 14 /* timed_ipc() enforces on the specified stream the timeout as 15 /* specified via the \fIipc_timeout\fR configuration parameter: 16 /* a read or write operation fails if it does not succeed within 17 /* \fIipc_timeout\fR seconds. This deadline exists as a safety 18 /* measure for communication between mail subsystem programs, 19 /* and should never be exceeded. 20 /* DIAGNOSTICS 21 /* Panic: sanity check failed. Fatal error: deadline exceeded. 22 /* LICENSE 23 /* .ad 24 /* .fi 25 /* The Secure Mailer license must be distributed with this software. 26 /* AUTHOR(S) 27 /* Wietse Venema 28 /* IBM T.J. Watson Research 29 /* P.O. Box 704 30 /* Yorktown Heights, NY 10598, USA 31 /*--*/ 32 33 /* System library. */ 34 35 #include <sys_defs.h> 36 37 /* Utility library. */ 38 39 #include <msg.h> 40 #include <vstream.h> 41 42 /* Global library. */ 43 44 #include "mail_params.h" 45 #include "timed_ipc.h" 46 47 /* timed_ipc_setup - enable ipc with timeout */ 48 timed_ipc_setup(VSTREAM * stream)49void timed_ipc_setup(VSTREAM *stream) 50 { 51 if (var_ipc_timeout <= 0) 52 msg_panic("timed_ipc_setup: bad ipc_timeout %d", var_ipc_timeout); 53 54 vstream_control(stream, 55 CA_VSTREAM_CTL_TIMEOUT(var_ipc_timeout), 56 CA_VSTREAM_CTL_END); 57 } 58