Commit 4eacdb72 authored by Jim Jagielski's avatar Jim Jagielski
Browse files

Add ap_append_pid(); This is performed enough to warrant

a function I think, especially with the fact that
the mapping of getpid() to APR_PID_T_FMT isn't
consistant in some areas. 


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@265506 13f79535-47bb-0310-9956-ffa450edef68
parent 34a2a9f2
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1681,6 +1681,19 @@ AP_DECLARE(int) ap_rind(const char *str, char c);
 */
AP_DECLARE(char *) ap_escape_quotes(apr_pool_t *p, const char *instring);

/**
 * Given a string, append the PID deliminated by delim.
 * Usually used to create a pid-appended filepath name
 * (eg: /a/b/foo -> /a/b/foo.6726). A function, and not
 * a macro, to avoid unistd.h dependency
 * @param p The pool to allocate memory from
 * @param string The string to append the PID to
 * @param delim The string to use to deliminate the string from the PID
 * @return A copy of the string with the PID appended 
 */
AP_DECLARE(char *) ap_append_pid(apr_pool_t *p, const char *string,
                                 const char *delim);

/* Misc system hackery */
/**
 * Given the name of an object in the file system determine if it is a directory
+2 −3
Original line number Diff line number Diff line
@@ -812,8 +812,7 @@ static int cgid_start(apr_pool_t *p, server_rec *main_server,
static int cgid_pre_config(apr_pool_t *pconf, apr_pool_t *plog,
                           apr_pool_t *ptemp)
{
    sockname = apr_psprintf(pconf, "%s.%" APR_PID_T_FMT, DEFAULT_SOCKET, 
                            getpid());
    sockname = ap_append_pid(pconf, DEFAULT_SOCKET, ".");
    return OK;
}

@@ -929,7 +928,7 @@ static const char *set_script_socket(cmd_parms *cmd, void *dummy, const char *ar
    }
    
    /* Make sure the pid is appended to the sockname */
    sockname = apr_psprintf(cmd->pool, "%s.%" APR_PID_T_FMT, arg, getpid());
    sockname = ap_append_pid(cmd->pool, arg, ".");
    sockname = ap_server_root_relative(cmd->pool, sockname); 

    if (!sockname) {
+1 −1
Original line number Diff line number Diff line
@@ -648,7 +648,7 @@ static const char *log_server_name(request_rec *r, char *a)
static const char *log_pid_tid(request_rec *r, char *a)
{
    if (*a == '\0' || !strcmp(a, "pid")) {
        return apr_psprintf(r->pool, "%" APR_PID_T_FMT, getpid());
        return ap_append_pid(r->pool, "", "");
    }
    else if (!strcmp(a, "tid") || !strcmp(a, "hextid")) {
#if APR_HAS_THREADS
+3 −6
Original line number Diff line number Diff line
@@ -156,16 +156,13 @@ static void chdir_for_gprof(void)

    if(dir) {
        apr_status_t res;
        char buf[512];
        char *buf = NULL ;
        int len = strlen(sconf->gprof_dir) - 1;
        if(*(dir + len) == '%') {
            dir[len] = '\0';
            apr_snprintf(buf, sizeof(buf), "%sgprof.%d", dir, (int)getpid());
            buf = ap_append_pid(pconf, dir, "gprof.");
        }
        else {
            buf[0] = '\0';
        }
        use_dir = ap_server_root_relative(pconf, buf[0] ? buf : dir);
        use_dir = ap_server_root_relative(pconf, buf ? buf : dir);
        res = apr_dir_make(use_dir,
                           APR_UREAD | APR_UWRITE | APR_UEXECUTE |
                           APR_GREAD | APR_GEXECUTE |
+14 −0
Original line number Diff line number Diff line
@@ -2128,3 +2128,17 @@ AP_DECLARE(char *) ap_escape_quotes(apr_pool_t *p, const char *instring)
    *outchr = '\0';
    return outstring;
}

/*
 * Given a string, append the PID deliminated by delim.
 * Usually used to create a pid-appended filepath name
 * (eg: /a/b/foo -> /a/b/foo.6726). A function, and not
 * a macro, to avoid unistd.h dependency
 */
AP_DECLARE(char *) ap_append_pid(apr_pool_t *p, const char *string,
                                    const char *delim)
{
    return apr_psprintf(p, "%s%s%" APR_PID_T_FMT, string,
                        delim, getpid());

}