Changeset 16356


Ignore:
Timestamp:
Feb 12, 2006, 7:13:18 AM (15 years ago)
Author:
landonf (Landon Fuller)
Message:

Don't try to use volfs/F_GETPATH on non-Apple systems

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/base/src/darwintracelib1.0/darwintrace.c

    r16352 r16356  
    11/*
    22 * Copyright (c) 2005 Apple Computer, Inc. All rights reserved.
    3  * $Id: darwintrace.c,v 1.8 2006/02/12 06:30:44 landonf Exp $
     3 * $Id: darwintrace.c,v 1.9 2006/02/12 07:13:18 landonf Exp $
    44 *
    55 * @APPLE_BSD_LICENSE_HEADER_START@
     
    9898        int size;
    9999        char somepath[MAXPATHLEN];
     100
     101#ifdef __APPLE__ /* Only Darwin has volfs and F_GETPATH */
    100102        if((fd > 0) && (strncmp(path, "/.vol/", 6) == 0)) {
    101103                if(0 == fcntl(fd, F_GETPATH, somepath)) {
     
    110112                        size = 0;
    111113                }
     114
     115                goto finish;
     116        }
     117#endif /* __APPLE__ */
     118
     119        /* append cwd to the path if required */
     120        if (path[0] != '/') {
     121                (void) getcwd(somepath, sizeof(somepath));
     122#if DARWINTRACE_SHOW_PROCESS
     123                size = snprintf(__darwintrace_buf,
     124                                        BUFFER_SIZE, "%s[%d]\t%s\t%s/%s\n",
     125                                        __darwintrace_progname, __darwintrace_pid,
     126                                        op, somepath, path );
     127#else
     128                size = snprintf(__darwintrace_buf,
     129                                        BUFFER_SIZE, "%s\t%s/%s\n", op, somepath, path );
     130#endif
    112131        } else {
    113                 /* append cwd to the path if required */
    114                 if (path[0] != '/') {
    115                         (void) getcwd(somepath, sizeof(somepath));
    116 #if DARWINTRACE_SHOW_PROCESS
    117                         size = snprintf(__darwintrace_buf,
    118                                                 BUFFER_SIZE, "%s[%d]\t%s\t%s/%s\n",
    119                                                 __darwintrace_progname, __darwintrace_pid,
    120                                                 op, somepath, path );
     132#if DARWINTRACE_SHOW_PROCESS
     133                size = snprintf(__darwintrace_buf,
     134                                        BUFFER_SIZE, "%s[%d]\t%s\t%s\n",
     135                                        __darwintrace_progname, __darwintrace_pid,
     136                                        op, path );
    121137#else
    122                         size = snprintf(__darwintrace_buf,
    123                                                 BUFFER_SIZE, "%s\t%s/%s\n", op, somepath, path );
    124 #endif
    125                 } else {
    126 #if DARWINTRACE_SHOW_PROCESS
    127                         size = snprintf(__darwintrace_buf,
    128                                                 BUFFER_SIZE, "%s[%d]\t%s\t%s\n",
    129                                                 __darwintrace_progname, __darwintrace_pid,
    130                                                 op, path );
    131 #else
    132                         size = snprintf(__darwintrace_buf,
    133                                                 BUFFER_SIZE, "%s\t%s\n", op, path );
    134 #endif
    135                 }
    136         }
     138                size = snprintf(__darwintrace_buf,
     139                                        BUFFER_SIZE, "%s\t%s\n", op, path );
     140#endif
     141        }
     142
     143finish:
    137144        write(__darwintrace_fd, __darwintrace_buf, size);
    138145        fsync(__darwintrace_fd);
Note: See TracChangeset for help on using the changeset viewer.