mirror of https://github.com/grpc/grpc.git
commit
1406f9c524
52 changed files with 1693 additions and 580 deletions
@ -0,0 +1,76 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2016 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#ifndef GRPC_CORE_LIB_SUPPORT_MANUAL_CONSTRUCTOR_H |
||||
#define GRPC_CORE_LIB_SUPPORT_MANUAL_CONSTRUCTOR_H |
||||
|
||||
// manually construct a region of memory with some type
|
||||
|
||||
#include <stddef.h> |
||||
#include <new> |
||||
#include <type_traits> |
||||
#include <utility> |
||||
|
||||
namespace grpc_core { |
||||
|
||||
template <typename Type> |
||||
class ManualConstructor { |
||||
public: |
||||
// No constructor or destructor because one of the most useful uses of
|
||||
// this class is as part of a union, and members of a union could not have
|
||||
// constructors or destructors till C++11. And, anyway, the whole point of
|
||||
// this class is to bypass constructor and destructor.
|
||||
|
||||
Type* get() { return reinterpret_cast<Type*>(&space_); } |
||||
const Type* get() const { return reinterpret_cast<const Type*>(&space_); } |
||||
|
||||
Type* operator->() { return get(); } |
||||
const Type* operator->() const { return get(); } |
||||
|
||||
Type& operator*() { return *get(); } |
||||
const Type& operator*() const { return *get(); } |
||||
|
||||
void Init() { new (&space_) Type; } |
||||
|
||||
// Init() constructs the Type instance using the given arguments
|
||||
// (which are forwarded to Type's constructor).
|
||||
//
|
||||
// Note that Init() with no arguments performs default-initialization,
|
||||
// not zero-initialization (i.e it behaves the same as "new Type;", not
|
||||
// "new Type();"), so it will leave non-class types uninitialized.
|
||||
template <typename... Ts> |
||||
void Init(Ts&&... args) { |
||||
new (&space_) Type(std::forward<Ts>(args)...); |
||||
} |
||||
|
||||
// Init() that is equivalent to copy and move construction.
|
||||
// Enables usage like this:
|
||||
// ManualConstructor<std::vector<int>> v;
|
||||
// v.Init({1, 2, 3});
|
||||
void Init(const Type& x) { new (&space_) Type(x); } |
||||
void Init(Type&& x) { new (&space_) Type(std::move(x)); } |
||||
|
||||
void Destroy() { get()->~Type(); } |
||||
|
||||
private: |
||||
typename std::aligned_storage<sizeof(Type), alignof(Type)>::type space_; |
||||
}; |
||||
|
||||
} // namespace grpc_core
|
||||
|
||||
#endif |
@ -0,0 +1,27 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2015 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
// This file is autogenerated from a template file. Please make
|
||||
// modifications to
|
||||
// `templates/src/objective-c/GRPCClient/private/version.h.template`
|
||||
// instead. This file can be regenerated from the template by running
|
||||
// `tools/buildgen/generate_projects.sh`.
|
||||
|
||||
|
||||
#define GRPC_OBJC_VERSION_STRING @"1.8.0-dev" |
||||
#define GRPC_C_VERSION_STRING @"5.0.0-dev" |
@ -0,0 +1,29 @@ |
||||
%YAML 1.2 |
||||
--- | |
||||
/* |
||||
* |
||||
* Copyright 2015 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
// This file is autogenerated from a template file. Please make |
||||
// modifications to |
||||
// `templates/src/objective-c/GRPCClient/private/version.h.template` |
||||
// instead. This file can be regenerated from the template by running |
||||
// `tools/buildgen/generate_projects.sh`. |
||||
|
||||
|
||||
#define GRPC_OBJC_VERSION_STRING @"${settings.version}" |
||||
#define GRPC_C_VERSION_STRING @"${settings.core_version}" |
@ -1,162 +0,0 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2016 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#include "src/core/lib/transport/bdp_estimator.h" |
||||
|
||||
#include <grpc/grpc.h> |
||||
#include <grpc/support/alloc.h> |
||||
#include <grpc/support/log.h> |
||||
#include <grpc/support/string_util.h> |
||||
#include <grpc/support/useful.h> |
||||
#include <limits.h> |
||||
#include "src/core/lib/iomgr/timer_manager.h" |
||||
#include "src/core/lib/support/string.h" |
||||
#include "test/core/util/test_config.h" |
||||
|
||||
extern gpr_timespec (*gpr_now_impl)(gpr_clock_type clock_type); |
||||
|
||||
static int g_clock = 0; |
||||
|
||||
static gpr_timespec fake_gpr_now(gpr_clock_type clock_type) { |
||||
return (gpr_timespec){ |
||||
.tv_sec = g_clock, .tv_nsec = 0, .clock_type = clock_type, |
||||
}; |
||||
} |
||||
|
||||
static void inc_time(void) { g_clock += 30; } |
||||
|
||||
static void test_noop(void) { |
||||
gpr_log(GPR_INFO, "test_noop"); |
||||
grpc_bdp_estimator est; |
||||
grpc_bdp_estimator_init(&est, "test"); |
||||
} |
||||
|
||||
static void test_get_estimate_no_samples(void) { |
||||
gpr_log(GPR_INFO, "test_get_estimate_no_samples"); |
||||
grpc_bdp_estimator est; |
||||
grpc_bdp_estimator_init(&est, "test"); |
||||
int64_t estimate; |
||||
grpc_bdp_estimator_get_estimate(&est, &estimate); |
||||
} |
||||
|
||||
static void add_samples(grpc_bdp_estimator *estimator, int64_t *samples, |
||||
size_t n) { |
||||
grpc_bdp_estimator_add_incoming_bytes(estimator, 1234567); |
||||
inc_time(); |
||||
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; |
||||
GPR_ASSERT(grpc_bdp_estimator_need_ping(&exec_ctx, estimator) == true); |
||||
grpc_bdp_estimator_schedule_ping(estimator); |
||||
grpc_bdp_estimator_start_ping(estimator); |
||||
for (size_t i = 0; i < n; i++) { |
||||
grpc_bdp_estimator_add_incoming_bytes(estimator, samples[i]); |
||||
GPR_ASSERT(grpc_bdp_estimator_need_ping(&exec_ctx, estimator) == false); |
||||
} |
||||
gpr_sleep_until(gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), |
||||
gpr_time_from_millis(1, GPR_TIMESPAN))); |
||||
grpc_bdp_estimator_complete_ping(&exec_ctx, estimator); |
||||
grpc_exec_ctx_finish(&exec_ctx); |
||||
} |
||||
|
||||
static void add_sample(grpc_bdp_estimator *estimator, int64_t sample) { |
||||
add_samples(estimator, &sample, 1); |
||||
} |
||||
|
||||
static void test_get_estimate_1_sample(void) { |
||||
gpr_log(GPR_INFO, "test_get_estimate_1_sample"); |
||||
grpc_bdp_estimator est; |
||||
grpc_bdp_estimator_init(&est, "test"); |
||||
add_sample(&est, 100); |
||||
int64_t estimate; |
||||
grpc_bdp_estimator_get_estimate(&est, &estimate); |
||||
} |
||||
|
||||
static void test_get_estimate_2_samples(void) { |
||||
gpr_log(GPR_INFO, "test_get_estimate_2_samples"); |
||||
grpc_bdp_estimator est; |
||||
grpc_bdp_estimator_init(&est, "test"); |
||||
add_sample(&est, 100); |
||||
add_sample(&est, 100); |
||||
int64_t estimate; |
||||
grpc_bdp_estimator_get_estimate(&est, &estimate); |
||||
} |
||||
|
||||
static int64_t get_estimate(grpc_bdp_estimator *estimator) { |
||||
int64_t out; |
||||
GPR_ASSERT(grpc_bdp_estimator_get_estimate(estimator, &out)); |
||||
return out; |
||||
} |
||||
|
||||
static void test_get_estimate_3_samples(void) { |
||||
gpr_log(GPR_INFO, "test_get_estimate_3_samples"); |
||||
grpc_bdp_estimator est; |
||||
grpc_bdp_estimator_init(&est, "test"); |
||||
add_sample(&est, 100); |
||||
add_sample(&est, 100); |
||||
add_sample(&est, 100); |
||||
int64_t estimate; |
||||
grpc_bdp_estimator_get_estimate(&est, &estimate); |
||||
} |
||||
|
||||
static int64_t next_pow_2(int64_t v) { |
||||
v--; |
||||
v |= v >> 1; |
||||
v |= v >> 2; |
||||
v |= v >> 4; |
||||
v |= v >> 8; |
||||
v |= v >> 16; |
||||
v |= v >> 32; |
||||
v++; |
||||
return v; |
||||
} |
||||
|
||||
static void test_get_estimate_random_values(size_t n) { |
||||
gpr_log(GPR_INFO, "test_get_estimate_random_values(%" PRIdPTR ")", n); |
||||
grpc_bdp_estimator est; |
||||
grpc_bdp_estimator_init(&est, "test"); |
||||
const int kMaxSample = 65535; |
||||
int min = kMaxSample; |
||||
int max = 0; |
||||
for (size_t i = 0; i < n; i++) { |
||||
int sample = rand() % (kMaxSample + 1); |
||||
if (sample < min) min = sample; |
||||
if (sample > max) max = sample; |
||||
add_sample(&est, sample); |
||||
if (i >= 3) { |
||||
gpr_log(GPR_DEBUG, "est:%" PRId64 " min:%d max:%d", get_estimate(&est), |
||||
min, max); |
||||
GPR_ASSERT(get_estimate(&est) <= GPR_MAX(65536, 2 * next_pow_2(max))); |
||||
} |
||||
} |
||||
} |
||||
|
||||
int main(int argc, char **argv) { |
||||
grpc_test_init(argc, argv); |
||||
gpr_now_impl = fake_gpr_now; |
||||
grpc_init(); |
||||
grpc_timer_manager_set_threading(false); |
||||
test_noop(); |
||||
test_get_estimate_no_samples(); |
||||
test_get_estimate_1_sample(); |
||||
test_get_estimate_2_samples(); |
||||
test_get_estimate_3_samples(); |
||||
for (size_t i = 3; i < 1000; i = i * 3 / 2) { |
||||
test_get_estimate_random_values(i); |
||||
} |
||||
grpc_shutdown(); |
||||
return 0; |
||||
} |
@ -0,0 +1,160 @@ |
||||
/*
|
||||
* |
||||
* Copyright 2016 gRPC authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
* |
||||
*/ |
||||
|
||||
#include "src/core/lib/transport/bdp_estimator.h" |
||||
|
||||
#include <grpc/grpc.h> |
||||
#include <grpc/support/alloc.h> |
||||
#include <grpc/support/log.h> |
||||
#include <grpc/support/string_util.h> |
||||
#include <grpc/support/useful.h> |
||||
#include <gtest/gtest.h> |
||||
#include <limits.h> |
||||
#include "src/core/lib/iomgr/timer_manager.h" |
||||
#include "src/core/lib/support/string.h" |
||||
#include "test/core/util/test_config.h" |
||||
|
||||
extern "C" gpr_timespec (*gpr_now_impl)(gpr_clock_type clock_type); |
||||
|
||||
namespace grpc_core { |
||||
namespace testing { |
||||
namespace { |
||||
int g_clock = 0; |
||||
|
||||
gpr_timespec fake_gpr_now(gpr_clock_type clock_type) { |
||||
gpr_timespec ts; |
||||
ts.tv_sec = g_clock; |
||||
ts.tv_nsec = 0; |
||||
ts.clock_type = clock_type; |
||||
return ts; |
||||
} |
||||
|
||||
void inc_time(void) { g_clock += 30; } |
||||
} // namespace
|
||||
|
||||
TEST(BdpEstimatorTest, NoOp) { BdpEstimator est("test"); } |
||||
|
||||
TEST(BdpEstimatorTest, EstimateBdpNoSamples) { |
||||
BdpEstimator est("test"); |
||||
int64_t estimate; |
||||
est.EstimateBdp(&estimate); |
||||
} |
||||
|
||||
namespace { |
||||
void AddSamples(BdpEstimator *estimator, int64_t *samples, size_t n) { |
||||
estimator->AddIncomingBytes(1234567); |
||||
inc_time(); |
||||
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT; |
||||
EXPECT_TRUE(estimator->NeedPing(&exec_ctx)); |
||||
estimator->SchedulePing(); |
||||
estimator->StartPing(); |
||||
for (size_t i = 0; i < n; i++) { |
||||
estimator->AddIncomingBytes(samples[i]); |
||||
EXPECT_FALSE(estimator->NeedPing(&exec_ctx)); |
||||
} |
||||
gpr_sleep_until(gpr_time_add(gpr_now(GPR_CLOCK_REALTIME), |
||||
gpr_time_from_millis(1, GPR_TIMESPAN))); |
||||
grpc_exec_ctx_invalidate_now(&exec_ctx); |
||||
estimator->CompletePing(&exec_ctx); |
||||
grpc_exec_ctx_finish(&exec_ctx); |
||||
} |
||||
|
||||
void AddSample(BdpEstimator *estimator, int64_t sample) { |
||||
AddSamples(estimator, &sample, 1); |
||||
} |
||||
} // namespace
|
||||
|
||||
TEST(BdpEstimatorTest, GetEstimate1Sample) { |
||||
BdpEstimator est("test"); |
||||
AddSample(&est, 100); |
||||
int64_t estimate; |
||||
est.EstimateBdp(&estimate); |
||||
} |
||||
|
||||
TEST(BdpEstimatorTest, GetEstimate2Samples) { |
||||
BdpEstimator est("test"); |
||||
AddSample(&est, 100); |
||||
AddSample(&est, 100); |
||||
int64_t estimate; |
||||
est.EstimateBdp(&estimate); |
||||
} |
||||
|
||||
TEST(BdpEstimatorTest, GetEstimate3Samples) { |
||||
BdpEstimator est("test"); |
||||
AddSample(&est, 100); |
||||
AddSample(&est, 100); |
||||
AddSample(&est, 100); |
||||
int64_t estimate; |
||||
est.EstimateBdp(&estimate); |
||||
} |
||||
|
||||
namespace { |
||||
static int64_t GetEstimate(const BdpEstimator &estimator) { |
||||
int64_t out; |
||||
EXPECT_TRUE(estimator.EstimateBdp(&out)); |
||||
return out; |
||||
} |
||||
|
||||
int64_t NextPow2(int64_t v) { |
||||
v--; |
||||
v |= v >> 1; |
||||
v |= v >> 2; |
||||
v |= v >> 4; |
||||
v |= v >> 8; |
||||
v |= v >> 16; |
||||
v |= v >> 32; |
||||
v++; |
||||
return v; |
||||
} |
||||
} // namespace
|
||||
|
||||
class BdpEstimatorRandomTest : public ::testing::TestWithParam<size_t> {}; |
||||
|
||||
TEST_P(BdpEstimatorRandomTest, GetEstimateRandomValues) { |
||||
BdpEstimator est("test"); |
||||
const int kMaxSample = 65535; |
||||
int min = kMaxSample; |
||||
int max = 0; |
||||
for (size_t i = 0; i < GetParam(); i++) { |
||||
int sample = rand() % (kMaxSample + 1); |
||||
if (sample < min) min = sample; |
||||
if (sample > max) max = sample; |
||||
AddSample(&est, sample); |
||||
if (i >= 3) { |
||||
EXPECT_LE(GetEstimate(est), GPR_MAX(65536, 2 * NextPow2(max))) |
||||
<< " min:" << min << " max:" << max << " sample:" << sample; |
||||
} |
||||
} |
||||
} |
||||
|
||||
INSTANTIATE_TEST_CASE_P(TooManyNames, BdpEstimatorRandomTest, |
||||
::testing::Values(3, 4, 6, 9, 13, 19, 28, 42, 63, 94, |
||||
141, 211, 316, 474, 711)); |
||||
} // namespace testing
|
||||
} // namespace grpc_core
|
||||
|
||||
int main(int argc, char **argv) { |
||||
grpc_test_init(argc, argv); |
||||
gpr_now_impl = grpc_core::testing::fake_gpr_now; |
||||
grpc_init(); |
||||
grpc_timer_manager_set_threading(false); |
||||
::testing::InitGoogleTest(&argc, argv); |
||||
int ret = RUN_ALL_TESTS(); |
||||
grpc_shutdown(); |
||||
return ret; |
||||
} |
@ -0,0 +1,502 @@ |
||||
/* ares_config.h. Generated from ares_config.h.in by configure. */ |
||||
/* ares_config.h.in. Generated from configure.ac by autoheader. */ |
||||
|
||||
/* Define if building universal (internal helper macro) */ |
||||
/* #undef AC_APPLE_UNIVERSAL_BUILD */ |
||||
|
||||
/* define this if ares is built for a big endian system */ |
||||
/* #undef ARES_BIG_ENDIAN */ |
||||
|
||||
/* when building as static part of libcurl */ |
||||
/* #undef BUILDING_LIBCURL */ |
||||
|
||||
/* Defined for build that exposes internal static functions for testing. */ |
||||
/* #undef CARES_EXPOSE_STATICS */ |
||||
|
||||
/* Defined for build with symbol hiding. */ |
||||
#define CARES_SYMBOL_HIDING 1 |
||||
|
||||
/* Definition to make a library symbol externally visible. */ |
||||
#define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default"))) |
||||
|
||||
/* the signed version of size_t */ |
||||
#define CARES_TYPEOF_ARES_SSIZE_T ssize_t |
||||
|
||||
/* Use resolver library to configure cares */ |
||||
/* #undef CARES_USE_LIBRESOLV */ |
||||
|
||||
/* if a /etc/inet dir is being used */ |
||||
/* #undef ETC_INET */ |
||||
|
||||
/* Define to the type of arg 2 for gethostname. */ |
||||
#define GETHOSTNAME_TYPE_ARG2 size_t |
||||
|
||||
/* Define to the type qualifier of arg 1 for getnameinfo. */ |
||||
#define GETNAMEINFO_QUAL_ARG1 const |
||||
|
||||
/* Define to the type of arg 1 for getnameinfo. */ |
||||
#define GETNAMEINFO_TYPE_ARG1 struct sockaddr * |
||||
|
||||
/* Define to the type of arg 2 for getnameinfo. */ |
||||
#define GETNAMEINFO_TYPE_ARG2 socklen_t |
||||
|
||||
/* Define to the type of args 4 and 6 for getnameinfo. */ |
||||
#define GETNAMEINFO_TYPE_ARG46 size_t |
||||
|
||||
/* Define to the type of arg 7 for getnameinfo. */ |
||||
#define GETNAMEINFO_TYPE_ARG7 int |
||||
|
||||
/* Specifies the number of arguments to getservbyport_r */ |
||||
#define GETSERVBYPORT_R_ARGS 4 |
||||
|
||||
/* Specifies the size of the buffer to pass to getservbyport_r */ |
||||
#define GETSERVBYPORT_R_BUFSIZE sizeof(struct servent_data) |
||||
|
||||
/* Define to 1 if you have AF_INET6. */ |
||||
#define HAVE_AF_INET6 1 |
||||
|
||||
/* Define to 1 if you have the <arpa/inet.h> header file. */ |
||||
#define HAVE_ARPA_INET_H 1 |
||||
|
||||
/* Define to 1 if you have the <arpa/nameser_compat.h> header file. */ |
||||
/* #undef HAVE_ARPA_NAMESER_COMPAT_H */ |
||||
|
||||
/* Define to 1 if you have the <arpa/nameser.h> header file. */ |
||||
#define HAVE_ARPA_NAMESER_H 1 |
||||
|
||||
/* Define to 1 if you have the <assert.h> header file. */ |
||||
#define HAVE_ASSERT_H 1 |
||||
|
||||
/* Define to 1 if you have the `bitncmp' function. */ |
||||
/* #undef HAVE_BITNCMP */ |
||||
|
||||
/* Define to 1 if bool is an available type. */ |
||||
#define HAVE_BOOL_T 1 |
||||
|
||||
/* Define to 1 if you have the clock_gettime function and monotonic timer. */ |
||||
#define HAVE_CLOCK_GETTIME_MONOTONIC 1 |
||||
|
||||
/* Define to 1 if you have the closesocket function. */ |
||||
/* #undef HAVE_CLOSESOCKET */ |
||||
|
||||
/* Define to 1 if you have the CloseSocket camel case function. */ |
||||
/* #undef HAVE_CLOSESOCKET_CAMEL */ |
||||
|
||||
/* Define to 1 if you have the connect function. */ |
||||
#define HAVE_CONNECT 1 |
||||
|
||||
/* define if the compiler supports basic C++11 syntax */ |
||||
/* #undef HAVE_CXX11 */ |
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */ |
||||
#define HAVE_DLFCN_H 1 |
||||
|
||||
/* Define to 1 if you have the <errno.h> header file. */ |
||||
#define HAVE_ERRNO_H 1 |
||||
|
||||
/* Define to 1 if you have the fcntl function. */ |
||||
#define HAVE_FCNTL 1 |
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */ |
||||
#define HAVE_FCNTL_H 1 |
||||
|
||||
/* Define to 1 if you have a working fcntl O_NONBLOCK function. */ |
||||
#define HAVE_FCNTL_O_NONBLOCK 1 |
||||
|
||||
/* Define to 1 if you have the freeaddrinfo function. */ |
||||
#define HAVE_FREEADDRINFO 1 |
||||
|
||||
/* Define to 1 if you have a working getaddrinfo function. */ |
||||
#define HAVE_GETADDRINFO 1 |
||||
|
||||
/* Define to 1 if the getaddrinfo function is threadsafe. */ |
||||
/* #undef HAVE_GETADDRINFO_THREADSAFE */ |
||||
|
||||
/* Define to 1 if you have the getenv function. */ |
||||
#define HAVE_GETENV 1 |
||||
|
||||
/* Define to 1 if you have the gethostbyaddr function. */ |
||||
#define HAVE_GETHOSTBYADDR 1 |
||||
|
||||
/* Define to 1 if you have the gethostbyname function. */ |
||||
#define HAVE_GETHOSTBYNAME 1 |
||||
|
||||
/* Define to 1 if you have the gethostname function. */ |
||||
#define HAVE_GETHOSTNAME 1 |
||||
|
||||
/* Define to 1 if you have the getnameinfo function. */ |
||||
#define HAVE_GETNAMEINFO 1 |
||||
|
||||
/* Define to 1 if you have the getservbyport_r function. */ |
||||
#define HAVE_GETSERVBYPORT_R 1 |
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */ |
||||
#define HAVE_GETTIMEOFDAY 1 |
||||
|
||||
/* Define to 1 if you have the `if_indextoname' function. */ |
||||
#define HAVE_IF_INDEXTONAME 1 |
||||
|
||||
/* Define to 1 if you have a IPv6 capable working inet_net_pton function. */ |
||||
/* #undef HAVE_INET_NET_PTON */ |
||||
|
||||
/* Define to 1 if you have a IPv6 capable working inet_ntop function. */ |
||||
#define HAVE_INET_NTOP 1 |
||||
|
||||
/* Define to 1 if you have a IPv6 capable working inet_pton function. */ |
||||
#define HAVE_INET_PTON 1 |
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */ |
||||
#define HAVE_INTTYPES_H 1 |
||||
|
||||
/* Define to 1 if you have the ioctl function. */ |
||||
#define HAVE_IOCTL 1 |
||||
|
||||
/* Define to 1 if you have the ioctlsocket function. */ |
||||
/* #undef HAVE_IOCTLSOCKET */ |
||||
|
||||
/* Define to 1 if you have the IoctlSocket camel case function. */ |
||||
/* #undef HAVE_IOCTLSOCKET_CAMEL */ |
||||
|
||||
/* Define to 1 if you have a working IoctlSocket camel case FIONBIO function.
|
||||
*/ |
||||
/* #undef HAVE_IOCTLSOCKET_CAMEL_FIONBIO */ |
||||
|
||||
/* Define to 1 if you have a working ioctlsocket FIONBIO function. */ |
||||
/* #undef HAVE_IOCTLSOCKET_FIONBIO */ |
||||
|
||||
/* Define to 1 if you have a working ioctl FIONBIO function. */ |
||||
#define HAVE_IOCTL_FIONBIO 1 |
||||
|
||||
/* Define to 1 if you have a working ioctl SIOCGIFADDR function. */ |
||||
#define HAVE_IOCTL_SIOCGIFADDR 1 |
||||
|
||||
/* Define to 1 if you have the `resolve' library (-lresolve). */ |
||||
/* #undef HAVE_LIBRESOLVE */ |
||||
|
||||
/* Define to 1 if you have the <limits.h> header file. */ |
||||
#define HAVE_LIMITS_H 1 |
||||
|
||||
/* if your compiler supports LL */ |
||||
#define HAVE_LL 1 |
||||
|
||||
/* Define to 1 if the compiler supports the 'long long' data type. */ |
||||
#define HAVE_LONGLONG 1 |
||||
|
||||
/* Define to 1 if you have the malloc.h header file. */ |
||||
/* #undef HAVE_MALLOC_H */ |
||||
|
||||
/* Define to 1 if you have the memory.h header file. */ |
||||
#define HAVE_MEMORY_H 1 |
||||
|
||||
/* Define to 1 if you have the MSG_NOSIGNAL flag. */ |
||||
#define HAVE_MSG_NOSIGNAL 1 |
||||
|
||||
/* Define to 1 if you have the <netdb.h> header file. */ |
||||
#define HAVE_NETDB_H 1 |
||||
|
||||
/* Define to 1 if you have the <netinet/in.h> header file. */ |
||||
#define HAVE_NETINET_IN_H 1 |
||||
|
||||
/* Define to 1 if you have the <netinet/tcp.h> header file. */ |
||||
#define HAVE_NETINET_TCP_H 1 |
||||
|
||||
/* Define to 1 if you have the <net/if.h> header file. */ |
||||
#define HAVE_NET_IF_H 1 |
||||
|
||||
/* Define to 1 if you have PF_INET6. */ |
||||
#define HAVE_PF_INET6 1 |
||||
|
||||
/* Define to 1 if you have the recv function. */ |
||||
#define HAVE_RECV 1 |
||||
|
||||
/* Define to 1 if you have the recvfrom function. */ |
||||
#define HAVE_RECVFROM 1 |
||||
|
||||
/* Define to 1 if you have the send function. */ |
||||
#define HAVE_SEND 1 |
||||
|
||||
/* Define to 1 if you have the setsockopt function. */ |
||||
#define HAVE_SETSOCKOPT 1 |
||||
|
||||
/* Define to 1 if you have a working setsockopt SO_NONBLOCK function. */ |
||||
/* #undef HAVE_SETSOCKOPT_SO_NONBLOCK */ |
||||
|
||||
/* Define to 1 if you have the <signal.h> header file. */ |
||||
#define HAVE_SIGNAL_H 1 |
||||
|
||||
/* Define to 1 if sig_atomic_t is an available typedef. */ |
||||
#define HAVE_SIG_ATOMIC_T 1 |
||||
|
||||
/* Define to 1 if sig_atomic_t is already defined as volatile. */ |
||||
/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */ |
||||
|
||||
/* Define to 1 if your struct sockaddr_in6 has sin6_scope_id. */ |
||||
#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1 |
||||
|
||||
/* Define to 1 if you have the socket function. */ |
||||
#define HAVE_SOCKET 1 |
||||
|
||||
/* Define to 1 if you have the <socket.h> header file. */ |
||||
/* #undef HAVE_SOCKET_H */ |
||||
|
||||
/* Define to 1 if you have the <stdbool.h> header file. */ |
||||
#define HAVE_STDBOOL_H 1 |
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */ |
||||
#define HAVE_STDINT_H 1 |
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */ |
||||
#define HAVE_STDLIB_H 1 |
||||
|
||||
/* Define to 1 if you have the strcasecmp function. */ |
||||
#define HAVE_STRCASECMP 1 |
||||
|
||||
/* Define to 1 if you have the strcmpi function. */ |
||||
/* #undef HAVE_STRCMPI */ |
||||
|
||||
/* Define to 1 if you have the strdup function. */ |
||||
#define HAVE_STRDUP 1 |
||||
|
||||
/* Define to 1 if you have the stricmp function. */ |
||||
/* #undef HAVE_STRICMP */ |
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */ |
||||
#define HAVE_STRINGS_H 1 |
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */ |
||||
#define HAVE_STRING_H 1 |
||||
|
||||
/* Define to 1 if you have the strncasecmp function. */ |
||||
#define HAVE_STRNCASECMP 1 |
||||
|
||||
/* Define to 1 if you have the strncmpi function. */ |
||||
/* #undef HAVE_STRNCMPI */ |
||||
|
||||
/* Define to 1 if you have the strnicmp function. */ |
||||
/* #undef HAVE_STRNICMP */ |
||||
|
||||
/* Define to 1 if you have the <stropts.h> header file. */ |
||||
/* #undef HAVE_STROPTS_H */ |
||||
|
||||
/* Define to 1 if you have struct addrinfo. */ |
||||
#define HAVE_STRUCT_ADDRINFO 1 |
||||
|
||||
/* Define to 1 if you have struct in6_addr. */ |
||||
#define HAVE_STRUCT_IN6_ADDR 1 |
||||
|
||||
/* Define to 1 if you have struct sockaddr_in6. */ |
||||
#define HAVE_STRUCT_SOCKADDR_IN6 1 |
||||
|
||||
/* if struct sockaddr_storage is defined */ |
||||
#define HAVE_STRUCT_SOCKADDR_STORAGE 1 |
||||
|
||||
/* Define to 1 if you have the timeval struct. */ |
||||
#define HAVE_STRUCT_TIMEVAL 1 |
||||
|
||||
/* Define to 1 if you have the <sys/ioctl.h> header file. */ |
||||
#define HAVE_SYS_IOCTL_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */ |
||||
#define HAVE_SYS_PARAM_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/select.h> header file. */ |
||||
#define HAVE_SYS_SELECT_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/socket.h> header file. */ |
||||
#define HAVE_SYS_SOCKET_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */ |
||||
#define HAVE_SYS_STAT_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */ |
||||
#define HAVE_SYS_TIME_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */ |
||||
#define HAVE_SYS_TYPES_H 1 |
||||
|
||||
/* Define to 1 if you have the <sys/uio.h> header file. */ |
||||
#define HAVE_SYS_UIO_H 1 |
||||
|
||||
/* Define to 1 if you have the <time.h> header file. */ |
||||
#define HAVE_TIME_H 1 |
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */ |
||||
#define HAVE_UNISTD_H 1 |
||||
|
||||
/* Define to 1 if you have the windows.h header file. */ |
||||
/* #undef HAVE_WINDOWS_H */ |
||||
|
||||
/* Define to 1 if you have the winsock2.h header file. */ |
||||
/* #undef HAVE_WINSOCK2_H */ |
||||
|
||||
/* Define to 1 if you have the winsock.h header file. */ |
||||
/* #undef HAVE_WINSOCK_H */ |
||||
|
||||
/* Define to 1 if you have the writev function. */ |
||||
#define HAVE_WRITEV 1 |
||||
|
||||
/* Define to 1 if you have the ws2tcpip.h header file. */ |
||||
/* #undef HAVE_WS2TCPIP_H */ |
||||
|
||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */ |
||||
#define LT_OBJDIR ".libs/" |
||||
|
||||
/* Define to 1 if you need the malloc.h header file even with stdlib.h */ |
||||
/* #undef NEED_MALLOC_H */ |
||||
|
||||
/* Define to 1 if you need the memory.h header file even with stdlib.h */ |
||||
/* #undef NEED_MEMORY_H */ |
||||
|
||||
/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */ |
||||
/* #undef NEED_REENTRANT */ |
||||
|
||||
/* Define to 1 if _THREAD_SAFE preprocessor symbol must be defined. */ |
||||
/* #undef NEED_THREAD_SAFE */ |
||||
|
||||
/* cpu-machine-OS */ |
||||
#define OS "x86_64-unknown-openbsd6.2" |
||||
|
||||
/* Name of package */ |
||||
#define PACKAGE "c-ares" |
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */ |
||||
#define PACKAGE_BUGREPORT "c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares"
|
||||
|
||||
/* Define to the full name of this package. */ |
||||
#define PACKAGE_NAME "c-ares" |
||||
|
||||
/* Define to the full name and version of this package. */ |
||||
#define PACKAGE_STRING "c-ares 1.13.0" |
||||
|
||||
/* Define to the one symbol short name of this package. */ |
||||
#define PACKAGE_TARNAME "c-ares" |
||||
|
||||
/* Define to the home page for this package. */ |
||||
#define PACKAGE_URL "" |
||||
|
||||
/* Define to the version of this package. */ |
||||
#define PACKAGE_VERSION "1.13.0" |
||||
|
||||
/* a suitable file/device to read random data from */ |
||||
#define RANDOM_FILE "/dev/urandom" |
||||
|
||||
/* Define to the type qualifier pointed by arg 5 for recvfrom. */ |
||||
#define RECVFROM_QUAL_ARG5 |
||||
|
||||
/* Define to the type of arg 1 for recvfrom. */ |
||||
#define RECVFROM_TYPE_ARG1 int |
||||
|
||||
/* Define to the type pointed by arg 2 for recvfrom. */ |
||||
#define RECVFROM_TYPE_ARG2 void |
||||
|
||||
/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */ |
||||
#define RECVFROM_TYPE_ARG2_IS_VOID 1 |
||||
|
||||
/* Define to the type of arg 3 for recvfrom. */ |
||||
#define RECVFROM_TYPE_ARG3 size_t |
||||
|
||||
/* Define to the type of arg 4 for recvfrom. */ |
||||
#define RECVFROM_TYPE_ARG4 int |
||||
|
||||
/* Define to the type pointed by arg 5 for recvfrom. */ |
||||
#define RECVFROM_TYPE_ARG5 struct sockaddr |
||||
|
||||
/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */ |
||||
/* #undef RECVFROM_TYPE_ARG5_IS_VOID */ |
||||
|
||||
/* Define to the type pointed by arg 6 for recvfrom. */ |
||||
#define RECVFROM_TYPE_ARG6 socklen_t |
||||
|
||||
/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */ |
||||
/* #undef RECVFROM_TYPE_ARG6_IS_VOID */ |
||||
|
||||
/* Define to the function return type for recvfrom. */ |
||||
#define RECVFROM_TYPE_RETV ssize_t |
||||
|
||||
/* Define to the type of arg 1 for recv. */ |
||||
#define RECV_TYPE_ARG1 int |
||||
|
||||
/* Define to the type of arg 2 for recv. */ |
||||
#define RECV_TYPE_ARG2 void * |
||||
|
||||
/* Define to the type of arg 3 for recv. */ |
||||
#define RECV_TYPE_ARG3 size_t |
||||
|
||||
/* Define to the type of arg 4 for recv. */ |
||||
#define RECV_TYPE_ARG4 int |
||||
|
||||
/* Define to the function return type for recv. */ |
||||
#define RECV_TYPE_RETV ssize_t |
||||
|
||||
/* Define as the return type of signal handlers (`int' or `void'). */ |
||||
#define RETSIGTYPE void |
||||
|
||||
/* Define to the type qualifier of arg 2 for send. */ |
||||
#define SEND_QUAL_ARG2 const |
||||
|
||||
/* Define to the type of arg 1 for send. */ |
||||
#define SEND_TYPE_ARG1 int |
||||
|
||||
/* Define to the type of arg 2 for send. */ |
||||
#define SEND_TYPE_ARG2 void * |
||||
|
||||
/* Define to the type of arg 3 for send. */ |
||||
#define SEND_TYPE_ARG3 size_t |
||||
|
||||
/* Define to the type of arg 4 for send. */ |
||||
#define SEND_TYPE_ARG4 int |
||||
|
||||
/* Define to the function return type for send. */ |
||||
#define SEND_TYPE_RETV ssize_t |
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */ |
||||
#define STDC_HEADERS 1 |
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */ |
||||
#define TIME_WITH_SYS_TIME 1 |
||||
|
||||
/* Define to disable non-blocking sockets. */ |
||||
/* #undef USE_BLOCKING_SOCKETS */ |
||||
|
||||
/* Version number of package */ |
||||
#define VERSION "1.13.0" |
||||
|
||||
/* Define to avoid automatic inclusion of winsock.h */ |
||||
/* #undef WIN32_LEAN_AND_MEAN */ |
||||
|
||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||
significant byte first (like Motorola and SPARC, unlike Intel). */ |
||||
#if defined AC_APPLE_UNIVERSAL_BUILD |
||||
# if defined __BIG_ENDIAN__ |
||||
# define WORDS_BIGENDIAN 1 |
||||
# endif |
||||
#else |
||||
# ifndef WORDS_BIGENDIAN |
||||
/* # undef WORDS_BIGENDIAN */ |
||||
# endif |
||||
#endif |
||||
|
||||
/* Define to 1 if OS is AIX. */ |
||||
#ifndef _ALL_SOURCE |
||||
/* # undef _ALL_SOURCE */ |
||||
#endif |
||||
|
||||
/* Enable large inode numbers on Mac OS X 10.5. */ |
||||
#ifndef _DARWIN_USE_64_BIT_INODE |
||||
# define _DARWIN_USE_64_BIT_INODE 1 |
||||
#endif |
||||
|
||||
/* Number of bits in a file offset, on hosts where this is settable. */ |
||||
/* #undef _FILE_OFFSET_BITS */ |
||||
|
||||
/* Define for large files, on AIX-style hosts. */ |
||||
/* #undef _LARGE_FILES */ |
||||
|
||||
/* Define to empty if `const' does not conform to ANSI C. */ |
||||
/* #undef const */ |
||||
|
||||
/* Type to use in place of in_addr_t when system does not provide it. */ |
||||
/* #undef in_addr_t */ |
||||
|
||||
/* Define to `unsigned int' if <sys/types.h> does not define. */ |
||||
/* #undef size_t */ |
Loading…
Reference in new issue