GME  13
Defines
apr_arch_inherit.h File Reference

Go to the source code of this file.

Defines

#define APR_INHERIT   (1 << 24) /* Must not conflict with other bits */
#define APR_IMPLEMENT_INHERIT_SET(name, flag, pool, cleanup)
#define APR_IMPLEMENT_INHERIT_UNSET(name, flag, pool, cleanup)

Define Documentation

#define APR_IMPLEMENT_INHERIT_SET (   name,
  flag,
  pool,
  cleanup 
)
Value:
apr_status_t apr_##name##_inherit_set(apr_##name##_t *the##name)    \
{                                                                   \
    if (the##name->flag & APR_FOPEN_NOCLEANUP)                      \
        return APR_EINVAL;                                          \
    if (!(the##name->flag & APR_INHERIT)) {                         \
        int flags = fcntl(the##name->name##des, F_GETFD);           \
        if (flags == -1)                                            \
            return errno;                                           \
        flags &= ~(FD_CLOEXEC);                                     \
        if (fcntl(the##name->name##des, F_SETFD, flags) == -1)      \
            return errno;                                           \
        the##name->flag |= APR_INHERIT;                             \
        apr_pool_child_cleanup_set(the##name->pool,                 \
                                   (void *)the##name,               \
                                   cleanup, apr_pool_cleanup_null); \
    }                                                               \
    return APR_SUCCESS;                                             \
}

Definition at line 24 of file unix/apr_arch_inherit.h.

#define APR_IMPLEMENT_INHERIT_UNSET (   name,
  flag,
  pool,
  cleanup 
)
Value:
apr_status_t apr_##name##_inherit_unset(apr_##name##_t *the##name)  \
{                                                                   \
    if (the##name->flag & APR_FOPEN_NOCLEANUP)                      \
        return APR_EINVAL;                                          \
    if (the##name->flag & APR_INHERIT) {                            \
        int flags;                                                  \
        if ((flags = fcntl(the##name->name##des, F_GETFD)) == -1)   \
            return errno;                                           \
        flags |= FD_CLOEXEC;                                        \
        if (fcntl(the##name->name##des, F_SETFD, flags) == -1)      \
            return errno;                                           \
        the##name->flag &= ~APR_INHERIT;                            \
        apr_pool_child_cleanup_set(the##name->pool,                 \
                                   (void *)the##name,               \
                                   cleanup, cleanup);               \
    }                                                               \
    return APR_SUCCESS;                                             \
}

Definition at line 44 of file unix/apr_arch_inherit.h.

#define APR_INHERIT   (1 << 24) /* Must not conflict with other bits */

Definition at line 22 of file unix/apr_arch_inherit.h.