Projects
Browse Source     Search     Timeline     Wiki

Changeset 23526

Show
Ignore:
Timestamp:
03/03/08 16:46:00 (9 months ago)
Author:
zarzycki@…
Message:

Misc.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/launchd/src/launchd_core_logic.c

    r23525 r23526  
    60126012        struct ldcred *ldc = runtime_get_caller_creds(); 
    60136013        kern_return_t kr; 
     6014        bool per_pid_lookup = flags & BOOTSTRAP_PER_PID_SERVICE; 
    60146015 
    60156016        if (!launchd_assumes(j != NULL)) { 
     
    60246025#endif 
    60256026 
    6026         if (unlikely(!mspolicy_check(j, servicename, flags & BOOTSTRAP_PER_PID_SERVICE))) { 
     6027        if (unlikely(!mspolicy_check(j, servicename, per_pid_lookup))) { 
    60276028                job_log(j, LOG_NOTICE, "Policy denied Mach service lookup: %s", servicename); 
    60286029                return BOOTSTRAP_NOT_PRIVILEGED; 
    60296030        } 
    60306031 
    6031         if (flags & BOOTSTRAP_PER_PID_SERVICE) { 
     6032        if (per_pid_lookup) { 
    60326033                ms = jobmgr_lookup_service(j->mgr, servicename, false, target_pid); 
    60336034        } else { 
     
    60456046        if (likely(ms)) { 
    60466047                job_assumes(j, machservice_port(ms) != MACH_PORT_NULL); 
    6047                 job_log(j, LOG_DEBUG, "%sMach service lookup: %s", flags & BOOTSTRAP_PER_PID_SERVICE ? "Per PID " : "", servicename); 
    6048  
    6049                 if (unlikely(j->lastlookup == ms && j->lastlookup_gennum == ms->gen_num && !j->per_user)) { 
     6048                job_log(j, LOG_DEBUG, "%sMach service lookup: %s", per_pid_lookup ? "Per PID " : "", servicename); 
     6049 
     6050                if (unlikely(!per_pid_lookup && j->lastlookup == ms && j->lastlookup_gennum == ms->gen_num && !j->per_user)) { 
     6051                        /* we need to think more about the per_pid_lookup logic before logging about repeated lookups */ 
    60506052                        job_log(j, LOG_APPLEONLY, "Performance: Please fix the framework that talks to \"%s\" to cache the Mach port for service: %s", ms->job->label, servicename); 
    60516053                } 
     
    60576059 
    60586060                kr = BOOTSTRAP_SUCCESS; 
    6059         } else if (!(flags & BOOTSTRAP_PER_PID_SERVICE) && (inherited_bootstrap_port != MACH_PORT_NULL)) { 
     6061        } else if (!per_pid_lookup && (inherited_bootstrap_port != MACH_PORT_NULL)) { 
    60606062                job_log(j, LOG_DEBUG, "Mach service lookup forwarded: %s", servicename); 
    60616063                job_assumes(j, vproc_mig_look_up2_forward(inherited_bootstrap_port, srp, servicename, 0, 0) == 0); 
     
    60716073                return VPROC_ERR_TRY_PER_USER; 
    60726074        } else { 
    6073                 job_log(j, LOG_DEBUG, "%sMach service lookup failed: %s", flags & BOOTSTRAP_PER_PID_SERVICE ? "Per PID " : "", servicename); 
     6075                job_log(j, LOG_DEBUG, "%sMach service lookup failed: %s", per_pid_lookup ? "Per PID " : "", servicename); 
    60746076                kr = BOOTSTRAP_UNKNOWN_SERVICE; 
    60756077        }