/*
* Copyright (C) 2004, 2007-2009, 2012 Internet Systems Consortium, Inc. ("ISC")
* Copyright (C) 2000, 2001 Internet Software Consortium.
*
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
* AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
* OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/* $Id$ */
#include <config.h>
#include <sys/resource.h>
#include <isc/platform.h>
#include <isc/resource.h>
#ifdef __linux__
#endif
#if defined(__hpux) && defined(HAVE_SYS_DYNTUNE_H)
#endif
#include "errno2result.h"
static isc_result_t
switch (resource) {
case isc_resource_coresize:
break;
case isc_resource_cputime:
break;
case isc_resource_datasize:
break;
case isc_resource_filesize:
break;
#ifdef RLIMIT_MEMLOCK
#else
#endif
break;
case isc_resource_openfiles:
#ifdef RLIMIT_NOFILE
#else
#endif
break;
case isc_resource_processes:
#ifdef RLIMIT_NPROC
#else
#endif
break;
#ifdef RLIMIT_RSS
#else
#endif
break;
case isc_resource_stacksize:
break;
default:
/*
* This test is not very robust if isc_resource_t
* changes, but generates a clear assertion message.
*/
break;
}
return (result);
}
int unixresult;
int unixresource;
if (result != ISC_R_SUCCESS)
return (result);
if (value == ISC_RESOURCE_UNLIMITED)
else {
/*
* isc_resourcevalue_t was chosen as an unsigned 64 bit
* integer so that it could contain the maximum range of
* reasonable values. Unfortunately, this exceeds the typical
* range on Unix systems. Ensure the range of
* ISC_PLATFORM_RLIMITTYPE is not overflowed.
*/
if (rlim_t_is_signed)
else
rlim_value = value;
}
if (unixresult == 0)
return (ISC_R_SUCCESS);
/*
* The Darwin kernel doesn't accept RLIM_INFINITY for rlim_cur; the
* maximum possible value is OPEN_MAX. BIND8 used to use
* sysconf(_SC_OPEN_MAX) for such a case, but this value is much
* smaller than OPEN_MAX and is not really effective.
*/
if (unixresult == 0)
return (ISC_R_SUCCESS);
}
#ifndef NR_OPEN
#endif
/*
* Some Linux kernels don't accept RLIM_INFINIT; the maximum
*/
if (unixresult == 0)
return (ISC_R_SUCCESS);
}
if (unixresult == 0)
return (ISC_R_SUCCESS);
}
}
#endif
if (unixresult == 0)
return (ISC_R_SUCCESS);
}
}
return (isc__errno2result(errno));
}
int unixresult;
int unixresource;
if (result == ISC_R_SUCCESS) {
INSIST(unixresult == 0);
}
return (result);
}
int unixresult;
int unixresource;
if (result == ISC_R_SUCCESS) {
INSIST(unixresult == 0);
}
return (result);
}