psss / rpms / libselinux

Forked from rpms/libselinux 5 years ago
Clone
4dca0c4
diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinux.py libselinux-2.0.13/src/selinux.py
4dca0c4
--- nsalibselinux/src/selinux.py	2007-02-22 08:53:23.000000000 -0500
4dca0c4
+++ libselinux-2.0.13/src/selinux.py	2007-04-23 10:26:41.000000000 -0400
4dca0c4
@@ -48,8 +48,19 @@
4dca0c4
 del types
4dca0c4
 
4dca0c4
 
4dca0c4
+SELINUX_DEFAULTUSER = _selinux.SELINUX_DEFAULTUSER
4dca0c4
+get_ordered_context_list = _selinux.get_ordered_context_list
4dca0c4
+get_ordered_context_list_with_level = _selinux.get_ordered_context_list_with_level
4dca0c4
+get_default_context = _selinux.get_default_context
4dca0c4
+get_default_context_with_level = _selinux.get_default_context_with_level
4dca0c4
+get_default_context_with_role = _selinux.get_default_context_with_role
4dca0c4
+get_default_context_with_rolelevel = _selinux.get_default_context_with_rolelevel
4dca0c4
+query_user_context = _selinux.query_user_context
4dca0c4
+manual_user_enter_context = _selinux.manual_user_enter_context
4dca0c4
 is_selinux_enabled = _selinux.is_selinux_enabled
4dca0c4
 is_selinux_mls_enabled = _selinux.is_selinux_mls_enabled
4dca0c4
+freecon = _selinux.freecon
4dca0c4
+freeconary = _selinux.freeconary
4dca0c4
 getcon = _selinux.getcon
4dca0c4
 setcon = _selinux.setcon
4dca0c4
 getpidcon = _selinux.getpidcon
4dca0c4
@@ -88,6 +99,8 @@
4dca0c4
 set_matchpathcon_flags = _selinux.set_matchpathcon_flags
4dca0c4
 matchpathcon_init = _selinux.matchpathcon_init
4dca0c4
 matchpathcon = _selinux.matchpathcon
4dca0c4
+matchpathcon_init_prefix = _selinux.matchpathcon_init_prefix
4dca0c4
+matchpathcon_fini = _selinux.matchpathcon_fini
4dca0c4
 matchmediacon = _selinux.matchmediacon
4dca0c4
 selinux_getenforcemode = _selinux.selinux_getenforcemode
4dca0c4
 selinux_policy_root = _selinux.selinux_policy_root
4dca0c4
@@ -102,6 +115,7 @@
4dca0c4
 selinux_homedir_context_path = _selinux.selinux_homedir_context_path
4dca0c4
 selinux_media_context_path = _selinux.selinux_media_context_path
4dca0c4
 selinux_contexts_path = _selinux.selinux_contexts_path
4dca0c4
+selinux_securetty_types_path = _selinux.selinux_securetty_types_path
4dca0c4
 selinux_booleans_path = _selinux.selinux_booleans_path
4dca0c4
 selinux_customizable_types_path = _selinux.selinux_customizable_types_path
4dca0c4
 selinux_users_path = _selinux.selinux_users_path
4dca0c4
@@ -109,13 +123,16 @@
4dca0c4
 selinux_translations_path = _selinux.selinux_translations_path
4dca0c4
 selinux_netfilter_context_path = _selinux.selinux_netfilter_context_path
4dca0c4
 selinux_path = _selinux.selinux_path
4dca0c4
-selinux_check_passwd_access = _selinux.selinux_check_passwd_access
4dca0c4
-checkPasswdAccess = _selinux.checkPasswdAccess
4dca0c4
+selinux_check_securetty_context = _selinux.selinux_check_securetty_context
4dca0c4
+set_selinuxmnt = _selinux.set_selinuxmnt
4dca0c4
 rpm_execcon = _selinux.rpm_execcon
4dca0c4
 is_context_customizable = _selinux.is_context_customizable
4dca0c4
 selinux_trans_to_raw_context = _selinux.selinux_trans_to_raw_context
4dca0c4
 selinux_raw_to_trans_context = _selinux.selinux_raw_to_trans_context
4dca0c4
 selinux_getpolicytype = _selinux.selinux_getpolicytype
4dca0c4
 getseuserbyname = _selinux.getseuserbyname
4dca0c4
+selinux_file_context_cmp = _selinux.selinux_file_context_cmp
4dca0c4
+selinux_file_context_verify = _selinux.selinux_file_context_verify
4dca0c4
+selinux_lsetfilecon_default = _selinux.selinux_lsetfilecon_default
4dca0c4
 
4dca0c4
 
4dca0c4
diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig.i libselinux-2.0.13/src/selinuxswig.i
a11359c
--- nsalibselinux/src/selinuxswig.i	2007-04-12 16:02:48.000000000 -0400
4dca0c4
+++ libselinux-2.0.13/src/selinuxswig.i	2007-04-23 10:26:21.000000000 -0400
4dca0c4
@@ -21,6 +21,7 @@
4dca0c4
 %module selinux
4dca0c4
 %{
4dca0c4
 	#include "selinux/selinux.h"
4dca0c4
+	#include "selinux/get_context_list.h"
4dca0c4
 %}
4dca0c4
 %apply int *OUTPUT { int * };
4dca0c4
 %apply int *OUTPUT { size_t * };
4dca0c4
@@ -42,8 +43,12 @@
4dca0c4
 
4dca0c4
 %typedef unsigned mode_t;
6265db0
 
4dca0c4
+%include "../include/selinux/get_context_list.h"
4dca0c4
+
6265db0
 extern int is_selinux_enabled(void);
6265db0
 extern int is_selinux_mls_enabled(void);
6265db0
+extern void freecon(security_context_t con);
6265db0
+extern void freeconary(security_context_t * con);
6265db0
 extern int getcon(security_context_t *con);
6265db0
 extern int setcon(security_context_t con);
6265db0
 extern int getpidcon(int pid, security_context_t *con);
4dca0c4
@@ -90,6 +95,11 @@
6265db0
 			mode_t mode,
6265db0
 			security_context_t *con);
6265db0
 
6265db0
+extern int matchpathcon_init_prefix(const char *path,
6265db0
+				    const char *prefix);
6265db0
+extern void matchpathcon_fini(void);
6265db0
+
6265db0
+
6265db0
 extern int matchmediacon(const char *media,
6265db0
 		 security_context_t *con);
6265db0
 
4dca0c4
@@ -106,6 +116,7 @@
6265db0
 extern const char *selinux_homedir_context_path(void);
6265db0
 extern const char *selinux_media_context_path(void);
6265db0
 extern const char *selinux_contexts_path(void);
6265db0
+extern const char *selinux_securetty_types_path(void);
6265db0
 extern const char *selinux_booleans_path(void);
6265db0
 extern const char *selinux_customizable_types_path(void);
6265db0
 extern const char *selinux_users_path(void);
4dca0c4
@@ -113,11 +124,15 @@
6265db0
 extern const char *selinux_translations_path(void);
6265db0
 extern const char *selinux_netfilter_context_path(void);
ff4b4da
 extern const char *selinux_path(void);
6265db0
-extern int selinux_check_passwd_access(access_vector_t requested);
6265db0
-extern int checkPasswdAccess(access_vector_t requested);
6265db0
+#extern int selinux_check_passwd_access(access_vector_t requested);
6265db0
+#extern int checkPasswdAccess(access_vector_t requested);
4dca0c4
 
6265db0
+extern int selinux_check_securetty_context(security_context_t tty_context);
6265db0
+void set_selinuxmnt(char *mnt);
4dca0c4
+
4dca0c4
+#ifdef SWIGpython
a11359c
 // This tells SWIG to treat char ** as a special case
4dca0c4
-%typemap(python,in) char ** {
4dca0c4
+%typemap(in) char ** {
4dca0c4
   /* Check if is a list */
4dca0c4
   if (PyList_Check($input)) {
4dca0c4
     int size = PyList_Size($input);
4dca0c4
@@ -143,6 +158,7 @@
4dca0c4
     return NULL;
4dca0c4
   }
4dca0c4
 }
4dca0c4
+#endif
4dca0c4
 
4dca0c4
 extern int rpm_execcon(unsigned int verified, 
4dca0c4
 		       const char *filename, 
4dca0c4
@@ -164,3 +180,7 @@
6265db0
 }
6265db0
 extern int selinux_getpolicytype(char **enforce);
6265db0
 extern int getseuserbyname(const char *linuxuser, char **seuser, char **level);
6265db0
+
6265db0
+int selinux_file_context_cmp(const security_context_t a, const security_context_t b);
6265db0
+int selinux_file_context_verify(const char *path, mode_t mode);
6265db0
+int selinux_lsetfilecon_default(const char *path);
4dca0c4
diff --exclude-from=exclude -N -u -r nsalibselinux/src/selinuxswig_wrap.c libselinux-2.0.13/src/selinuxswig_wrap.c
4dca0c4
--- nsalibselinux/src/selinuxswig_wrap.c	2007-04-12 16:02:48.000000000 -0400
4dca0c4
+++ libselinux-2.0.13/src/selinuxswig_wrap.c	2007-04-23 10:26:41.000000000 -0400
4dca0c4
@@ -2449,11 +2449,11 @@
4dca0c4
 /* -------- TYPES TABLE (BEGIN) -------- */
4dca0c4
 
4dca0c4
 #define SWIGTYPE_p_SELboolean swig_types[0]
4dca0c4
-#define SWIGTYPE_p_access_vector_t swig_types[1]
4dca0c4
-#define SWIGTYPE_p_char swig_types[2]
4dca0c4
-#define SWIGTYPE_p_int swig_types[3]
4dca0c4
-#define SWIGTYPE_p_p_char swig_types[4]
4dca0c4
-#define SWIGTYPE_p_p_p_char swig_types[5]
4dca0c4
+#define SWIGTYPE_p_char swig_types[1]
4dca0c4
+#define SWIGTYPE_p_int swig_types[2]
4dca0c4
+#define SWIGTYPE_p_p_char swig_types[3]
4dca0c4
+#define SWIGTYPE_p_p_p_char swig_types[4]
4dca0c4
+#define SWIGTYPE_p_p_security_context_t swig_types[5]
4dca0c4
 #define SWIGTYPE_p_security_context_t swig_types[6]
4dca0c4
 #define SWIGTYPE_p_unsigned_int swig_types[7]
4dca0c4
 static swig_type_info *swig_types[9];
4dca0c4
@@ -2485,6 +2485,99 @@
4dca0c4
 
4dca0c4
 
4dca0c4
 	#include "selinux/selinux.h"
4dca0c4
+	#include "selinux/get_context_list.h"
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN swig_type_info*
4dca0c4
+SWIG_pchar_descriptor(void)
4dca0c4
+{
4dca0c4
+  static int init = 0;
4dca0c4
+  static swig_type_info* info = 0;
4dca0c4
+  if (!init) {
4dca0c4
+    info = SWIG_TypeQuery("_p_char");
4dca0c4
+    init = 1;
4dca0c4
+  }
4dca0c4
+  return info;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERNINLINE PyObject *
4dca0c4
+SWIG_FromCharPtrAndSize(const char* carray, size_t size)
4dca0c4
+{
4dca0c4
+  if (carray) {
4dca0c4
+    if (size > INT_MAX) {
4dca0c4
+      swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
4dca0c4
+      return pchar_descriptor ? 
4dca0c4
+	SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
4dca0c4
+    } else {
4dca0c4
+      return PyString_FromStringAndSize(carray, (int)(size));
4dca0c4
+    }
4dca0c4
+  } else {
4dca0c4
+    return SWIG_Py_Void();
4dca0c4
+  }
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERNINLINE PyObject * 
4dca0c4
+SWIG_FromCharPtr(const char *cptr)
4dca0c4
+{ 
4dca0c4
+  return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN int
4dca0c4
+SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
4dca0c4
+{
4dca0c4
+  if (PyString_Check(obj)) {
4dca0c4
+    char *cstr; Py_ssize_t len;
4dca0c4
+    PyString_AsStringAndSize(obj, &cstr, &len;;
4dca0c4
+    if (cptr)  {
4dca0c4
+      if (alloc) {
4dca0c4
+	/* 
4dca0c4
+	   In python the user should not be able to modify the inner
4dca0c4
+	   string representation. To warranty that, if you define
4dca0c4
+	   SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
4dca0c4
+	   buffer is always returned.
4dca0c4
+
4dca0c4
+	   The default behavior is just to return the pointer value,
4dca0c4
+	   so, be careful.
4dca0c4
+	*/ 
4dca0c4
+#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
4dca0c4
+	if (*alloc != SWIG_OLDOBJ) 
4dca0c4
+#else
4dca0c4
+	if (*alloc == SWIG_NEWOBJ) 
4dca0c4
+#endif
4dca0c4
+	  {
4dca0c4
+	    *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
4dca0c4
+	    *alloc = SWIG_NEWOBJ;
4dca0c4
+	  }
4dca0c4
+	else {
4dca0c4
+	  *cptr = cstr;
4dca0c4
+	  *alloc = SWIG_OLDOBJ;
4dca0c4
+	}
4dca0c4
+      } else {
4dca0c4
+	*cptr = PyString_AsString(obj);
4dca0c4
+      }
4dca0c4
+    }
4dca0c4
+    if (psize) *psize = len + 1;
4dca0c4
+    return SWIG_OK;
4dca0c4
+  } else {
4dca0c4
+    swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
4dca0c4
+    if (pchar_descriptor) {
4dca0c4
+      void* vptr = 0;
4dca0c4
+      if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
4dca0c4
+	if (cptr) *cptr = (char *) vptr;
4dca0c4
+	if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
4dca0c4
+	if (alloc) *alloc = SWIG_OLDOBJ;
4dca0c4
+	return SWIG_OK;
4dca0c4
+      }
4dca0c4
+    }
4dca0c4
+  }
4dca0c4
+  return SWIG_TypeError;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+
4dca0c4
 
4dca0c4
 
4dca0c4
   #define SWIG_From_long   PyInt_FromLong 
4dca0c4
@@ -2644,74 +2737,6 @@
4dca0c4
 }
4dca0c4
 
4dca0c4
 
4dca0c4
-SWIGINTERN swig_type_info*
4dca0c4
-SWIG_pchar_descriptor(void)
4dca0c4
-{
4dca0c4
-  static int init = 0;
4dca0c4
-  static swig_type_info* info = 0;
4dca0c4
-  if (!init) {
4dca0c4
-    info = SWIG_TypeQuery("_p_char");
4dca0c4
-    init = 1;
4dca0c4
-  }
4dca0c4
-  return info;
4dca0c4
-}
4dca0c4
-
4dca0c4
-
4dca0c4
-SWIGINTERN int
4dca0c4
-SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
4dca0c4
-{
4dca0c4
-  if (PyString_Check(obj)) {
4dca0c4
-    char *cstr; Py_ssize_t len;
4dca0c4
-    PyString_AsStringAndSize(obj, &cstr, &len;;
4dca0c4
-    if (cptr)  {
4dca0c4
-      if (alloc) {
4dca0c4
-	/* 
4dca0c4
-	   In python the user should not be able to modify the inner
4dca0c4
-	   string representation. To warranty that, if you define
4dca0c4
-	   SWIG_PYTHON_SAFE_CSTRINGS, a new/copy of the python string
4dca0c4
-	   buffer is always returned.
4dca0c4
-
4dca0c4
-	   The default behavior is just to return the pointer value,
4dca0c4
-	   so, be careful.
4dca0c4
-	*/ 
4dca0c4
-#if defined(SWIG_PYTHON_SAFE_CSTRINGS)
4dca0c4
-	if (*alloc != SWIG_OLDOBJ) 
4dca0c4
-#else
4dca0c4
-	if (*alloc == SWIG_NEWOBJ) 
4dca0c4
-#endif
4dca0c4
-	  {
4dca0c4
-	    *cptr = (char *)memcpy((char *)malloc((len + 1)*sizeof(char)), cstr, sizeof(char)*(len + 1));
4dca0c4
-	    *alloc = SWIG_NEWOBJ;
4dca0c4
-	  }
4dca0c4
-	else {
4dca0c4
-	  *cptr = cstr;
4dca0c4
-	  *alloc = SWIG_OLDOBJ;
4dca0c4
-	}
4dca0c4
-      } else {
4dca0c4
-	*cptr = PyString_AsString(obj);
4dca0c4
-      }
4dca0c4
-    }
4dca0c4
-    if (psize) *psize = len + 1;
4dca0c4
-    return SWIG_OK;
4dca0c4
-  } else {
4dca0c4
-    swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
4dca0c4
-    if (pchar_descriptor) {
4dca0c4
-      void* vptr = 0;
4dca0c4
-      if (SWIG_ConvertPtr(obj, &vptr, pchar_descriptor, 0) == SWIG_OK) {
4dca0c4
-	if (cptr) *cptr = (char *) vptr;
4dca0c4
-	if (psize) *psize = vptr ? (strlen((char *)vptr) + 1) : 0;
4dca0c4
-	if (alloc) *alloc = SWIG_OLDOBJ;
4dca0c4
-	return SWIG_OK;
4dca0c4
-      }
4dca0c4
-    }
4dca0c4
-  }
4dca0c4
-  return SWIG_TypeError;
4dca0c4
-}
4dca0c4
-
4dca0c4
-
4dca0c4
-
4dca0c4
-
4dca0c4
-
4dca0c4
 SWIGINTERN int
4dca0c4
 SWIG_AsVal_unsigned_SS_long (PyObject *obj, unsigned long *val) 
4dca0c4
 {
4dca0c4
@@ -2781,33 +2806,396 @@
4dca0c4
   return res;
4dca0c4
 }
4dca0c4
 
4dca0c4
+#ifdef __cplusplus
4dca0c4
+extern "C" {
4dca0c4
+#endif
4dca0c4
+SWIGINTERN PyObject *_wrap_get_ordered_context_list(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  security_context_t arg2 ;
4dca0c4
+  security_context_t **arg3 = (security_context_t **) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  void *argp3 = 0 ;
4dca0c4
+  int res3 = 0 ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  PyObject * obj2 = 0 ;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OOO:get_ordered_context_list",&obj0,&obj1,&obj2)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_ordered_context_list" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  {
4dca0c4
+    arg2 = (security_context_t)PyString_AsString(obj1);
4dca0c4
+  }
4dca0c4
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_security_context_t, 0 |  0 );
4dca0c4
+  if (!SWIG_IsOK(res3)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "get_ordered_context_list" "', argument " "3"" of type '" "security_context_t **""'"); 
4dca0c4
+  }
4dca0c4
+  arg3 = (security_context_t **)(argp3);
4dca0c4
+  result = (int)get_ordered_context_list((char const *)arg1,arg2,arg3);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_get_ordered_context_list_with_level(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  char *arg2 = (char *) 0 ;
4dca0c4
+  security_context_t arg3 ;
4dca0c4
+  security_context_t **arg4 = (security_context_t **) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  int res2 ;
4dca0c4
+  char *buf2 = 0 ;
4dca0c4
+  int alloc2 = 0 ;
4dca0c4
+  void *argp4 = 0 ;
4dca0c4
+  int res4 = 0 ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  PyObject * obj2 = 0 ;
4dca0c4
+  PyObject * obj3 = 0 ;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:get_ordered_context_list_with_level",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_ordered_context_list_with_level" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4dca0c4
+  if (!SWIG_IsOK(res2)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_ordered_context_list_with_level" "', argument " "2"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg2 = (char *)(buf2);
4dca0c4
+  {
4dca0c4
+    arg3 = (security_context_t)PyString_AsString(obj2);
4dca0c4
+  }
4dca0c4
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_p_security_context_t, 0 |  0 );
4dca0c4
+  if (!SWIG_IsOK(res4)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "get_ordered_context_list_with_level" "', argument " "4"" of type '" "security_context_t **""'"); 
4dca0c4
+  }
4dca0c4
+  arg4 = (security_context_t **)(argp4);
4dca0c4
+  result = (int)get_ordered_context_list_with_level((char const *)arg1,(char const *)arg2,arg3,arg4);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_get_default_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  security_context_t arg2 ;
4dca0c4
+  security_context_t *arg3 = (security_context_t *) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  security_context_t temp3 = NULL ;
4dca0c4
+  char *temp30 = NULL ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  
4dca0c4
+  {
4dca0c4
+    arg3 = &temp3;
4dca0c4
+  }
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OO:get_default_context",&obj0,&obj1)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  {
4dca0c4
+    arg2 = (security_context_t)PyString_AsString(obj1);
4dca0c4
+  }
4dca0c4
+  result = (int)get_default_context((char const *)arg1,arg2,arg3);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  {
4dca0c4
+    if (*arg3)
4dca0c4
+    temp30 = *arg3;
4dca0c4
+    else
4dca0c4
+    temp30 = "";
4dca0c4
+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp30));
4dca0c4
+  }
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_get_default_context_with_level(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  char *arg2 = (char *) 0 ;
4dca0c4
+  security_context_t arg3 ;
4dca0c4
+  security_context_t *arg4 = (security_context_t *) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  int res2 ;
4dca0c4
+  char *buf2 = 0 ;
4dca0c4
+  int alloc2 = 0 ;
4dca0c4
+  security_context_t temp4 = NULL ;
4dca0c4
+  char *temp40 = NULL ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  PyObject * obj2 = 0 ;
4dca0c4
+  
4dca0c4
+  {
4dca0c4
+    arg4 = &temp4;
4dca0c4
+  }
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OOO:get_default_context_with_level",&obj0,&obj1,&obj2)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_level" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4dca0c4
+  if (!SWIG_IsOK(res2)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_level" "', argument " "2"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg2 = (char *)(buf2);
4dca0c4
+  {
4dca0c4
+    arg3 = (security_context_t)PyString_AsString(obj2);
4dca0c4
+  }
4dca0c4
+  result = (int)get_default_context_with_level((char const *)arg1,(char const *)arg2,arg3,arg4);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  {
4dca0c4
+    if (*arg4)
4dca0c4
+    temp40 = *arg4;
4dca0c4
+    else
4dca0c4
+    temp40 = "";
4dca0c4
+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp40));
4dca0c4
+  }
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_get_default_context_with_role(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  char *arg2 = (char *) 0 ;
4dca0c4
+  security_context_t arg3 ;
4dca0c4
+  security_context_t *arg4 = (security_context_t *) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  int res2 ;
4dca0c4
+  char *buf2 = 0 ;
4dca0c4
+  int alloc2 = 0 ;
4dca0c4
+  security_context_t temp4 = NULL ;
4dca0c4
+  char *temp40 = NULL ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  PyObject * obj2 = 0 ;
4dca0c4
+  
4dca0c4
+  {
4dca0c4
+    arg4 = &temp4;
4dca0c4
+  }
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OOO:get_default_context_with_role",&obj0,&obj1,&obj2)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_role" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4dca0c4
+  if (!SWIG_IsOK(res2)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_role" "', argument " "2"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg2 = (char *)(buf2);
4dca0c4
+  {
4dca0c4
+    arg3 = (security_context_t)PyString_AsString(obj2);
4dca0c4
+  }
4dca0c4
+  result = (int)get_default_context_with_role((char const *)arg1,(char const *)arg2,arg3,arg4);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  {
4dca0c4
+    if (*arg4)
4dca0c4
+    temp40 = *arg4;
4dca0c4
+    else
4dca0c4
+    temp40 = "";
4dca0c4
+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp40));
4dca0c4
+  }
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_get_default_context_with_rolelevel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  char *arg2 = (char *) 0 ;
4dca0c4
+  char *arg3 = (char *) 0 ;
4dca0c4
+  security_context_t arg4 ;
4dca0c4
+  security_context_t *arg5 = (security_context_t *) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  int res2 ;
4dca0c4
+  char *buf2 = 0 ;
4dca0c4
+  int alloc2 = 0 ;
4dca0c4
+  int res3 ;
4dca0c4
+  char *buf3 = 0 ;
4dca0c4
+  int alloc3 = 0 ;
4dca0c4
+  security_context_t temp5 = NULL ;
4dca0c4
+  char *temp50 = NULL ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  PyObject * obj2 = 0 ;
4dca0c4
+  PyObject * obj3 = 0 ;
4dca0c4
+  
4dca0c4
+  {
4dca0c4
+    arg5 = &temp5;
4dca0c4
+  }
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OOOO:get_default_context_with_rolelevel",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "get_default_context_with_rolelevel" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4dca0c4
+  if (!SWIG_IsOK(res2)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "get_default_context_with_rolelevel" "', argument " "2"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg2 = (char *)(buf2);
4dca0c4
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
4dca0c4
+  if (!SWIG_IsOK(res3)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "get_default_context_with_rolelevel" "', argument " "3"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg3 = (char *)(buf3);
4dca0c4
+  {
4dca0c4
+    arg4 = (security_context_t)PyString_AsString(obj3);
4dca0c4
+  }
4dca0c4
+  result = (int)get_default_context_with_rolelevel((char const *)arg1,(char const *)arg2,(char const *)arg3,arg4,arg5);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  {
4dca0c4
+    if (*arg5)
4dca0c4
+    temp50 = *arg5;
4dca0c4
+    else
4dca0c4
+    temp50 = "";
4dca0c4
+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp50));
4dca0c4
+  }
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_query_user_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  security_context_t *arg1 = (security_context_t *) 0 ;
4dca0c4
+  security_context_t *arg2 = (security_context_t *) 0 ;
4dca0c4
+  int result;
4dca0c4
+  security_context_t temp1 = NULL ;
4dca0c4
+  security_context_t temp2 = NULL ;
4dca0c4
+  char *temp10 = NULL ;
4dca0c4
+  char *temp20 = NULL ;
4dca0c4
+  
4dca0c4
+  {
4dca0c4
+    arg1 = &temp1;
4dca0c4
+  }
4dca0c4
+  {
4dca0c4
+    arg2 = &temp2;
4dca0c4
+  }
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)":query_user_context")) SWIG_fail;
4dca0c4
+  result = (int)query_user_context(arg1,arg2);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  {
4dca0c4
+    if (*arg1)
4dca0c4
+    temp10 = *arg1;
4dca0c4
+    else
4dca0c4
+    temp10 = "";
4dca0c4
+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp10));
4dca0c4
+  }
4dca0c4
+  {
4dca0c4
+    if (*arg2)
4dca0c4
+    temp20 = *arg2;
4dca0c4
+    else
4dca0c4
+    temp20 = "";
4dca0c4
+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp20));
4dca0c4
+  }
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
 
4dca0c4
-SWIGINTERNINLINE PyObject *
4dca0c4
-SWIG_FromCharPtrAndSize(const char* carray, size_t size)
4dca0c4
-{
4dca0c4
-  if (carray) {
4dca0c4
-    if (size > INT_MAX) {
4dca0c4
-      swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
4dca0c4
-      return pchar_descriptor ? 
4dca0c4
-	SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
4dca0c4
-    } else {
4dca0c4
-      return PyString_FromStringAndSize(carray, (int)(size));
4dca0c4
-    }
4dca0c4
-  } else {
4dca0c4
-    return SWIG_Py_Void();
4dca0c4
+SWIGINTERN PyObject *_wrap_manual_user_enter_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  security_context_t *arg2 = (security_context_t *) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  security_context_t temp2 = NULL ;
4dca0c4
+  char *temp20 = NULL ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  
4dca0c4
+  {
4dca0c4
+    arg2 = &temp2;
4dca0c4
+  }
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"O:manual_user_enter_context",&obj0)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "manual_user_enter_context" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  result = (int)manual_user_enter_context((char const *)arg1,arg2);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  {
4dca0c4
+    if (*arg2)
4dca0c4
+    temp20 = *arg2;
4dca0c4
+    else
4dca0c4
+    temp20 = "";
4dca0c4
+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp20));
4dca0c4
   }
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return NULL;
4dca0c4
 }
4dca0c4
 
4dca0c4
 
4dca0c4
-SWIGINTERNINLINE PyObject * 
4dca0c4
-SWIG_FromCharPtr(const char *cptr)
4dca0c4
-{ 
4dca0c4
-  return SWIG_FromCharPtrAndSize(cptr, (cptr ? strlen(cptr) : 0));
4dca0c4
-}
4dca0c4
-
4dca0c4
-#ifdef __cplusplus
4dca0c4
-extern "C" {
4dca0c4
-#endif
4dca0c4
 SWIGINTERN PyObject *_wrap_is_selinux_enabled(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
   PyObject *resultobj = 0;
4dca0c4
   int result;
4dca0c4
@@ -2834,6 +3222,48 @@
4dca0c4
 }
4dca0c4
 
4dca0c4
 
4dca0c4
+SWIGINTERN PyObject *_wrap_freecon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  security_context_t arg1 ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"O:freecon",&obj0)) SWIG_fail;
4dca0c4
+  {
4dca0c4
+    arg1 = (security_context_t)PyString_AsString(obj0);
4dca0c4
+  }
4dca0c4
+  freecon(arg1);
4dca0c4
+  resultobj = SWIG_Py_Void();
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_freeconary(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  security_context_t *arg1 = (security_context_t *) 0 ;
4dca0c4
+  security_context_t temp1 = NULL ;
4dca0c4
+  char *temp10 = NULL ;
4dca0c4
+  
4dca0c4
+  {
4dca0c4
+    arg1 = &temp1;
4dca0c4
+  }
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)":freeconary")) SWIG_fail;
4dca0c4
+  freeconary(arg1);
4dca0c4
+  resultobj = SWIG_Py_Void();
4dca0c4
+  {
4dca0c4
+    if (*arg1)
4dca0c4
+    temp10 = *arg1;
4dca0c4
+    else
4dca0c4
+    temp10 = "";
4dca0c4
+    resultobj = SWIG_Python_AppendOutput(resultobj, PyString_FromString(temp10));
4dca0c4
+  }
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
 SWIGINTERN PyObject *_wrap_getcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
   PyObject *resultobj = 0;
4dca0c4
   security_context_t *arg1 = (security_context_t *) 0 ;
4dca0c4
@@ -3777,6 +4207,55 @@
4dca0c4
 }
4dca0c4
 
4dca0c4
 
4dca0c4
+SWIGINTERN PyObject *_wrap_matchpathcon_init_prefix(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  char *arg2 = (char *) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  int res2 ;
4dca0c4
+  char *buf2 = 0 ;
4dca0c4
+  int alloc2 = 0 ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OO:matchpathcon_init_prefix",&obj0,&obj1)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "matchpathcon_init_prefix" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
4dca0c4
+  if (!SWIG_IsOK(res2)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "matchpathcon_init_prefix" "', argument " "2"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg2 = (char *)(buf2);
4dca0c4
+  result = (int)matchpathcon_init_prefix((char const *)arg1,(char const *)arg2);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_matchpathcon_fini(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)":matchpathcon_fini")) SWIG_fail;
4dca0c4
+  matchpathcon_fini();
4dca0c4
+  resultobj = SWIG_Py_Void();
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
 SWIGINTERN PyObject *_wrap_matchmediacon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
   PyObject *resultobj = 0;
4dca0c4
   char *arg1 = (char *) 0 ;
4dca0c4
@@ -3994,6 +4473,19 @@
4dca0c4
 }
4dca0c4
 
4dca0c4
 
4dca0c4
+SWIGINTERN PyObject *_wrap_selinux_securetty_types_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *result = 0 ;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)":selinux_securetty_types_path")) SWIG_fail;
4dca0c4
+  result = (char *)selinux_securetty_types_path();
4dca0c4
+  resultobj = SWIG_FromCharPtr((const char *)result);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
 SWIGINTERN PyObject *_wrap_selinux_booleans_path(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
   PyObject *resultobj = 0;
4dca0c4
   char *result = 0 ;
4dca0c4
@@ -4085,27 +4577,17 @@
4dca0c4
 }
4dca0c4
 
4dca0c4
 
4dca0c4
-SWIGINTERN PyObject *_wrap_selinux_check_passwd_access(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+SWIGINTERN PyObject *_wrap_selinux_check_securetty_context(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
   PyObject *resultobj = 0;
4dca0c4
-  access_vector_t arg1 ;
4dca0c4
+  security_context_t arg1 ;
4dca0c4
   int result;
4dca0c4
-  void *argp1 ;
4dca0c4
-  int res1 = 0 ;
4dca0c4
   PyObject * obj0 = 0 ;
4dca0c4
   
4dca0c4
-  if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_passwd_access",&obj0)) SWIG_fail;
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"O:selinux_check_securetty_context",&obj0)) SWIG_fail;
4dca0c4
   {
4dca0c4
-    res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_access_vector_t,  0 );
4dca0c4
-    if (!SWIG_IsOK(res1)) {
4dca0c4
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_check_passwd_access" "', argument " "1"" of type '" "access_vector_t""'"); 
4dca0c4
-    }  
4dca0c4
-    if (!argp1) {
4dca0c4
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "selinux_check_passwd_access" "', argument " "1"" of type '" "access_vector_t""'");
4dca0c4
-    } else {
4dca0c4
-      arg1 = *((access_vector_t *)(argp1));
4dca0c4
-    }
4dca0c4
+    arg1 = (security_context_t)PyString_AsString(obj0);
4dca0c4
   }
4dca0c4
-  result = (int)selinux_check_passwd_access(arg1);
4dca0c4
+  result = (int)selinux_check_securetty_context(arg1);
4dca0c4
   resultobj = SWIG_From_int((int)(result));
4dca0c4
   return resultobj;
4dca0c4
 fail:
4dca0c4
@@ -4113,30 +4595,26 @@
4dca0c4
 }
4dca0c4
 
4dca0c4
 
4dca0c4
-SWIGINTERN PyObject *_wrap_checkPasswdAccess(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+SWIGINTERN PyObject *_wrap_set_selinuxmnt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
   PyObject *resultobj = 0;
4dca0c4
-  access_vector_t arg1 ;
4dca0c4
-  int result;
4dca0c4
-  void *argp1 ;
4dca0c4
-  int res1 = 0 ;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
   PyObject * obj0 = 0 ;
4dca0c4
   
4dca0c4
-  if (!PyArg_ParseTuple(args,(char *)"O:checkPasswdAccess",&obj0)) SWIG_fail;
4dca0c4
-  {
4dca0c4
-    res1 = SWIG_ConvertPtr(obj0, &argp1, SWIGTYPE_p_access_vector_t,  0 );
4dca0c4
-    if (!SWIG_IsOK(res1)) {
4dca0c4
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "checkPasswdAccess" "', argument " "1"" of type '" "access_vector_t""'"); 
4dca0c4
-    }  
4dca0c4
-    if (!argp1) {
4dca0c4
-      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "checkPasswdAccess" "', argument " "1"" of type '" "access_vector_t""'");
4dca0c4
-    } else {
4dca0c4
-      arg1 = *((access_vector_t *)(argp1));
4dca0c4
-    }
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"O:set_selinuxmnt",&obj0)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "set_selinuxmnt" "', argument " "1"" of type '" "char *""'");
4dca0c4
   }
4dca0c4
-  result = (int)checkPasswdAccess(arg1);
4dca0c4
-  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  set_selinuxmnt(arg1);
4dca0c4
+  resultobj = SWIG_Py_Void();
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
   return resultobj;
4dca0c4
 fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
   return NULL;
4dca0c4
 }
4dca0c4
 
4dca0c4
@@ -4153,6 +4631,10 @@
4dca0c4
   int res2 ;
4dca0c4
   char *buf2 = 0 ;
4dca0c4
   int alloc2 = 0 ;
4dca0c4
+  void *argp3 = 0 ;
4dca0c4
+  int res3 = 0 ;
4dca0c4
+  void *argp4 = 0 ;
4dca0c4
+  int res4 = 0 ;
4dca0c4
   PyObject * obj0 = 0 ;
4dca0c4
   PyObject * obj1 = 0 ;
4dca0c4
   PyObject * obj2 = 0 ;
4dca0c4
@@ -4169,58 +4651,16 @@
4dca0c4
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "rpm_execcon" "', argument " "2"" of type '" "char const *""'");
4dca0c4
   }
4dca0c4
   arg2 = (char *)(buf2);
4dca0c4
-  {
4dca0c4
-    /* Check if is a list */
4dca0c4
-    if (PyList_Check(obj2)) {
4dca0c4
-      int size = PyList_Size(obj2);
4dca0c4
-      int i = 0;
4dca0c4
-      arg3 = (char **) malloc((size+1)*sizeof(char *));
4dca0c4
-      if (arg3 == NULL) {
4dca0c4
-        PyErr_SetString(PyExc_MemoryError,"Out of memory");
4dca0c4
-        return NULL;
4dca0c4
-      }
4dca0c4
-      for (i = 0; i < size; i++) {
4dca0c4
-        PyObject *o = PyList_GetItem(obj2,i);
4dca0c4
-        if (PyString_Check(o))
4dca0c4
-        arg3[i] = PyString_AsString(PyList_GetItem(obj2,i));
4dca0c4
-        else {
4dca0c4
-          PyErr_SetString(PyExc_TypeError,"list must contain strings");
4dca0c4
-          free(arg3);
4dca0c4
-          return NULL;
4dca0c4
-        }
4dca0c4
-      }
4dca0c4
-      arg3[i] = 0;
4dca0c4
-    } else {
4dca0c4
-      PyErr_SetString(PyExc_TypeError,"not a list");
4dca0c4
-      return NULL;
4dca0c4
-    }
4dca0c4
-  }
4dca0c4
-  {
4dca0c4
-    /* Check if is a list */
4dca0c4
-    if (PyList_Check(obj3)) {
4dca0c4
-      int size = PyList_Size(obj3);
4dca0c4
-      int i = 0;
4dca0c4
-      arg4 = (char **) malloc((size+1)*sizeof(char *));
4dca0c4
-      if (arg4 == NULL) {
4dca0c4
-        PyErr_SetString(PyExc_MemoryError,"Out of memory");
4dca0c4
-        return NULL;
4dca0c4
-      }
4dca0c4
-      for (i = 0; i < size; i++) {
4dca0c4
-        PyObject *o = PyList_GetItem(obj3,i);
4dca0c4
-        if (PyString_Check(o))
4dca0c4
-        arg4[i] = PyString_AsString(PyList_GetItem(obj3,i));
4dca0c4
-        else {
4dca0c4
-          PyErr_SetString(PyExc_TypeError,"list must contain strings");
4dca0c4
-          free(arg4);
4dca0c4
-          return NULL;
4dca0c4
-        }
4dca0c4
-      }
4dca0c4
-      arg4[i] = 0;
4dca0c4
-    } else {
4dca0c4
-      PyErr_SetString(PyExc_TypeError,"not a list");
4dca0c4
-      return NULL;
4dca0c4
-    }
4dca0c4
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_p_char, 0 |  0 );
4dca0c4
+  if (!SWIG_IsOK(res3)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "rpm_execcon" "', argument " "3"" of type '" "char **""'"); 
4dca0c4
+  }
4dca0c4
+  arg3 = (char **)(argp3);
4dca0c4
+  res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_p_char, 0 |  0 );
4dca0c4
+  if (!SWIG_IsOK(res4)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "rpm_execcon" "', argument " "4"" of type '" "char **""'"); 
4dca0c4
   }
4dca0c4
+  arg4 = (char **)(argp4);
4dca0c4
   result = (int)rpm_execcon(arg1,(char const *)arg2,arg3,arg4);
4dca0c4
   resultobj = SWIG_From_int((int)(result));
4dca0c4
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
4dca0c4
@@ -4387,9 +4827,101 @@
4dca0c4
 }
4dca0c4
 
4dca0c4
 
4dca0c4
+SWIGINTERN PyObject *_wrap_selinux_file_context_cmp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  security_context_t arg1 ;
4dca0c4
+  security_context_t arg2 ;
4dca0c4
+  int result;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OO:selinux_file_context_cmp",&obj0,&obj1)) SWIG_fail;
4dca0c4
+  {
4dca0c4
+    arg1 = (security_context_t)PyString_AsString(obj0);
4dca0c4
+  }
4dca0c4
+  {
4dca0c4
+    arg2 = (security_context_t)PyString_AsString(obj1);
4dca0c4
+  }
4dca0c4
+  result = (int)selinux_file_context_cmp(arg1,arg2);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_selinux_file_context_verify(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  mode_t arg2 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  unsigned int val2 ;
4dca0c4
+  int ecode2 = 0 ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  PyObject * obj1 = 0 ;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"OO:selinux_file_context_verify",&obj0,&obj1)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_file_context_verify" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  ecode2 = SWIG_AsVal_unsigned_SS_int(obj1, &val2);
4dca0c4
+  if (!SWIG_IsOK(ecode2)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "selinux_file_context_verify" "', argument " "2"" of type '" "mode_t""'");
4dca0c4
+  } 
4dca0c4
+  arg2 = (mode_t)(val2);
4dca0c4
+  result = (int)selinux_file_context_verify((char const *)arg1,arg2);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
+SWIGINTERN PyObject *_wrap_selinux_lsetfilecon_default(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
4dca0c4
+  PyObject *resultobj = 0;
4dca0c4
+  char *arg1 = (char *) 0 ;
4dca0c4
+  int result;
4dca0c4
+  int res1 ;
4dca0c4
+  char *buf1 = 0 ;
4dca0c4
+  int alloc1 = 0 ;
4dca0c4
+  PyObject * obj0 = 0 ;
4dca0c4
+  
4dca0c4
+  if (!PyArg_ParseTuple(args,(char *)"O:selinux_lsetfilecon_default",&obj0)) SWIG_fail;
4dca0c4
+  res1 = SWIG_AsCharPtrAndSize(obj0, &buf1, NULL, &alloc1);
4dca0c4
+  if (!SWIG_IsOK(res1)) {
4dca0c4
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "selinux_lsetfilecon_default" "', argument " "1"" of type '" "char const *""'");
4dca0c4
+  }
4dca0c4
+  arg1 = (char *)(buf1);
4dca0c4
+  result = (int)selinux_lsetfilecon_default((char const *)arg1);
4dca0c4
+  resultobj = SWIG_From_int((int)(result));
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return resultobj;
4dca0c4
+fail:
4dca0c4
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
4dca0c4
+  return NULL;
4dca0c4
+}
4dca0c4
+
4dca0c4
+
4dca0c4
 static PyMethodDef SwigMethods[] = {
4dca0c4
+	 { (char *)"get_ordered_context_list", _wrap_get_ordered_context_list, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"get_ordered_context_list_with_level", _wrap_get_ordered_context_list_with_level, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"get_default_context", _wrap_get_default_context, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"get_default_context_with_level", _wrap_get_default_context_with_level, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"get_default_context_with_role", _wrap_get_default_context_with_role, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"get_default_context_with_rolelevel", _wrap_get_default_context_with_rolelevel, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"query_user_context", _wrap_query_user_context, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"manual_user_enter_context", _wrap_manual_user_enter_context, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"is_selinux_enabled", _wrap_is_selinux_enabled, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"is_selinux_mls_enabled", _wrap_is_selinux_mls_enabled, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"freecon", _wrap_freecon, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"freeconary", _wrap_freeconary, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"getcon", _wrap_getcon, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"setcon", _wrap_setcon, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"getpidcon", _wrap_getpidcon, METH_VARARGS, NULL},
4dca0c4
@@ -4426,6 +4958,8 @@
4dca0c4
 	 { (char *)"set_matchpathcon_flags", _wrap_set_matchpathcon_flags, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"matchpathcon_init", _wrap_matchpathcon_init, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"matchpathcon", _wrap_matchpathcon, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"matchpathcon_init_prefix", _wrap_matchpathcon_init_prefix, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"matchpathcon_fini", _wrap_matchpathcon_fini, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"matchmediacon", _wrap_matchmediacon, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_getenforcemode", _wrap_selinux_getenforcemode, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_policy_root", _wrap_selinux_policy_root, METH_VARARGS, NULL},
4dca0c4
@@ -4440,6 +4974,7 @@
4dca0c4
 	 { (char *)"selinux_homedir_context_path", _wrap_selinux_homedir_context_path, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_media_context_path", _wrap_selinux_media_context_path, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_contexts_path", _wrap_selinux_contexts_path, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"selinux_securetty_types_path", _wrap_selinux_securetty_types_path, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_booleans_path", _wrap_selinux_booleans_path, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_customizable_types_path", _wrap_selinux_customizable_types_path, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_users_path", _wrap_selinux_users_path, METH_VARARGS, NULL},
4dca0c4
@@ -4447,14 +4982,17 @@
4dca0c4
 	 { (char *)"selinux_translations_path", _wrap_selinux_translations_path, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_netfilter_context_path", _wrap_selinux_netfilter_context_path, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_path", _wrap_selinux_path, METH_VARARGS, NULL},
4dca0c4
-	 { (char *)"selinux_check_passwd_access", _wrap_selinux_check_passwd_access, METH_VARARGS, NULL},
4dca0c4
-	 { (char *)"checkPasswdAccess", _wrap_checkPasswdAccess, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"selinux_check_securetty_context", _wrap_selinux_check_securetty_context, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"set_selinuxmnt", _wrap_set_selinuxmnt, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"rpm_execcon", _wrap_rpm_execcon, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"is_context_customizable", _wrap_is_context_customizable, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_trans_to_raw_context", _wrap_selinux_trans_to_raw_context, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_raw_to_trans_context", _wrap_selinux_raw_to_trans_context, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"selinux_getpolicytype", _wrap_selinux_getpolicytype, METH_VARARGS, NULL},
4dca0c4
 	 { (char *)"getseuserbyname", _wrap_getseuserbyname, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"selinux_file_context_cmp", _wrap_selinux_file_context_cmp, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"selinux_file_context_verify", _wrap_selinux_file_context_verify, METH_VARARGS, NULL},
4dca0c4
+	 { (char *)"selinux_lsetfilecon_default", _wrap_selinux_lsetfilecon_default, METH_VARARGS, NULL},
4dca0c4
 	 { NULL, NULL, 0, NULL }
4dca0c4
 };
4dca0c4
 
4dca0c4
@@ -4462,41 +5000,41 @@
4dca0c4
 /* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */
4dca0c4
 
4dca0c4
 static swig_type_info _swigt__p_SELboolean = {"_p_SELboolean", "SELboolean *", 0, 0, (void*)0, 0};
4dca0c4
-static swig_type_info _swigt__p_access_vector_t = {"_p_access_vector_t", "access_vector_t *", 0, 0, (void*)0, 0};
4dca0c4
 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
4dca0c4
 static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
4dca0c4
 static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
4dca0c4
 static swig_type_info _swigt__p_p_p_char = {"_p_p_p_char", "char ***", 0, 0, (void*)0, 0};
4dca0c4
+static swig_type_info _swigt__p_p_security_context_t = {"_p_p_security_context_t", "security_context_t **", 0, 0, (void*)0, 0};
4dca0c4
 static swig_type_info _swigt__p_security_context_t = {"_p_security_context_t", "security_context_t *", 0, 0, (void*)0, 0};
4dca0c4
 static swig_type_info _swigt__p_unsigned_int = {"_p_unsigned_int", "unsigned int *|mode_t *", 0, 0, (void*)0, 0};
4dca0c4
 
4dca0c4
 static swig_type_info *swig_type_initial[] = {
4dca0c4
   &_swigt__p_SELboolean,
4dca0c4
-  &_swigt__p_access_vector_t,
4dca0c4
   &_swigt__p_char,
4dca0c4
   &_swigt__p_int,
4dca0c4
   &_swigt__p_p_char,
4dca0c4
   &_swigt__p_p_p_char,
4dca0c4
+  &_swigt__p_p_security_context_t,
4dca0c4
   &_swigt__p_security_context_t,
4dca0c4
   &_swigt__p_unsigned_int,
4dca0c4
 };
4dca0c4
 
4dca0c4
 static swig_cast_info _swigc__p_SELboolean[] = {  {&_swigt__p_SELboolean, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
-static swig_cast_info _swigc__p_access_vector_t[] = {  {&_swigt__p_access_vector_t, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
 static swig_cast_info _swigc__p_char[] = {  {&_swigt__p_char, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
 static swig_cast_info _swigc__p_int[] = {  {&_swigt__p_int, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
 static swig_cast_info _swigc__p_p_char[] = {  {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
 static swig_cast_info _swigc__p_p_p_char[] = {  {&_swigt__p_p_p_char, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
+static swig_cast_info _swigc__p_p_security_context_t[] = {  {&_swigt__p_p_security_context_t, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
 static swig_cast_info _swigc__p_security_context_t[] = {  {&_swigt__p_security_context_t, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
 static swig_cast_info _swigc__p_unsigned_int[] = {  {&_swigt__p_unsigned_int, 0, 0, 0},{0, 0, 0, 0}};
4dca0c4
 
4dca0c4
 static swig_cast_info *swig_cast_initial[] = {
4dca0c4
   _swigc__p_SELboolean,
4dca0c4
-  _swigc__p_access_vector_t,
4dca0c4
   _swigc__p_char,
4dca0c4
   _swigc__p_int,
4dca0c4
   _swigc__p_p_char,
4dca0c4
   _swigc__p_p_p_char,
4dca0c4
+  _swigc__p_p_security_context_t,
4dca0c4
   _swigc__p_security_context_t,
4dca0c4
   _swigc__p_unsigned_int,
4dca0c4
 };
4dca0c4
@@ -5019,6 +5557,7 @@
4dca0c4
   SWIG_InstallConstants(d,swig_const_table);
4dca0c4
   
4dca0c4
   
4dca0c4
+  SWIG_Python_SetConstant(d, "SELINUX_DEFAULTUSER",SWIG_FromCharPtr("user_u"));
4dca0c4
   SWIG_Python_SetConstant(d, "MATCHPATHCON_BASEONLY",SWIG_From_int((int)(1)));
4dca0c4
   SWIG_Python_SetConstant(d, "MATCHPATHCON_NOTRANS",SWIG_From_int((int)(2)));
4dca0c4
 }
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/Makefile libselinux-2.0.13/Makefile
3a940b3
--- nsalibselinux/Makefile	2007-06-01 10:44:08.000000000 -0400
3a940b3
+++ libselinux-2.0.13/Makefile	2007-06-26 05:11:37.000000000 -0400
3a940b3
@@ -20,6 +20,9 @@
3a940b3
 	$(MAKE) -C src 
3a940b3
 	$(MAKE) -C utils
3a940b3
 
3a940b3
+swigify: 
3a940b3
+	$(MAKE) -C src swigify
3a940b3
+
3a940b3
 pywrap: 
3a940b3
 	$(MAKE) -C src pywrap
3a940b3
 
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/avc_add_callback.3 libselinux-2.0.13/man/man3/avc_add_callback.3
02e2f5f
--- nsalibselinux/man/man3/avc_add_callback.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/avc_add_callback.3	2007-07-10 12:17:08.000000000 -0400
02e2f5f
@@ -6,26 +6,26 @@
02e2f5f
 avc_add_callback \- additional event notification for SELinux userspace object managers.
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/avc.h>
02e2f5f
 .sp
02e2f5f
 .BI "int avc_add_callback(int (*" callback ")(uint32_t " event , 
02e2f5f
 .in +\w'int avc_add_callback(int (*callback)('u
02e2f5f
 .BI "security_id_t " ssid ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "security_id_t " tsid ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "security_class_t " tclass ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "access_vector_t " perms ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "access_vector_t *" out_retained "),"
02e2f5f
 .in
02e2f5f
 .in +\w'int avc_add_callback('u
02e2f5f
 .BI "uint32_t " events ", security_id_t " ssid , 
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "security_id_t " tsid ", security_class_t " tclass ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "access_vector_t " perms ");"
02e2f5f
 .in
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/avc_cache_stats.3 libselinux-2.0.13/man/man3/avc_cache_stats.3
02e2f5f
--- nsalibselinux/man/man3/avc_cache_stats.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/avc_cache_stats.3	2007-07-10 12:17:08.000000000 -0400
02e2f5f
@@ -6,7 +6,7 @@
02e2f5f
 avc_cache_stats, avc_av_stats, avc_sid_stats \- obtain userspace SELinux AVC statistics.
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/avc.h>
02e2f5f
 .sp
02e2f5f
 .BI "void avc_av_stats(void);"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/avc_compute_create.3 libselinux-2.0.13/man/man3/avc_compute_create.3
02e2f5f
--- nsalibselinux/man/man3/avc_compute_create.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/avc_compute_create.3	2007-07-10 12:17:07.000000000 -0400
02e2f5f
@@ -6,7 +6,7 @@
02e2f5f
 avc_compute_create \- obtain SELinux label for new object.
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/avc.h>
02e2f5f
 .sp
02e2f5f
 .BI "int avc_compute_create(security_id_t " ssid ", security_id_t " tsid ,
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/avc_context_to_sid.3 libselinux-2.0.13/man/man3/avc_context_to_sid.3
02e2f5f
--- nsalibselinux/man/man3/avc_context_to_sid.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/avc_context_to_sid.3	2007-07-10 12:17:07.000000000 -0400
02e2f5f
@@ -6,7 +6,7 @@
02e2f5f
 avc_context_to_sid, avc_sid_to_context, sidput, sidget, avc_get_initial_sid \- obtain and manipulate SELinux security ID's.
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/avc.h>
02e2f5f
 .sp
02e2f5f
 .BI "int avc_context_to_sid(security_context_t " ctx ", security_id_t *" sid ");"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/avc_has_perm.3 libselinux-2.0.13/man/man3/avc_has_perm.3
02e2f5f
--- nsalibselinux/man/man3/avc_has_perm.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/avc_has_perm.3	2007-07-10 12:13:47.000000000 -0400
02e2f5f
@@ -6,7 +6,7 @@
02e2f5f
 avc_has_perm, avc_has_perm_noaudit, avc_audit, avc_entry_ref_init \- obtain and audit SELinux access decisions.
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/avc.h>
02e2f5f
 .sp
02e2f5f
 .BI "void avc_entry_ref_init(struct avc_entry_ref *" aeref ");"
02e2f5f
@@ -14,21 +14,21 @@
02e2f5f
 .BI "int avc_has_perm(security_id_t " ssid ", security_id_t " tsid ,
02e2f5f
 .in +\w'int avc_has_perm('u
02e2f5f
 .BI "security_class_t " tclass ", access_vector_t " requested ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "struct avc_entry_ref *" aeref ", void *" auditdata ");"
02e2f5f
 .in
02e2f5f
 .sp
02e2f5f
 .BI "int avc_has_perm_noaudit(security_id_t " ssid ", security_id_t " tsid ,
02e2f5f
 .in +\w'int avc_has_perm('u
02e2f5f
 .BI "security_class_t " tclass ", access_vector_t " requested ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "struct avc_entry_ref *" aeref ", struct av_decision *" avd ");"
02e2f5f
 .in
02e2f5f
 .sp
02e2f5f
 .BI "void avc_audit(security_id_t " ssid ", security_id_t " tsid ,
02e2f5f
 .in +\w'void avc_audit('u
02e2f5f
 .BI "security_class_t " tclass ", access_vector_t " requested ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "struct av_decision *" avd ", int " result ", void *" auditdata ");"
02e2f5f
 .in
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/avc_init.3 libselinux-2.0.13/man/man3/avc_init.3
02e2f5f
--- nsalibselinux/man/man3/avc_init.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/avc_init.3	2007-07-10 12:13:43.000000000 -0400
02e2f5f
@@ -6,17 +6,17 @@
02e2f5f
 avc_init, avc_destroy, avc_reset, avc_cleanup \- userspace SELinux AVC setup and teardown.
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/avc.h>
02e2f5f
 .sp
02e2f5f
 .BI "int avc_init(const char *" msgprefix , 
02e2f5f
 .in +\w'int avc_init('u
02e2f5f
 .BI "const struct avc_memory_callback *" mem_callbacks ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "const struct avc_log_callback *" log_callbacks ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "const struct avc_thread_callback *" thread_callbacks ,
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "const struct avc_lock_callback *" lock_callbacks ");"
02e2f5f
 .in
02e2f5f
 .sp
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/context_new.3 libselinux-2.0.13/man/man3/context_new.3
02e2f5f
--- nsalibselinux/man/man3/context_new.3	2007-01-17 11:11:35.000000000 -0500
02e2f5f
+++ libselinux-2.0.13/man/man3/context_new.3	2007-07-10 12:13:40.000000000 -0400
02e2f5f
@@ -4,27 +4,27 @@
02e2f5f
 
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/context.h>
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "context_t context_new(const char *" context_str );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_str(context_t " con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "void context_free(context_t " con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_type_get(context_t " con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_range_get(context_t " con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_role_get(context_t " con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_user_get(context_t " con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_type_set(context_t " con ", const char* " type);
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_range_set(context_t " con ", const char* " range);
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_role_set(context_t " con ", const char* " role );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .B "const char * context_user_set(context_t " con ", const char* " user );
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/freecon.3 libselinux-2.0.13/man/man3/freecon.3
02e2f5f
--- nsalibselinux/man/man3/freecon.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/freecon.3	2007-07-10 12:13:55.000000000 -0400
02e2f5f
@@ -5,7 +5,7 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .BI "void freecon(security_context_t "con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "void freeconary(security_context_t *" con );
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/getcon.3 libselinux-2.0.13/man/man3/getcon.3
02e2f5f
--- nsalibselinux/man/man3/getcon.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/getcon.3	2007-07-10 12:14:08.000000000 -0400
02e2f5f
@@ -1,21 +1,21 @@
02e2f5f
 .TH "getcon" "3" "1 January 2004" "russell@coker.com.au" "SELinux API documentation"
02e2f5f
 .SH "NAME"
02e2f5f
 getcon, getprevcon, getpidcon \- get SELinux security context of a process.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 getpeercon - get security context of a peer socket.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 setcon - set current security context of a process.
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .BI "int getcon(security_context_t *" context );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "int getprevcon(security_context_t *" context );
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "int getpidcon(pid_t " pid ", security_context_t *" context );
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "int getpeercon(int " fd ", security_context_t *" context);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "int setcon(security_context_t " context);
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/getexeccon.3 libselinux-2.0.13/man/man3/getexeccon.3
02e2f5f
--- nsalibselinux/man/man3/getexeccon.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/getexeccon.3	2007-07-10 12:14:24.000000000 -0400
02e2f5f
@@ -1,16 +1,16 @@
02e2f5f
 .TH "getexeccon" "3" "1 January 2004" "russell@coker.com.au" "SELinux API documentation"
02e2f5f
 .SH "NAME"
02e2f5f
 getexeccon, setexeccon \- get or set the SELinux security context used for executing a new process.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 rpm_execcon \- run a helper for rpm in an appropriate security context
02e2f5f
 
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .BI "int getexeccon(security_context_t *" context );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "int setexeccon(security_context_t "context );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "int rpm_execcon(unsigned int " verified ", const char *" filename ", char *const " argv "[] , char *const " envp "[]);
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
@@ -26,16 +26,16 @@
02e2f5f
 setexeccon to reset to the default policy behavior.  
02e2f5f
 The exec context is automatically reset after the next execve, so a
02e2f5f
 program doesn't need to explicitly sanitize it upon startup.  
02e2f5f
-.br
02e2f5f
+
02e2f5f
 
02e2f5f
 setexeccon can be applied prior to library
02e2f5f
 functions that internally perform an execve, e.g. execl*, execv*, popen,
02e2f5f
 in order to set an exec context for that operation.  
02e2f5f
-.br
02e2f5f
+
02e2f5f
 
02e2f5f
 Note: Signal handlers that perform an execve must take care to
02e2f5f
 save, reset, and restore the exec context to avoid unexpected behaviors.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 
02e2f5f
 .B rpm_execcon
02e2f5f
 runs a helper for rpm in an appropriate security context.  The
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/getfilecon.3 libselinux-2.0.13/man/man3/getfilecon.3
02e2f5f
--- nsalibselinux/man/man3/getfilecon.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/getfilecon.3	2007-07-10 12:17:06.000000000 -0400
02e2f5f
@@ -5,9 +5,9 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .BI "int getfilecon(const char *" path ", security_context_t *" con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "int lgetfilecon(const char *" path ", security_context_t *" con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "int fgetfilecon(int "fd ", security_context_t *" con );
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
 .B getfilecon
02e2f5f
@@ -22,7 +22,6 @@
02e2f5f
 is identical to getfilecon, only the open file pointed to by filedes (as
02e2f5f
 returned by open(2)) is interrogated in place of path.
02e2f5f
 
02e2f5f
-.br
02e2f5f
 
02e2f5f
 The returned context should be freed with freecon if non-NULL.  
02e2f5f
 .SH "RETURN VALUE"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/getfscreatecon.3 libselinux-2.0.13/man/man3/getfscreatecon.3
02e2f5f
--- nsalibselinux/man/man3/getfscreatecon.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/getfscreatecon.3	2007-07-10 12:17:06.000000000 -0400
02e2f5f
@@ -6,7 +6,7 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .BI "int getfscreatecon(security_context_t *" con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "int setfscreatecon(security_context_t "context );
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
@@ -22,11 +22,11 @@
02e2f5f
 setfscreatecon to reset to the default policy behavior.  
02e2f5f
 The fscreate context is automatically reset after the next execve, so a
02e2f5f
 program doesn't need to explicitly sanitize it upon startup.  
02e2f5f
-.br
02e2f5f
+
02e2f5f
 setfscreatecon can be applied prior to library
02e2f5f
 functions that internally perform an file creation,
02e2f5f
 in order to set an file context on the objects.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 
02e2f5f
 Note: Signal handlers that perform an setfscreate must take care to
02e2f5f
 save, reset, and restore the fscreate context to avoid unexpected behaviors.
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/get_ordered_context_list.3 libselinux-2.0.13/man/man3/get_ordered_context_list.3
02e2f5f
--- nsalibselinux/man/man3/get_ordered_context_list.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/get_ordered_context_list.3	2007-07-10 12:17:05.000000000 -0400
02e2f5f
@@ -4,7 +4,7 @@
02e2f5f
 
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/get_context_list.h>
02e2f5f
 .sp
02e2f5f
 .BI "int get_ordered_context_list(const char *" user ", security_context_t "fromcon ", security_context_t **" list );
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/getseuserbyname.3 libselinux-2.0.13/man/man3/getseuserbyname.3
02e2f5f
--- nsalibselinux/man/man3/getseuserbyname.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/getseuserbyname.3	2007-07-10 12:17:04.000000000 -0400
02e2f5f
@@ -12,7 +12,7 @@
02e2f5f
 then be passed to other libselinux functions such as 
02e2f5f
 get_ordered_context_list_with_level and get_default_context_with_level.
02e2f5f
 
02e2f5f
-.br
02e2f5f
+
02e2f5f
 
02e2f5f
 The returned SELinux username and level should be freed by the caller
02e2f5f
 using free.  
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/is_context_customizable.3 libselinux-2.0.13/man/man3/is_context_customizable.3
02e2f5f
--- nsalibselinux/man/man3/is_context_customizable.3	2007-01-17 11:11:35.000000000 -0500
02e2f5f
+++ libselinux-2.0.13/man/man3/is_context_customizable.3	2007-07-10 12:17:04.000000000 -0400
02e2f5f
@@ -8,7 +8,7 @@
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
 .B is_context_customizable
02e2f5f
-.br
02e2f5f
+
02e2f5f
 This function checks whether the type of scon is in the /etc/selinux/SELINUXTYPE/context/customizable_types file.  A customizable type is a file context type that
02e2f5f
 administrators set on files, usually to allow certain domains to share the file content. restorecon and setfiles, by default, leave these context in place.
02e2f5f
 
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/matchmediacon.3 libselinux-2.0.13/man/man3/matchmediacon.3
02e2f5f
--- nsalibselinux/man/man3/matchmediacon.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/matchmediacon.3	2007-07-10 12:17:03.000000000 -0400
02e2f5f
@@ -6,14 +6,14 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .BI "int matchmediacon(const char *" media ", security_context_t *" con);"
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B matchmediacon 
02e2f5f
 matches the specified media type with the media contexts configuration and sets the security context "con" to refer to the resulting context. 
02e2f5f
 .sp
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B Note: 
02e2f5f
    Caller must free returned security context "con" using freecon.
02e2f5f
 .SH "RETURN VALUE"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/matchpathcon.3 libselinux-2.0.13/man/man3/matchpathcon.3
02e2f5f
--- nsalibselinux/man/man3/matchpathcon.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/matchpathcon.3	2007-07-10 12:15:33.000000000 -0400
02e2f5f
@@ -6,18 +6,18 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .BI "int matchpathcon_init(const char *" path ");"
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "int matchpathcon_fini(void);"
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "int matchpathcon(const char *" path ", mode_t " mode ", security_context_t *" con);
02e2f5f
 .sp
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "void set_matchpathcon_printf(void (*" f ")(const char *" fmt ", ...));"
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "void set_matchpathcon_invalidcon(int (*" f ")(const char *"path ", unsigned " lineno ", char * " context "));"
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "void set_matchpathcon_flags(unsigned int " flags ");"
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
 .B matchpathcon_init
02e2f5f
 loads the file contexts configuration specified by
02e2f5f
@@ -40,7 +40,7 @@
02e2f5f
 suffix are also looked up and loaded if present.  These files provide
02e2f5f
 dynamically generated entries for user home directories and for local
02e2f5f
 customizations.
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .sp
02e2f5f
 .B matchpathcon_fini
02e2f5f
 frees the memory allocated by a prior call to
02e2f5f
@@ -49,7 +49,7 @@
02e2f5f
 .B matchpathcon_init 
02e2f5f
 calls, or to free memory when finished using 
02e2f5f
 .B matchpathcon.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .sp
02e2f5f
 .B matchpathcon 
02e2f5f
 matches the specified pathname and mode against the file contexts
02e2f5f
@@ -72,14 +72,14 @@
02e2f5f
 .I path,
02e2f5f
 defaulting to the active file contexts configuration.
02e2f5f
 .sp
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B set_matchpathcon_printf
02e2f5f
 sets the function used by 
02e2f5f
 .B matchpathcon_init
02e2f5f
 when displaying errors about the file contexts configuration.  If not set, 
02e2f5f
 then this defaults to fprintf(stderr, fmt, ...).  This can be set to redirect
02e2f5f
 error reporting to a different destination.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .sp
02e2f5f
 .B set_matchpathcon_invalidcon
02e2f5f
 sets the function used by 
02e2f5f
@@ -100,7 +100,7 @@
02e2f5f
 and
02e2f5f
 .I lineno
02e2f5f
 in such error messages.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .sp
02e2f5f
 .B set_matchpathcon_flags
02e2f5f
 sets flags controlling the operation of 
02e2f5f
@@ -111,7 +111,7 @@
02e2f5f
 .B MATCHPATHCON_BASEONLY
02e2f5f
 flag is set, then only the base file contexts configuration file
02e2f5f
 will be processed, not any dynamically generated entries or local customizations.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .sp
02e2f5f
 .SH "RETURN VALUE"
02e2f5f
 Returns 0 on success or -1 otherwise.
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/security_class_to_string.3 libselinux-2.0.13/man/man3/security_class_to_string.3
02e2f5f
--- nsalibselinux/man/man3/security_class_to_string.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/security_class_to_string.3	2007-07-10 12:15:16.000000000 -0400
02e2f5f
@@ -8,7 +8,7 @@
02e2f5f
 
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/flask.h>
02e2f5f
 .sp
02e2f5f
 .BI "const char * security_class_to_string(security_class_t " tclass ");"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/security_compute_av.3 libselinux-2.0.13/man/man3/security_compute_av.3
02e2f5f
--- nsalibselinux/man/man3/security_compute_av.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/security_compute_av.3	2007-07-10 12:15:12.000000000 -0400
02e2f5f
@@ -6,7 +6,7 @@
02e2f5f
 
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B #include <selinux/flask.h>
02e2f5f
 .sp
02e2f5f
 .BI "int security_compute_av(security_context_t "scon ", security_context_t "tcon ", security_class_t "tclass ", access_vector_t "requested ", struct av_decision *" avd );
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/security_getenforce.3 libselinux-2.0.13/man/man3/security_getenforce.3
02e2f5f
--- nsalibselinux/man/man3/security_getenforce.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/security_getenforce.3	2007-07-10 12:15:08.000000000 -0400
02e2f5f
@@ -5,7 +5,7 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .B int security_getenforce();
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .BI "int security_setenforce(int "value );
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/security_load_booleans.3 libselinux-2.0.13/man/man3/security_load_booleans.3
02e2f5f
--- nsalibselinux/man/man3/security_load_booleans.3	2007-01-17 11:11:35.000000000 -0500
02e2f5f
+++ libselinux-2.0.13/man/man3/security_load_booleans.3	2007-07-10 12:17:02.000000000 -0400
02e2f5f
@@ -7,15 +7,15 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 extern int security_load_booleans(char *path);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern int security_get_boolean_names(char ***names, int *len);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern int security_get_boolean_pending(const char *name);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern int security_get_boolean_active(const char *name);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern int security_set_boolean(const char *name, int value);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern int security_commit_booleans(void);
02e2f5f
 
02e2f5f
 
02e2f5f
@@ -29,27 +29,27 @@
02e2f5f
 The SELinux API allows for a transaction based update.  So you can set several boolean values and the commit them all at once.
02e2f5f
 
02e2f5f
 security_load_booleans
02e2f5f
-.br
02e2f5f
+
02e2f5f
 Load policy boolean settings. Path may be NULL, in which case the booleans are loaded from the active policy boolean configuration file.
02e2f5f
 
02e2f5f
 security_get_boolean_names
02e2f5f
-.br
02e2f5f
+
02e2f5f
 Returns a list of boolean names, currently supported by the loaded policy.
02e2f5f
 
02e2f5f
 security_set_boolean 
02e2f5f
-.br
02e2f5f
+
02e2f5f
 Sets the pending value for boolean 
02e2f5f
 
02e2f5f
 security_get_boolean_pending
02e2f5f
-.br
02e2f5f
+
02e2f5f
 Return pending value for boolean
02e2f5f
 
02e2f5f
 security_get_boolean_active
02e2f5f
-.br
02e2f5f
+
02e2f5f
 Return active value for boolean
02e2f5f
 
02e2f5f
 security_commit_booleans
02e2f5f
-.br
02e2f5f
+
02e2f5f
 Commit all pending values for the booleans.
02e2f5f
 
02e2f5f
 .SH AUTHOR	
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/selinux_binary_policy_path.3 libselinux-2.0.13/man/man3/selinux_binary_policy_path.3
02e2f5f
--- nsalibselinux/man/man3/selinux_binary_policy_path.3	2007-01-17 11:11:35.000000000 -0500
02e2f5f
+++ libselinux-2.0.13/man/man3/selinux_binary_policy_path.3	2007-07-10 12:16:08.000000000 -0400
02e2f5f
@@ -10,27 +10,27 @@
02e2f5f
 .SH "SYNOPSIS"
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_policy_root(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_binary_policy_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_failsafe_context_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_removable_context_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_default_context_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_user_contexts_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_file_context_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_media_context_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_securetty_types_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_contexts_path(void);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 extern const char *selinux_booleans_path(void);
02e2f5f
 
02e2f5f
 
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/selinux_getenforcemode.3 libselinux-2.0.13/man/man3/selinux_getenforcemode.3
02e2f5f
--- nsalibselinux/man/man3/selinux_getenforcemode.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/selinux_getenforcemode.3	2007-07-10 12:16:51.000000000 -0400
02e2f5f
@@ -5,13 +5,13 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .B int selinux_getenforcemode(int *enforce);
02e2f5f
-.br
02e2f5f
+
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
 .B selinux_getenforcemode
02e2f5f
 Reads the contents of the /etc/selinux/config file to determine how the 
02e2f5f
 system was setup to run SELinux.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 Sets the value of enforce to 1 if SELinux should be run in enforcing mode.
02e2f5f
 Sets the value of enforce to 0 if SELinux should be run in permissive mode.
02e2f5f
 Sets the value of enforce to -1 if SELinux should be disabled.
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/selinux_policy_root.3 libselinux-2.0.13/man/man3/selinux_policy_root.3
02e2f5f
--- nsalibselinux/man/man3/selinux_policy_root.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/selinux_policy_root.3	2007-07-10 12:16:49.000000000 -0400
02e2f5f
@@ -5,7 +5,7 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .B char *selinux_policy_root();
02e2f5f
-.br
02e2f5f
+
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
 .B selinux_policy_root
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man3/setfilecon.3 libselinux-2.0.13/man/man3/setfilecon.3
02e2f5f
--- nsalibselinux/man/man3/setfilecon.3	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man3/setfilecon.3	2007-07-10 12:12:18.000000000 -0400
02e2f5f
@@ -6,9 +6,9 @@
02e2f5f
 .B #include <selinux/selinux.h>
02e2f5f
 .sp
02e2f5f
 .BI "int setfilecon(const char *" path ", security_context_t "con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "int lsetfilecon(const char *" path ", security_context_t "con );
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 .BI "int fsetfilecon(int "fd ", security_context_t "con );
02e2f5f
 
02e2f5f
 .SH "DESCRIPTION"
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/matchpathcon.8 libselinux-2.0.13/man/man8/matchpathcon.8
02e2f5f
--- nsalibselinux/man/man8/matchpathcon.8	2007-06-21 05:16:39.000000000 -0400
02e2f5f
+++ libselinux-2.0.13/man/man8/matchpathcon.8	2007-07-10 11:38:39.000000000 -0400
02e2f5f
@@ -10,16 +10,16 @@
02e2f5f
 .SH OPTIONS
02e2f5f
 .B \-n
02e2f5f
 Do not display path.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B \-N
02e2f5f
 Do not use translations.
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B \-f file_context_file
02e2f5f
 Use alternate file_context file
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B \-p prefix
02e2f5f
 Use prefix to speed translations
02e2f5f
-.br
02e2f5f
+
02e2f5f
 .B \-V
02e2f5f
 Verify file context on disk matches defaults
02e2f5f
 
02e2f5f
diff --exclude-from=exclude -N -u -r nsalibselinux/man/man8/selinux.8 libselinux-2.0.13/man/man8/selinux.8
02e2f5f
--- nsalibselinux/man/man8/selinux.8	2006-11-16 17:15:26.000000000 -0500
02e2f5f
+++ libselinux-2.0.13/man/man8/selinux.8	2007-07-10 11:38:21.000000000 -0400
02e2f5f
@@ -62,14 +62,13 @@
02e2f5f
 .B system-config-securitylevel
02e2f5f
 allows customization of these booleans and tunables.
02e2f5f
 
02e2f5f
-.br
02e2f5f
 Many domains that are protected by SELinux also include selinux man pages explainging how to customize their policy.  
02e2f5f
 
02e2f5f
 .SH FILE LABELING
02e2f5f
 
02e2f5f
 All files, directories, devices ... have a security context/label associated with them.  These context are stored in the extended attributes of the file system.
02e2f5f
 Problems with SELinux often arise from the file system being mislabeled. This can be caused by booting the machine with a non selinux kernel.  If you see an error message containing file_t, that is usually a good indicator that you have a serious problem with file system labeling.  
02e2f5f
-.br 
02e2f5f
+
02e2f5f
 The best way to relabel the file system is to create the flag file /.autorelabel and reboot.  system-config-securitylevel, also has this capability.  The restorcon/fixfiles commands are also available for relabeling files. 
02e2f5f
   
02e2f5f
 .SH AUTHOR