From d61522e4015cefe991c46b069ae333487ea3b521 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Tue, 11 Dec 2007 16:36:54 +0000 Subject: [PATCH] STABLE14-up-prototypes-20071211 LICENSE IPL10 move changes from 1.5 branch here so we have the needed prototypes --- src/venus/up.c | 122 ++++++++++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 52 deletions(-) diff --git a/src/venus/up.c b/src/venus/up.c index edb32d05d..f35814ee8 100644 --- a/src/venus/up.c +++ b/src/venus/up.c @@ -14,9 +14,6 @@ RCSID ("$Header$"); /* missing type from C language */ -#define Boolean short -#define true 1 -#define false 0 #include #ifdef AFS_AIX32_ENV @@ -59,16 +56,16 @@ extern sys_nerr; extern char *sys_errlist[]; #endif -Boolean verbose = false; -Boolean renameTargets = false; -Boolean oneLevel = false; -Boolean preserveDate = true; -Boolean preserveMountPoints = false; -Boolean forceOverwrite = false; +short verbose = 0; +short renameTargets = 0; +short oneLevel = 0; +short preserveDate = 1; +short preserveMountPoints = 0; +short forceOverwrite = 0; int pageSize; -Boolean setacl = true; -Boolean oldAcl = false; +short setacl = 1; +short oldAcl = 0; char file1[MAXPATHLEN], file2[MAXPATHLEN]; #define MAXSIZE 2048 @@ -81,6 +78,12 @@ struct OldAcl { char data[1]; }; +static void ScanArgs(int argc, char *argv[]); +static short MakeParent(char *file, afs_int32 owner); +static int Copy(char *file1, char *file2, short recursive, int level); +static int isMountPoint(char *name, struct ViceIoctl *blob); + + /* ************************************************************ */ /* */ /* main program */ @@ -89,10 +92,8 @@ struct OldAcl { #include "AFS_component_version_number.c" -main(argc, argv) - int argc; - char *argv[]; - +int +main(int argc, char *argv[]) { #ifdef AFS_AIX32_ENV /* @@ -115,16 +116,15 @@ main(argc, argv) /* now read each line of the CopyList */ if (Copy(file1, file2, !oneLevel, 0)) - exit(1); /* some type of failure */ + return(1); /* some type of failure */ - exit(0); + return(0); } -void -ScanArgs(argc, argv) - int argc; - char *argv[]; +#define USAGE "usage: up [-v1frxm] from to\n" +static void +ScanArgs(int argc, char *argv[]) { /* skip program name */ argc--, argv++; @@ -135,39 +135,39 @@ ScanArgs(argc, argv) switch (*++cp) { case 'v': - verbose = true; + verbose = 1; break; case '1': - oneLevel = true; + oneLevel = 1; break; case 'r': - renameTargets = true; + renameTargets = 1; break; case 'f': - forceOverwrite = true; + forceOverwrite = 1; break; case 'x': - preserveDate = false; + preserveDate = 0; break; case 'm': - preserveMountPoints = true; + preserveMountPoints = 1; break; default: fprintf(stderr, "Unknown option: '%c'\n", *cp); - fprintf(stderr, "usage: up [-v1frxm] from to\n"); + fprintf(stderr, USAGE); exit(1); } argc--, argv++; } if (argc != 2) { - fprintf(stderr, "usage: up [-v1frx] from to\n"); + fprintf(stderr, USAGE); exit(1); } @@ -181,13 +181,11 @@ ScanArgs(argc, argv) /* * MakeParent * Make sure the parent directory of this file exists. Returns - * true if it exists, false otherwise. Note: the owner argument + * 1 if it exists, 0 otherwise. Note: the owner argument * is a hack. All directories made will have this owner. */ -Boolean -MakeParent(file, owner) - char *file; - afs_int32 owner; +static short +MakeParent(char *file, afs_int32 owner) { char parent[MAXPATHLEN]; char *p; @@ -206,7 +204,7 @@ MakeParent(file, owner) if (stat(parent, &s) < 0) { if (!MakeParent(parent, owner)) - return (false); + return (0); if (verbose) { printf("Creating directory %s\n", parent); @@ -216,7 +214,7 @@ MakeParent(file, owner) mkdir(parent, 0777); chown(parent, owner, -1); } - return (true); + return (1); } /*MakeParent */ @@ -225,12 +223,8 @@ MakeParent(file, owner) * This does the bulk of the work of the program. Handle one file, * possibly copying subfiles if this is a directory */ -Copy(file1, file2, recursive, level) - char *file1; /* input file name */ - char *file2; /* output file name */ - Boolean recursive; /* true if directory should be copied */ - int level; /* level of recursion: 0, 1, ... */ - +static int +Copy(char *file1, char *file2, short recursive, int level) { struct stat s1, s2; /*Stat blocks */ struct ViceIoctl blob; @@ -610,7 +604,7 @@ Copy(file1, file2, recursive, level) rcode = 1; } - if (setacl == true) { + if (setacl == 1) { if (verbose) { printf(" Set acls for %s\n", file2); fflush(stdout); @@ -623,6 +617,11 @@ Copy(file1, file2, recursive, level) if (oldAcl) { /* Get an old-style ACL and convert it */ + if (verbose) { + printf(" Getting old style acl\n"); + fflush(stdout); + } + for (i = 1; i < strlen(file1); i++) if (file1[i] == '/') break; @@ -638,7 +637,11 @@ Copy(file1, file2, recursive, level) close(tfd); if (code < 0) { if (errno == EINVAL) { - setacl = false; + setacl = 0; + if (verbose) { + printf(" _VICEIOCTL(4) returns EINVAL\n"); + fflush(stdout); + } } else { return 1; } @@ -651,10 +654,19 @@ Copy(file1, file2, recursive, level) } /*Grab and convert old-style ACL */ else { /* Get a new-style ACL */ + if (verbose) { + printf(" Getting new style acl\n"); + fflush(stdout); + } + code = pioctl(file1, _VICEIOCTL(2), &blob, 1); if (code < 0) { if (errno == EINVAL) { - setacl = false; + setacl = 0; + if (verbose) { + printf(" _VICEIOCTL(2) returns EINVAL\n"); + fflush(stdout); + } } else { perror("getacl "); return 1; @@ -665,7 +677,11 @@ Copy(file1, file2, recursive, level) /* * Now, set the new-style ACL. */ - if (setacl == true) { + if (setacl == 1) { + if (verbose) { + printf(" Setting new style acl\n"); + fflush(stdout); + } blob.out = aclspace; blob.in = aclspace; blob.out_size = 0; @@ -673,7 +689,11 @@ Copy(file1, file2, recursive, level) code = pioctl(file2, _VICEIOCTL(1), &blob, 1); if (code) { if (errno == EINVAL) { - setacl = false; + setacl = 0; + if (verbose) { + printf(" _VICEIOCTL(1) returns EINVAL\n"); + fflush(stdout); + } } else { fprintf(stderr, "Couldn't set acls for %s\n", file2); return 1; @@ -681,7 +701,7 @@ Copy(file1, file2, recursive, level) } } - if (setacl == false) { + if (setacl == 0) { printf("Not setting acls\n"); } } @@ -700,10 +720,8 @@ Copy(file1, file2, recursive, level) } /*Copy */ -int -isMountPoint(name, blob) - char *name; - struct ViceIoctl *blob; +static int +isMountPoint(char *name, struct ViceIoctl *blob) { afs_int32 code; char true_name[1024]; /*dirname */ -- 2.39.5