Annotation of src/usr.bin/tcfs/tcfsflag.c, Revision 1.1
1.1 ! provos 1: /*
! 2: * Transparent Cryptographic File System (TCFS) for NetBSD
! 3: * Author and mantainer: Luigi Catuogno [luicat@tcfs.unisa.it]
! 4: *
! 5: * references: http://tcfs.dia.unisa.it
! 6: * tcfs-bsd@tcfs.unisa.it
! 7: */
! 8:
! 9: /*
! 10: * Base utility set v0.1
! 11: */
! 12:
! 13: #include <stdio.h>
! 14: #include <errno.h>
! 15: #include <fcntl.h>
! 16: #include <sys/types.h>
! 17: #include <ctype.h>
! 18: #include <pwd.h>
! 19: #include <unistd.h>
! 20: #include <sys/param.h>
! 21: #include <sys/mount.h>
! 22: #include <sys/wait.h>
! 23: #include <des.h>
! 24:
! 25: #include <miscfs/tcfs/tcfs.h>
! 26: #include <miscfs/tcfs/tcfs_fileinfo.h>
! 27: #include "tcfsdefines.h"
! 28:
! 29: tcfs_flags tcfs_getflags(int);
! 30: tcfs_flags tcfs_setflags(int,tcfs_flags);
! 31:
! 32: int
! 33: flags_main(int argc, char *argv[])
! 34: {
! 35: int fd;
! 36: tcfs_flags i;
! 37:
! 38: if (argc < 3) {
! 39: fprintf (stderr, "tcfsflags {r,x,g} file\n\n");
! 40: exit(1);
! 41: }
! 42:
! 43: fd = open(argv[2],O_RDONLY);
! 44: if (!fd) {
! 45: fprintf(stderr, "open failed\n");
! 46: exit(1);
! 47: }
! 48:
! 49: i = tcfs_getflags(fd);
! 50: if (i.flag == -1) {
! 51: fprintf(stderr,"getflags error\n");
! 52: close(fd);
! 53: exit(1);
! 54: }
! 55:
! 56: switch(*argv[1]) {
! 57: case 'r':
! 58: printf("%s x:%d g:%d\n",argv[2],
! 59: FI_CFLAG(&i),FI_GSHAR(&i));
! 60: exit(0);
! 61: case 'x':
! 62: FI_SET_CF(&i,~(FI_CFLAG(&i)));
! 63: break;
! 64: case 'g':
! 65: FI_SET_GS(&i,~(FI_GSHAR(&i)));
! 66: break;
! 67: }
! 68:
! 69: i = tcfs_setflags(fd,i);
! 70: if (i.flag == -1) {
! 71: fprintf(stderr,"setflags error\n");
! 72: exit(1);
! 73: }
! 74: close(fd);
! 75:
! 76: exit(0);
! 77: }
! 78: