1/*
2 * Copyright (C) 2004, 2005, 2007  Internet Systems Consortium, Inc. ("ISC")
3 * Copyright (C) 2000, 2001  Internet Software Consortium.
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any
6 * purpose with or without fee is hereby granted, provided that the above
7 * copyright notice and this permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
10 * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
11 * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
12 * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
13 * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
14 * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
15 * PERFORMANCE OF THIS SOFTWARE.
16 */
17
18/* $Id: fsaccess_test.c,v 1.13 2007/06/19 23:46:59 tbox Exp $ */
19
20/*! \file */
21
22#include <config.h>
23
24#include <stdio.h>
25
26#include <sys/types.h>		/* Non-portable. */
27#include <sys/stat.h>		/* Non-portable. */
28
29#include <isc/fsaccess.h>
30#include <isc/result.h>
31
32#define PATH "/tmp/fsaccess"
33
34int
35main(void) {
36	isc_fsaccess_t access;
37	isc_result_t result;
38
39	remove(PATH);
40	fopen(PATH, "w");
41	chmod(PATH, 0);
42
43	access = 0;
44
45	isc_fsaccess_add(ISC_FSACCESS_OWNER | ISC_FSACCESS_GROUP,
46			 ISC_FSACCESS_READ | ISC_FSACCESS_WRITE,
47			 &access);
48
49	printf("fsaccess=%d\n", access);
50
51	isc_fsaccess_add(ISC_FSACCESS_OTHER, ISC_FSACCESS_READ, &access);
52
53	printf("fsaccess=%d\n", access);
54
55	result = isc_fsaccess_set(PATH, access);
56	if (result != ISC_R_SUCCESS)
57		fprintf(stderr, "result = %s\n", isc_result_totext(result));
58
59	return (0);
60}
61