int main( int argc, char **argv) { dm_sessid_t sid = DM_NO_SESSION; dm_token_t token; dm_right_t right; char *object; void *hanp; size_t hlen; int Fflag = 0; char *name; int opt; Progname = strrchr(argv[0], '/'); if (Progname) { Progname++; } else { Progname = argv[0]; } /* Crack and validate the command line options. */ while ((opt = getopt(argc, argv, "Fs:")) != EOF) { switch (opt) { case 'F': Fflag++; break; case 's': sid = atol(optarg); break; case '?': usage(); } } if (optind + 2 != argc) usage(); token = atol(argv[optind++]); object = argv[optind++]; if (dm_init_service(&name) == -1) { fprintf(stderr, "Can't initialize the DMAPI\n"); exit(1); } if (sid == DM_NO_SESSION) find_test_session(&sid); /* Get the file or filesystem's handle. */ if (opaque_to_handle(object, &hanp, &hlen)) { fprintf(stderr, "can't get handle from %s\n", object); exit(1); } if (Fflag) { void *fshanp; size_t fshlen; if (dm_handle_to_fshandle(hanp, hlen, &fshanp, &fshlen)) { fprintf(stderr, "can't get filesystem handle from %s\n", object); exit(1); } dm_handle_free(hanp, hlen); hanp = fshanp; hlen = fshlen; } if (dm_query_right(sid, hanp, hlen, token, &right)) { fprintf(stderr, "dm_query_right failed, %s\n", strerror(errno)); return(1); } fprintf(stderr, "right is %s\n", rt_value_to_name(right)); dm_handle_free(hanp, hlen); exit(0); }
int main( int argc, char **argv) { char *dirpath; char *objpath; void *hanp1, *hanp2; size_t hlen1, hlen2; void *pathbufp; size_t buflen = 1024; size_t rlenp; char *name; int opt; Progname = strrchr(argv[0], '/'); if (Progname) { Progname++; } else { Progname = argv[0]; } /* Crack and validate the command line options. */ while ((opt = getopt(argc, argv, "b:")) != EOF) { switch (opt) { case 'b': buflen = atol(optarg); break; case '?': usage(); } } if (optind + 2 != argc) usage(); dirpath = argv[optind++]; objpath = argv[optind]; if (dm_init_service(&name)) { fprintf(stderr, "Can't initialize the DMAPI\n"); return(1); } if (opaque_to_handle(dirpath, &hanp1, &hlen1)) { fprintf(stderr, "can't get handle for dir %s\n", dirpath); exit(1); } if (opaque_to_handle(objpath, &hanp2, &hlen2)) { fprintf(stderr, "can't get handle for obj %s\n", objpath); exit(1); } if ((pathbufp = malloc(buflen == 0 ? 1 : buflen)) == NULL) { fprintf(stderr, "malloc failed\n"); return(1); } if (dm_handle_to_path(hanp1, hlen1, hanp2, hlen2, buflen, pathbufp, &rlenp)) { if (errno == E2BIG) { fprintf(stderr, "dm_handle_to_path buffer too small, " "should be %zd bytes\n", rlenp); } else { fprintf(stderr, "dm_handle_to_path failed, (%d) %s\n", errno, strerror(errno)); } return(1); } fprintf(stderr, "rlenp is %zd, pathbufp is %s\n", rlenp, (char*)pathbufp); if (strlen(pathbufp) + 1 != rlenp) { fprintf(stderr, "rlenp is %zd, should be %zd\n", rlenp, strlen(pathbufp) + 1); return(1); } exit(0); }
int main( int argc, char **argv) { dm_sessid_t sid = DM_NO_SESSION; dm_token_t token = DM_NO_TOKEN; #if 0 char buffer[500]; #endif void *hanp; size_t hlen; dm_stat_t dmstat; char *pathname_obj; int a_flag = 0; char *name; int opt; int validate = 0; Progname = strrchr(argv[0], '/'); if (Progname) { Progname++; } else { Progname = argv[0]; } opterr = 0; while ((opt = getopt(argc, argv, "Aas:t:v")) != EOF) { switch (opt) { case 'A': a_flag = 2; break; case 'a': a_flag = 1; break; case 's': sid = atol(optarg); break; case 't': token = atol(optarg); break; case 'v': validate = 1; break; case '?': usage(); } } if (optind + 1 != argc) { usage(); } pathname_obj = argv[optind]; if (dm_init_service(&name) == -1) { fprintf(stderr, "Can't initialize the DMAPI\n"); exit(1); } if (sid == DM_NO_SESSION) find_test_session(&sid); /* Get the file's handle or convert the external handle. */ if (opaque_to_handle(pathname_obj, &hanp, &hlen)) { fprintf(stderr, "can't get handle for %s\n", pathname_obj); exit(1); } if (!a_flag) { fprintf(stdout, "path/handle %s\n", pathname_obj); /* Get the file's state, print it, then verify it against what is in the file's stat block. */ if (dm_get_fileattr(sid, hanp, hlen, token, DM_AT_EMASK|DM_AT_PMANR|DM_AT_PATTR|DM_AT_DTIME|DM_AT_CFLAG|DM_AT_STAT, &dmstat)) { fprintf(stderr, "dm_get_fileattr failed, %s\n", strerror(errno)); exit(1); } print_state(&dmstat); if(validate) (void)validate_state(&dmstat, pathname_obj, 1); #if 0 } else { if ((rc = filesys_bulkscan_init(pathname, &scanp)) != 0) { fprintf(stderr, "filesys_bulkscan failed, %s\n", fileio_err_image(rc)); exit(1); } for (;;) { rc = filesys_bulkscan_read(scanp, &fhandle, &fullstat); if (rc != FILEIO_NOERROR) break; (void)fhandle_to_buffer(&fhandle, buffer, sizeof(buffer)); if (a_flag == 1) { fprintf(stdout, "handle %s\n", buffer); print_state(&fullstat); fprintf(stdout, "--------------------------\n"); } else { fprintf(stdout, "%s|", buffer); print_line(&fullstat); } } if (rc != FILEIO_ENDOFSCAN) { fprintf(stderr, "filesys_bulkscan_read failed, %s\n", fileio_err_image(rc)); exit(1); } if ((rc = filesys_bulkscan_close(&scanp)) != 0) { fprintf(stderr, "filesys_bulkscan_close failed, %s\n", fileio_err_image(rc)); exit(1); } #endif } exit(0); }
int main( int argc, char **argv) { dm_sessid_t sid = DM_NO_SESSION; char *object = NULL; dm_off_t offset = 0; dm_size_t length = 0; void *hanp; size_t hlen; char *name; int opt; if (Progname = strrchr(argv[0], '/')) { Progname++; } else { Progname = argv[0]; } /* Crack and validate the command line options. */ while ((opt = getopt(argc, argv, "o:l:s:")) != EOF) { switch (opt) { case 'o': offset = atol(optarg); break; case 'l': length = atol(optarg); break; case 's': sid = atol(optarg); break; case '?': usage(); } } if (optind + 1 != argc) usage(); object = argv[optind]; if (dm_init_service(&name) == -1) { fprintf(stderr, "Can't initialize the DMAPI\n"); exit(1); } if (sid == DM_NO_SESSION) find_test_session(&sid); /* Get the file's handle. */ if (opaque_to_handle(object, &hanp, &hlen)) { fprintf(stderr, "can't get handle for %s\n", object); exit(1); } if (dm_punch_hole(sid, hanp, hlen, DM_NO_TOKEN, offset, length)) { fprintf(stderr, "dm_punch_hole failed, %s\n", strerror(errno)); exit(1); } dm_handle_free(hanp, hlen); exit(0); }
int main( int argc, char **argv) { dm_sessid_t sid = DM_NO_SESSION; dm_token_t token = DM_NO_TOKEN; u_int nelem = DM_EVENT_MAX; char *object; dm_eventset_t eventset; void *hanp; size_t hlen; u_int nelemp; char *name; int Fflag = 0; int error; int opt; int i; if (Progname = strrchr(argv[0], '/')) { Progname++; } else { Progname = argv[0]; } /* Crack and validate the command line options. */ while ((opt = getopt(argc, argv, "Fn:s:t:")) != EOF) { switch (opt) { case 'F': Fflag++; break; case 'n': nelem = atol(optarg); break; case 's': sid = atol(optarg); break; case 't': token = atol(optarg); break; case '?': usage(); } } if (optind + 1 != argc) usage(); object = argv[optind]; if (dm_init_service(&name) == -1) { fprintf(stderr, "Can't initialize the DMAPI\n"); exit(1); } if ((error = opaque_to_handle(object, &hanp, &hlen)) != 0) { fprintf(stderr, "can't get a handle from %s, %s\n", object, strerror(error)); return(1); } if (Fflag) { void *fshanp; size_t fshlen; if (dm_handle_to_fshandle(hanp, hlen, &fshanp, &fshlen)) { fprintf(stderr, "can't get filesystem handle from %s\n", object); exit(1); } dm_handle_free(hanp, hlen); hanp = fshanp; hlen = fshlen; } if (sid == DM_NO_SESSION) find_test_session(&sid); DMEV_ZERO(eventset); if (dm_get_eventlist(sid, hanp, hlen, token, nelem, &eventset, &nelemp)) { fprintf(stderr, "dm_get_eventlist failed, %s\n", strerror(errno)); return(1); } #ifdef VERITAS_21 fprintf(stdout, "Events on object %s (0x%x), nelemp %d:\n", #else fprintf(stdout, "Events on object %s (0x%llx), nelemp %d:\n", #endif object, eventset, nelemp); for (i = 0; i < nelemp; i++) { if (!DMEV_ISSET(i, eventset)) continue; switch (i) { case DM_EVENT_CANCEL: fprintf(stdout, "DM_EVENT_CANCEL"); break; case DM_EVENT_MOUNT: fprintf(stdout, "DM_EVENT_MOUNT"); break; case DM_EVENT_PREUNMOUNT: fprintf(stdout, "DM_EVENT_PREUNMOUNT"); break; case DM_EVENT_UNMOUNT: fprintf(stdout, "DM_EVENT_UNMOUNT"); break; case DM_EVENT_DEBUT: fprintf(stdout, "DM_EVENT_DEBUT"); break; case DM_EVENT_CREATE: fprintf(stdout, "DM_EVENT_CREATE"); break; case DM_EVENT_CLOSE: fprintf(stdout, "DM_EVENT_CLOSE"); break; case DM_EVENT_POSTCREATE: fprintf(stdout, "DM_EVENT_POSTCREATE"); break; case DM_EVENT_REMOVE: fprintf(stdout, "DM_EVENT_REMOVE"); break; case DM_EVENT_POSTREMOVE: fprintf(stdout, "DM_EVENT_POSTREMOVE"); break; case DM_EVENT_RENAME: fprintf(stdout, "DM_EVENT_RENAME"); break; case DM_EVENT_POSTRENAME: fprintf(stdout, "DM_EVENT_POSTRENAME"); break; case DM_EVENT_LINK: fprintf(stdout, "DM_EVENT_LINK"); break; case DM_EVENT_POSTLINK: fprintf(stdout, "DM_EVENT_POSTLINK"); break; case DM_EVENT_SYMLINK: fprintf(stdout, "DM_EVENT_SYMLINK"); break; case DM_EVENT_POSTSYMLINK: fprintf(stdout, "DM_EVENT_POSTSYMLINK"); break; case DM_EVENT_READ: fprintf(stdout, "DM_EVENT_READ"); break; case DM_EVENT_WRITE: fprintf(stdout, "DM_EVENT_WRITE"); break; case DM_EVENT_TRUNCATE: fprintf(stdout, "DM_EVENT_TRUNCATE"); break; case DM_EVENT_ATTRIBUTE: fprintf(stdout, "DM_EVENT_ATTRIBUTE"); break; case DM_EVENT_DESTROY: fprintf(stdout, "DM_EVENT_DESTROY"); break; case DM_EVENT_NOSPACE: fprintf(stdout, "DM_EVENT_NOSPACE"); break; case DM_EVENT_USER: fprintf(stdout, "DM_EVENT_USER"); break; case DM_EVENT_MAX: fprintf(stdout, "DM_EVENT_23"); break; } fprintf(stdout, " (%d)\n", i); } dm_handle_free(hanp, hlen); return(0); }
int main( int argc, char **argv) { dm_sessid_t sid = DM_NO_SESSION; dm_token_t token = DM_NO_TOKEN; char *object; dm_eventset_t eventset; void *hanp; size_t hlen; int Fflag = 0; u_int maxevent = DM_EVENT_MAX; char *name; int opt; Progname = strrchr(argv[0], '/'); if (Progname) { Progname++; } else { Progname = argv[0]; } /* Crack and validate the command line options. */ while ((opt = getopt(argc, argv, "Fm:s:t:")) != EOF) { switch (opt) { case 'F': Fflag++; break; case 'm': maxevent = atol(optarg); break; case 's': sid = atol(optarg); break; case 't': token = atol(optarg); break; case '?': usage(); } } if (optind + 1 > argc) usage(); object = argv[optind++]; if (dm_init_service(&name) == -1) { fprintf(stderr, "Can't initialize the DMAPI\n"); exit(1); } if (sid == DM_NO_SESSION) find_test_session(&sid); DMEV_ZERO(eventset); /* Get the file's handle or convert the external handle. */ if (opaque_to_handle(object, &hanp, &hlen)) { fprintf(stderr, "can't get handle for %s\n", object); exit(1); } if (Fflag) { void *fshanp; size_t fshlen; if (dm_handle_to_fshandle(hanp, hlen, &fshanp, &fshlen)) { fprintf(stderr, "can't get filesystem handle from %s\n", object); exit(1); } dm_handle_free(hanp, hlen); hanp = fshanp; hlen = fshlen; } for (; optind < argc; optind++) { dm_eventtype_t event; event = ev_name_to_value(argv[optind]); if (event == DM_EVENT_INVALID) { fprintf(stderr, "invalid event %s\n", argv[optind]); usage(); } if ((event == DM_EVENT_READ) || (event == DM_EVENT_WRITE) || (event == DM_EVENT_TRUNCATE)) { fprintf(stderr, "Use set_region to twiddle read/write/trunc events\n"); exit(1); } DMEV_SET(event, eventset); } if (dm_set_eventlist(sid, hanp, hlen, token, &eventset, maxevent)) { fprintf(stderr, "dm_set_eventlist failed, %s\n", strerror(errno)); exit(1); } dm_handle_free(hanp, hlen); exit(0); }
int main( int argc, char **argv) { dm_sessid_t sid = DM_NO_SESSION; dm_token_t token = DM_NO_TOKEN; char *pathname; dm_attrname_t *attrnamep = NULL; dm_boolean_t enable = DM_FALSE; void *hanp; size_t hlen; char *name; int opt; int Fflag = 0; Progname = strrchr(argv[0], '/'); if (Progname) { Progname++; } else { Progname = argv[0]; } /* Crack and validate the command line options. */ while ((opt = getopt(argc, argv, "Fs:t:")) != EOF) { switch (opt) { case 's': sid = atol(optarg); break; case 't': token = atol(optarg); break; case 'F': Fflag++; break; case '?': usage(); } } if (optind == argc || optind + 2 < argc) usage(); pathname = argv[optind++]; if (optind < argc) { enable = DM_TRUE; attrnamep = (dm_attrname_t *)argv[optind++]; } if (dm_init_service(&name) == -1) { fprintf(stderr, "Can't initialize the DMAPI\n"); exit(1); } if (sid == DM_NO_SESSION) find_test_session(&sid); if (opaque_to_handle(pathname, &hanp, &hlen)) { fprintf(stderr, "can't get handle for %s\n", pathname); exit(1); } /* Get the file's handle. */ if (Fflag) { void *fshanp; size_t fshlen; if (dm_handle_to_fshandle(hanp, hlen, &fshanp, &fshlen)) { fprintf(stderr, "can't get filesystem handle for file %s, %s\n", pathname, strerror(errno)); exit(1); } dm_handle_free(hanp, hlen); hanp = fshanp; hlen = fshlen; } if (dm_set_return_on_destroy(sid, hanp, hlen, token, attrnamep, enable)) { fprintf(stderr, "dm_set_return_on_destroy failed, %s\n", strerror(errno)); exit(1); } dm_handle_free(hanp, hlen); exit(0); }