Make guts into official library.
[checkpath] / checkpath.h
index 74cd0f5..726f9f8 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: checkpath.h,v 1.2 2001/01/25 22:16:02 mdw Exp $
+ * $Id: checkpath.h,v 1.3 2003/01/25 23:58:44 mdw Exp $
  *
  * Check a path for safety
  *
@@ -29,6 +29,9 @@
 /*----- Revision history --------------------------------------------------* 
  *
  * $Log: checkpath.h,v $
+ * Revision 1.3  2003/01/25 23:58:44  mdw
+ * Make guts into official library.
+ *
  * Revision 1.2  2001/01/25 22:16:02  mdw
  * Make flags be unsigned.
  *
@@ -37,8 +40,8 @@
  *
  */
 
-#ifndef PATH_H
-#define PATH_H
+#ifndef CHECKPATH_H
+#define CHECKPATH_H
 
 #ifdef __cplusplus
   extern "C" {
  * looked for, and what to do when they're found.
  */
 
-struct chkpath {
+struct checkpath {
   uid_t cp_uid;                                /* Uid that's considered OK */
   gid_t cp_gid[NGROUPS_MAX + 1];       /* Array of groups that are OK */
   int cp_gids;                         /* Number of groups in the array */
   int cp_verbose;                      /* Verbosity level to spit up */
   unsigned cp_what;                    /* What things to check for */
-  void (*cp_report)(int /*what*/, int /*verb*/,
+  void (*cp_report)(unsigned /*what*/, int /*verb*/,
                    const char */*dir*/, const char */*msg*/,
                    void */*p*/);
   void *cp_arg;                                /* Argument for cp_report */
@@ -71,21 +74,25 @@ struct chkpath {
 
 /* --- Flags for `@what@' fields in the above --- */
 
-#define CP_ERROR 1u                    /* Error report */
-#define CP_WRWORLD 2u                  /* Check write by world */
-#define CP_WRGRP 4u                    /* Check write by any group */
-#define CP_WROTHGRP 8u                 /* Check write by other group */
-#define CP_WROTHUSR 16u                        /* Check write by other user */
-#define CP_SYMLINK 32u                 /* Report symbolic links */
-#define CP_REPORT 64u                  /* Make user-readable reports */
-#define CP_STICKYOK 128u               /* Don't care if sticky is set */
+/* Problem types */
+#define CP_PROBLEMS 0x1fu              /* Mask of problem bits */
+#define CP_ERROR 0x01u                 /* Error report */
+#define CP_WRWORLD 0x02u               /* Check write by world */
+#define CP_WRGRP 0x04u                 /* Check write by any group */
+#define CP_WROTHGRP 0x08u              /* Check write by other group */
+#define CP_WROTHUSR 0x10u              /* Check write by other user */
+
+/* Other flags */
+#define CP_SYMLINK 0x100u              /* Report symbolic links */
+#define CP_REPORT 0x200u               /* Make user-readable reports */
+#define CP_STICKYOK 0x400u             /* Don't care if sticky is set */
 
 /*----- Functions provided ------------------------------------------------*/
 
-/* --- @path_check@ --- *
+/* --- @checkpath@ --- *
  *
  * Arguments:  @const char *p@ = directory name which needs checking
- *             @struct chkpath *cp@ = caller parameters for the check
+ *             @const struct checkpath *cp@ = parameters for the check
  *
  * Returns:    Zero if all is well, otherwise bitmask of problems.
  *
@@ -93,18 +100,18 @@ struct chkpath {
  *             users could do to it.
  */
 
-extern int path_check(const char */*p*/, struct chkpath */*cp*/);
+extern unsigned checkpath(const char */*p*/, const struct checkpath */*cp*/);
 
-/* --- @path_setids@ --- *
+/* --- @checkpath_setids@ --- *
  *
- * Arguments:  @struct chkpath *cp@ = pointer to block to fill in
+ * Arguments:  @struct checkpath *cp@ = pointer to block to fill in
  *
  * Returns:    ---
  *
  * Use:                Fills in the user ids and things in the structure.
  */
 
-extern void path_setids(struct chkpath */*cp*/);
+extern void checkpath_setids(struct checkpath */*cp*/);
 
 /*----- That's all, folks -------------------------------------------------*/