unix_pass_fd_fix.c revision 1.1.1.1
1/* $NetBSD: unix_pass_fd_fix.c,v 1.1.1.1 2010/06/17 18:07:15 tron Exp $ */ 2 3/*++ 4/* NAME 5/* unix_pass_fd_fix 3 6/* SUMMARY 7/* file descriptor passing bug workarounds 8/* SYNOPSIS 9/* #include <iostuff.h> 10/* 11/* void set_unix_pass_fd_fix(workarounds) 12/* const char *workarounds; 13/* DESCRIPTION 14/* This module supports programmatic control over workarounds 15/* for sending or receiving file descriptors over UNIX-domain 16/* sockets. 17/* 18/* set_unix_pass_fd_fix() takes a list of workarouds in external 19/* form, and stores their internal representation. The result 20/* is used by unix_send_fd() and unix_recv_fd(). 21/* 22/* Arguments: 23/* .IP workarounds 24/* List of zero or more of the following, separated by comma 25/* or whitespace. 26/* .RS 27/* .IP cmsg_len 28/* Send the CMSG_LEN of the file descriptor, instead of 29/* the total message buffer length. 30/* .RE 31/* SEE ALSO 32/* unix_send_fd(3) send file descriptor 33/* unix_recv_fd(3) receive file descriptor 34/* DIAGNOSTICS 35/* Fatal errors: non-existent workaround. 36/* LICENSE 37/* .ad 38/* .fi 39/* The Secure Mailer license must be distributed with this software. 40/* AUTHOR(S) 41/* Wietse Venema 42/* IBM T.J. Watson Research 43/* P.O. Box 704 44/* Yorktown Heights, NY 10598, USA 45/*--*/ 46 47/* System library. */ 48 49#include <sys_defs.h> 50 51/* Utility library. */ 52 53#include <iostuff.h> 54#include <name_mask.h> 55 56int unix_pass_fd_fix = 0; 57 58/* set_unix_pass_fd_fix - set workaround programmatically */ 59 60void set_unix_pass_fd_fix(const char *workarounds) 61{ 62 const static NAME_MASK table[] = { 63 "cmsg_len", UNIX_PASS_FD_FIX_CMSG_LEN, 64 0, 65 }; 66 67 unix_pass_fd_fix = name_mask("descriptor passing workarounds", 68 table, workarounds); 69} 70