Version 1.2.0.
[checkpath] / checkpath.h
index e759c07..bd9d256 100644 (file)
@@ -1,13 +1,11 @@
 /* -*-c-*-
  *
- * $Id: checkpath.h,v 1.1 1999/04/06 20:12:07 mdw Exp $
- *
  * Check a path for safety
  *
  * (c) 1999 Mark Wooding
  */
 
-/*----- Licensing notice --------------------------------------------------* 
+/*----- Licensing notice --------------------------------------------------*
  *
  * This file is part of chkpath.
  *
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
- * 
+ *
  * chkpath is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License
  * along with chkpath; if not, write to the Free Software Foundation,
  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 
-/*----- Revision history --------------------------------------------------* 
- *
- * $Log: checkpath.h,v $
- * Revision 1.1  1999/04/06 20:12:07  mdw
- * Initial revision
- *
- */
-
-#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 */
-  int cp_what;                         /* What things to check for */
-  void (*cp_report)(int /*what*/, int /*verb*/,
+  unsigned cp_what;                    /* What things to check for */
+  void (*cp_report)(unsigned /*what*/, int /*verb*/,
                    const char */*dir*/, const char */*msg*/,
                    void */*p*/);
   void *cp_arg;                                /* Argument for cp_report */
@@ -68,21 +58,25 @@ struct chkpath {
 
 /* --- Flags for `@what@' fields in the above --- */
 
-#define CP_ERROR 1                     /* Error report */
-#define CP_WRWORLD 2                   /* Check write by world */
-#define CP_WRGRP 4                     /* Check write by any group */
-#define CP_WROTHGRP 8                  /* Check write by other group */
-#define CP_WROTHUSR 16                 /* Check write by other user */
-#define CP_SYMLINK 32                  /* Report symbolic links */
-#define CP_REPORT 64                   /* Make user-readable reports */
-#define CP_STICKYOK 128                        /* 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.
  *
@@ -90,18 +84,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 -------------------------------------------------*/