summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2015-09-21 07:16:14 +0100
committerAdam Jackson <ajax@redhat.com>2015-09-24 13:38:24 -0400
commit6c2c6fb5a7b44f50811722eb8621afb272aff2e8 (patch)
tree288292516db0e178d9f044a3497e346f2f5aefcd
parent9af111fe045d82192bacc722940e1d92a8ba4cbd (diff)
Xext, os: Remove OS-internal usages within XACE and XSELinux
These extensions were accessing internal OS functions and structures. Expose the necessary functionality to them and remove their use of osdep.h Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Keith Packard <keithp@keithp.com>
-rw-r--r--Xext/xace.c13
-rw-r--r--Xext/xselinux_hooks.c1
-rw-r--r--include/os.h7
-rw-r--r--os/access.c14
4 files changed, 23 insertions, 12 deletions
diff --git a/Xext/xace.c b/Xext/xace.c
index b3c67f632..fcb38db8c 100644
--- a/Xext/xace.c
+++ b/Xext/xace.c
@@ -29,11 +29,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "gcstruct.h"
#include "xacestr.h"
-#define XSERV_t
-#define TRANS_SERVER
-#include <X11/Xtrans/Xtrans.h>
-#include "../os/osdep.h"
-
_X_EXPORT CallbackListPtr XaceHooks[XACE_NUM_HOOKS] = { 0 };
/* Special-cased hook functions. Called by Xserver.
@@ -342,15 +337,11 @@ XaceCensorImage(ClientPtr client,
int
XaceGetConnectionNumber(ClientPtr client)
{
- XtransConnInfo ci = ((OsCommPtr) client->osPrivate)->trans_conn;
-
- return _XSERVTransGetConnectionNumber(ci);
+ return GetClientFd(client);
}
int
XaceIsLocal(ClientPtr client)
{
- XtransConnInfo ci = ((OsCommPtr) client->osPrivate)->trans_conn;
-
- return _XSERVTransIsLocal(ci);
+ return ClientIsLocal(client);
}
diff --git a/Xext/xselinux_hooks.c b/Xext/xselinux_hooks.c
index e69bfe7ae..d9f2f681b 100644
--- a/Xext/xselinux_hooks.c
+++ b/Xext/xselinux_hooks.c
@@ -41,7 +41,6 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "extnsionst.h"
#include "xacestr.h"
#include "client.h"
-#include "../os/osdep.h"
#define _XSELINUX_NEED_FLASK_MAP
#include "xselinuxint.h"
diff --git a/include/os.h b/include/os.h
index b2b96c863..9937f2ea5 100644
--- a/include/os.h
+++ b/include/os.h
@@ -415,6 +415,7 @@ typedef struct {
extern _X_EXPORT int
GetLocalClientCreds(ClientPtr, LocalClientCredRec **);
+
extern _X_EXPORT void
FreeLocalClientCreds(LocalClientCredRec *);
@@ -422,6 +423,12 @@ extern _X_EXPORT int
ChangeAccessControl(ClientPtr /*client */ , int /*fEnabled */ );
extern _X_EXPORT int
+GetClientFd(ClientPtr);
+
+extern _X_EXPORT Bool
+ClientIsLocal(ClientPtr client);
+
+extern _X_EXPORT int
GetAccessControl(void);
extern _X_EXPORT void
diff --git a/os/access.c b/os/access.c
index 54f069024..2499a9f12 100644
--- a/os/access.c
+++ b/os/access.c
@@ -1574,6 +1574,20 @@ GetAccessControl(void)
return AccessEnabled;
}
+int
+GetClientFd(ClientPtr client)
+{
+ return ((OsCommPtr) client->osPrivate)->fd;
+}
+
+Bool
+ClientIsLocal(ClientPtr client)
+{
+ XtransConnInfo ci = ((OsCommPtr) client->osPrivate)->trans_conn;
+
+ return _XSERVTransIsLocal(ci);
+}
+
/*****************************************************************************
* FamilyServerInterpreted host entry implementation
*