Get rid of the rest of the FD passing code when XTRANS_SEND_FDS isn't set

req_fds and SetReqFds in include/dixstruct.h

ReadFdFromClient, WriteFdToClient and the FD flushing in os/io.c

Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
Keith Packard 2013-11-07 15:18:28 -08:00
parent a239e6faf3
commit fc84166e65
3 changed files with 10 additions and 0 deletions

View File

@ -110,15 +110,19 @@ typedef struct _Client {
DeviceIntPtr clientPtr;
ClientIdPtr clientIds;
#if XTRANS_SEND_FDS
int req_fds;
#endif
} ClientRec;
#if XTRANS_SEND_FDS
static inline void
SetReqFds(ClientPtr client, int req_fds) {
if (client->req_fds != 0 && req_fds != client->req_fds)
LogMessage(X_ERROR, "Mismatching number of request fds %d != %d\n", req_fds, client->req_fds);
client->req_fds = req_fds;
}
#endif
/*
* Scheduling interface

View File

@ -98,9 +98,11 @@ extern _X_EXPORT int WaitForSomething(int * /*pClientsReady */
extern _X_EXPORT int ReadRequestFromClient(ClientPtr /*client */ );
#if XTRANS_SEND_FDS
extern _X_EXPORT int ReadFdFromClient(ClientPtr client);
extern _X_EXPORT int WriteFdToClient(ClientPtr client, int fd, Bool do_close);
#endif
extern _X_EXPORT Bool InsertFakeRequest(ClientPtr /*client */ ,
char * /*data */ ,

View File

@ -259,12 +259,14 @@ ReadRequestFromClient(ClientPtr client)
oc->input = oci;
}
#if XTRANS_SEND_FDS
/* Discard any unused file descriptors */
while (client->req_fds > 0) {
int req_fd = ReadFdFromClient(client);
if (req_fd >= 0)
close(req_fd);
}
#endif
/* advance to start of next request */
oci->bufptr += oci->lenLastReq;
@ -491,6 +493,7 @@ ReadRequestFromClient(ClientPtr client)
return needed;
}
#if XTRANS_SEND_FDS
int
ReadFdFromClient(ClientPtr client)
{
@ -513,6 +516,7 @@ WriteFdToClient(ClientPtr client, int fd, Bool do_close)
return _XSERVTransSendFd(oc->trans_conn, fd, do_close);
}
#endif
/*****************************************************************
* InsertFakeRequest