ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/fdpass.C
(Generate patch)

Comparing rxvt-unicode/src/fdpass.C (file contents):
Revision 1.3 by root, Fri Jan 13 07:03:48 2006 UTC vs.
Revision 1.10 by root, Tue Jan 24 11:35:17 2006 UTC

1// This file is part of libptytty. Do not make local modifications.
2// http://software.schmorp.de/pkg/libptytty
3
1/*--------------------------------*-C-*---------------------------------* 4/*----------------------------------------------------------------------*
2 * File: fdpass.C 5 * File: fdpass.C
3 *----------------------------------------------------------------------* 6 *----------------------------------------------------------------------*
4 * 7 *
5 * All portions of code are copyright by their respective author/s. 8 * All portions of code are copyright by their respective author/s.
6 * Copyright (c) 2005-2006 Marc Lehmann <pcg@goof.com> 9 * Copyright (c) 2005-2006 Marc Lehmann <pcg@goof.com>
19 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 *----------------------------------------------------------------------*/ 24 *----------------------------------------------------------------------*/
22 25
23#include "../config.h" 26#include "../config.h"
24#include "rxvt.h"
25 27
26#if ENABLE_FRILLS && HAVE_UNIX_FDPASS 28#include <cstddef> // needed by freebsd for NULL used in sys/uio.h
27 29
30#include <sys/uio.h>
28#include <sys/types.h> 31#include <sys/types.h>
29#include <sys/socket.h> 32#include <sys/socket.h>
30 33
31#include "fdpass.h" 34#include "libptytty.h"
32
33#include <cstdio> //d
34 35
35#ifndef CMSG_LEN // CMSG_SPACe && CMSG_LEN are rfc2292 extensions to unix 36#ifndef CMSG_LEN // CMSG_SPACe && CMSG_LEN are rfc2292 extensions to unix
36# define CMSG_LEN(len) (sizeof (cmsghdr) + len) 37# define CMSG_LEN(len) (sizeof (cmsghdr) + len)
37#endif 38#endif
38 39
39int 40bool
40rxvt_send_fd (int socket, int fd) 41ptytty::send_fd (int socket, int fd)
41{ 42{
42 msghdr msg; 43 msghdr msg;
43 iovec iov; 44 iovec iov;
44 char buf [CMSG_LEN (sizeof (int))]; 45 char buf [CMSG_LEN (sizeof (int))];
45 char data = 0; 46 char data = 0;
61 62
62 *(int *)CMSG_DATA (cmsg) = fd; 63 *(int *)CMSG_DATA (cmsg) = fd;
63 64
64 msg.msg_controllen = cmsg->cmsg_len; 65 msg.msg_controllen = cmsg->cmsg_len;
65 66
66 return sendmsg (socket, &msg, 0); 67 return sendmsg (socket, &msg, 0) >= 0;
67} 68}
68 69
69int 70int
70rxvt_recv_fd (int socket) 71ptytty::recv_fd (int socket)
71{ 72{
72 msghdr msg; 73 msghdr msg;
73 iovec iov; 74 iovec iov;
74 char buf [CMSG_LEN (sizeof (int))]; /* ancillary data buffer */ 75 char buf [CMSG_LEN (sizeof (int))]; /* ancillary data buffer */
75 char data = 1; 76 char data = 1;
100 return -1; 101 return -1;
101 102
102 return *(int *)CMSG_DATA (cmsg); 103 return *(int *)CMSG_DATA (cmsg);
103} 104}
104 105
105#endif
106

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines