Skip to content
项目
群组
代码片段
帮助
正在加载...
登录
切换导航
F
freeswitch
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分枝图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
分枝图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
张华
freeswitch
Commits
85602f9b
提交
85602f9b
authored
3月 25, 2011
作者:
Jeff Lenk
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add win ldns project for vs2010
上级
294b0779
显示空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
1449 行增加
和
0 行删除
+1449
-0
config.h
libs/win32/ldns/ldns-lib/config.h
+439
-0
ldns-lib.2010.vcxproj
libs/win32/ldns/ldns-lib/ldns-lib.2010.vcxproj
+231
-0
ldns-lib.2010.vcxproj.filters
libs/win32/ldns/ldns-lib/ldns-lib.2010.vcxproj.filters
+258
-0
net.h
libs/win32/ldns/ldns-lib/net.h
+195
-0
util.h
libs/win32/ldns/ldns-lib/util.h
+326
-0
没有找到文件。
libs/win32/ldns/ldns-lib/config.h
0 → 100644
浏览文件 @
85602f9b
/* ldns/config.h.in. Generated from configure.ac by autoheader. */
/* Define if building universal (internal helper macro) */
#undef AC_APPLE_UNIVERSAL_BUILD
/* Define to 1 if you have the <arpa/inet.h> header file. */
#undef HAVE_ARPA_INET_H
/* Whether the C compiler accepts the "format" attribute */
#undef HAVE_ATTR_FORMAT
/* Whether the C compiler accepts the "unused" attribute */
#undef HAVE_ATTR_UNUSED
/* Define to 1 if you have the `b32_ntop' function. */
#undef HAVE_B32_NTOP
/* Define to 1 if you have the `b32_pton' function. */
#undef HAVE_B32_PTON
/* Define to 1 if you have the `b64_ntop' function. */
#undef HAVE_B64_NTOP
/* Define to 1 if you have the `b64_pton' function. */
#undef HAVE_B64_PTON
/* Define to 1 if you have the `ctime_r' function. */
#undef HAVE_CTIME_R
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Define to 1 if you have the `endprotoent' function. */
#undef HAVE_ENDPROTOENT
/* Define to 1 if you have the `endservent' function. */
#undef HAVE_ENDSERVENT
/* Define to 1 if you have the `EVP_sha256' function. */
#undef HAVE_EVP_SHA256
/* Whether getaddrinfo is available */
#undef HAVE_GETADDRINFO
/* Define to 1 if you have the <getopt.h> header file. */
#undef HAVE_GETOPT_H
/* Define to 1 if you have the `gmtime_r' function. */
#undef HAVE_GMTIME_R
/* If you have HMAC_CTX_init */
#undef HAVE_HMAC_CTX_INIT
/* Define to 1 if you have the `inet_aton' function. */
#undef HAVE_INET_ATON
/* Define to 1 if you have the `inet_ntop' function. */
#undef HAVE_INET_NTOP
/* Define to 1 if you have the `inet_pton' function. */
#undef HAVE_INET_PTON
/* define if you have inttypes.h */
#undef HAVE_INTTYPES_H
/* Define to 1 if you have the `isblank' function. */
#undef HAVE_ISBLANK
/* Define to 1 if you have the `crypto' library (-lcrypto). */
#undef HAVE_LIBCRYPTO
/* Define to 1 if you have the `nsl' library (-lnsl). */
#undef HAVE_LIBNSL
/* Define to 1 if you have the `socket' library (-lsocket). */
#undef HAVE_LIBSOCKET
/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
to 0 otherwise. */
#define HAVE_MALLOC 1
/* Define to 1 if you have the `memmove' function. */
#define HAVE_MEMMOVE 1
/* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H
/* Define to 1 if you have the <netdb.h> header file. */
#undef HAVE_NETDB_H
/* Define to 1 if you have the <netinet/in.h> header file. */
#undef HAVE_NETINET_IN_H
/* Define to 1 if you have the <openssl/err.h> header file. */
#undef HAVE_OPENSSL_ERR_H
/* Define to 1 if you have the <openssl/rand.h> header file. */
#undef HAVE_OPENSSL_RAND_H
/* Define to 1 if you have the <openssl/ssl.h> header file. */
#undef HAVE_OPENSSL_SSL_H
/* Define to 1 if you have the `random' function. */
#define HAVE_RANDOM 1
/* Define to 1 if your system has a GNU libc compatible `realloc' function,
and to 0 otherwise. */
#define HAVE_REALLOC 1
/* Define to 1 if you have the `sleep' function. */
#undef HAVE_SLEEP
/* Define to 1 if you have the `snprintf' function. */
#define HAVE_SNPRINTF 1
/* Define if you have the SSL libraries installed. */
#undef HAVE_SSL
/* Define to 1 if you have the <stdarg.h> header file. */
#undef HAVE_STDARG_H
/* Define to 1 if you have the <stdbool.h> header file. */
#undef HAVE_STDBOOL_H
/* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY
/* Define to 1 if you have the <sys/mount.h> header file. */
#undef HAVE_SYS_MOUNT_H
/* Define to 1 if you have the <sys/param.h> header file. */
#undef HAVE_SYS_PARAM_H
/* define if you have sys/socket.h */
#undef HAVE_SYS_SOCKET_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the `timegm' function. */
#undef HAVE_TIMEGM
/* Define to 1 if you have the <time.h> header file. */
#undef HAVE_TIME_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the <winsock2.h> header file. */
#define HAVE_WINSOCK2_H 1
/* Define to 1 if you have the <ws2tcpip.h> header file. */
#undef HAVE_WS2TCPIP_H
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
/* Define to the address where bug reports for this package should be sent. */
#undef PACKAGE_BUGREPORT
/* Define to the full name of this package. */
#undef PACKAGE_NAME
/* Define to the full name and version of this package. */
#undef PACKAGE_STRING
/* Define to the one symbol short name of this package. */
#undef PACKAGE_TARNAME
/* Define to the version of this package. */
#undef PACKAGE_VERSION
/* Define to 1 if you have the ANSI C header files. */
#undef STDC_HEADERS
/* System configuration dir */
#undef SYSCONFDIR
/* Define this to enable GOST support. */
#undef USE_GOST
/* Define this to enable SHA256 and SHA512 support. */
#undef USE_SHA2
/* Enable extensions on AIX 3, Interix. */
#ifndef _ALL_SOURCE
# undef _ALL_SOURCE
#endif
/* Enable GNU extensions on systems that have them. */
#ifndef _GNU_SOURCE
# undef _GNU_SOURCE
#endif
/* Enable threading extensions on Solaris. */
#ifndef _POSIX_PTHREAD_SEMANTICS
# undef _POSIX_PTHREAD_SEMANTICS
#endif
/* Enable extensions on HP NonStop. */
#ifndef _TANDEM_SOURCE
# undef _TANDEM_SOURCE
#endif
/* Enable general extensions on Solaris. */
#ifndef __EXTENSIONS__
# undef __EXTENSIONS__
#endif
/* Whether the windows socket API is used */
#define USE_WINSOCK
/* the version of the windows API enabled */
//#undef WINVER
/* 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 on MINIX. */
#undef _MINIX
/* Define to 2 if the system does not provide POSIX.1 features except with
this defined. */
#undef _POSIX_1_SOURCE
/* Define to 1 if you need to in order for `stat' and other things to work. */
#undef _POSIX_SOURCE
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* in_addr_t */
#undef in_addr_t
/* in_port_t */
#undef in_port_t
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
#ifndef __cplusplus
#define inline
#endif
/* Define to `short' if <sys/types.h> does not define. */
#undef int16_t
/* Define to `int' if <sys/types.h> does not define. */
#undef int32_t
/* Define to `long long' if <sys/types.h> does not define. */
#undef int64_t
/* Define to `char' if <sys/types.h> does not define. */
#undef int8_t
/* Define to rpl_malloc if the replacement function should be used. */
#undef malloc
/* Define to rpl_realloc if the replacement function should be used. */
#undef realloc
/* Define to 'int' if not defined */
#undef socklen_t
/* Define to `int' if <sys/types.h> does not define. */
#define ssize_t int
/* Define to `unsigned short' if <sys/types.h> does not define. */
#define uint16_t unsigned short
#define int16_t short
/* Define to `unsigned int' if <sys/types.h> does not define. */
#define uint32_t unsigned int
/* Define to `unsigned long long' if <sys/types.h> does not define. */
#define uint64_t unsigned long long
/* Define to `unsigned char' if <sys/types.h> does not define. */
#define uint8_t unsigned char
#define int8_t char
#include <stdio.h>
#include <string.h>
//#include <unistd.h>
#include <assert.h>
#ifndef LITTLE_ENDIAN
#define LITTLE_ENDIAN 1234
#endif
#ifndef BIG_ENDIAN
#define BIG_ENDIAN 4321
#endif
#ifndef BYTE_ORDER
#ifdef WORDS_BIGENDIAN
#define BYTE_ORDER BIG_ENDIAN
#else
#define BYTE_ORDER LITTLE_ENDIAN
#endif
/* WORDS_BIGENDIAN */
#endif
/* BYTE_ORDER */
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif
#ifdef HAVE_STDINT_H
#include <stdint.h>
#endif
#ifdef HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#ifdef HAVE_NETINET_IN_H
#include <netinet/in.h>
#endif
#ifdef HAVE_ARPA_INET_H
#include <arpa/inet.h>
#endif
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
#endif
#ifdef HAVE_WS2TCPIP_H
#include <ws2tcpip.h>
#endif
#ifdef _MSC_VER
#define snprintf _snprintf
#define vsnprintf _vsnprintf
#define strcasecmp _stricmp
#define strncasecmp _strnicmp
#define strdup _strdup
/*
#define gmtime gmtime_s
#define ctime ctime_s
#define strcpy strcpu_s
*/
#define putenv _putenv
#define srandom srand
#define random rand
#endif
#ifndef B64_PTON
int
ldns_b64_ntop
(
uint8_t
const
*
src
,
size_t
srclength
,
char
*
target
,
size_t
targsize
);
/**
* calculates the size needed to store the result of b64_ntop
*/
/*@unused@*/
inline
static
size_t
ldns_b64_ntop_calculate_size
(
size_t
srcsize
)
{
return
((((
srcsize
+
2
)
/
3
)
*
4
)
+
1
);
}
#endif
/* !B64_PTON */
#ifndef B64_NTOP
int
ldns_b64_pton
(
char
const
*
src
,
uint8_t
*
target
,
size_t
targsize
);
/**
* calculates the size needed to store the result of ldns_b64_pton
*/
/*@unused@*/
inline
static
size_t
ldns_b64_pton_calculate_size
(
size_t
srcsize
)
{
return
((((
srcsize
/
4
)
*
3
)
-
2
)
+
2
);
}
#endif
/* !B64_NTOP */
#ifndef HAVE_SLEEP
/* use windows sleep, in millisecs, instead */
#define sleep(x) Sleep((x)*1000)
#endif
#ifndef HAVE_RANDOM
#define srandom(x) srand(x)
#define random(x) rand(x)
#endif
#ifndef HAVE_TIMEGM
#include <time.h>
time_t
timegm
(
struct
tm
*
tm
);
#endif
/* !TIMEGM */
#ifndef HAVE_GMTIME_R
struct
tm
*
gmtime_r
(
const
time_t
*
timep
,
struct
tm
*
result
);
#endif
#ifndef HAVE_ISBLANK
int
isblank
(
int
c
);
#endif
/* !HAVE_ISBLANK */
#ifndef HAVE_SNPRINTF
#include <stdarg.h>
int
snprintf
(
char
*
str
,
size_t
count
,
const
char
*
fmt
,
...);
int
vsnprintf
(
char
*
str
,
size_t
count
,
const
char
*
fmt
,
va_list
arg
);
#endif
/* HAVE_SNPRINTF */
#ifndef HAVE_INET_PTON
int
inet_pton
(
int
af
,
const
char
*
src
,
void
*
dst
);
#endif
/* HAVE_INET_PTON */
#ifndef HAVE_INET_NTOP
const
char
*
inet_ntop
(
int
af
,
const
void
*
src
,
char
*
dst
,
size_t
size
);
#endif
#ifndef HAVE_INET_ATON
int
inet_aton
(
const
char
*
cp
,
struct
in_addr
*
addr
);
#endif
#ifndef HAVE_MEMMOVE
void
*
memmove
(
void
*
dest
,
const
void
*
src
,
size_t
n
);
#endif
#ifndef HAVE_STRLCPY
size_t
strlcpy
(
char
*
dst
,
const
char
*
src
,
size_t
siz
);
#endif
#ifndef HAVE_GETADDRINFO
#include "compat/fake-rfc2553.h"
#endif
libs/win32/ldns/ldns-lib/ldns-lib.2010.vcxproj
0 → 100644
浏览文件 @
85602f9b
<?xml version="1.0" encoding="utf-8"?>
<Project
DefaultTargets=
"Build"
ToolsVersion=
"4.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup
Label=
"ProjectConfigurations"
>
<ProjectConfiguration
Include=
"Debug|Win32"
>
<Configuration>
Debug
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Debug|x64"
>
<Configuration>
Debug
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|Win32"
>
<Configuration>
Release
</Configuration>
<Platform>
Win32
</Platform>
</ProjectConfiguration>
<ProjectConfiguration
Include=
"Release|x64"
>
<Configuration>
Release
</Configuration>
<Platform>
x64
</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup
Label=
"Globals"
>
<ProjectName>
ldns
</ProjectName>
<ProjectGuid>
{23B4D303-79FC-49E0-89E2-2280E7E28940}
</ProjectGuid>
<RootNamespace>
ldns
</RootNamespace>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.Default.props"
/>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
StaticLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<WholeProgramOptimization>
true
</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"Configuration"
>
<ConfigurationType>
StaticLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
<WholeProgramOptimization>
true
</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"Configuration"
>
<ConfigurationType>
StaticLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
</PropertyGroup>
<PropertyGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"Configuration"
>
<ConfigurationType>
StaticLibrary
</ConfigurationType>
<CharacterSet>
MultiByte
</CharacterSet>
</PropertyGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.props"
/>
<ImportGroup
Label=
"ExtensionSettings"
>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\extdll.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\extdll.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\extdll.props"
/>
</ImportGroup>
<ImportGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
Label=
"PropertySheets"
>
<Import
Project=
"$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props"
Condition=
"exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')"
Label=
"LocalAppDataPlatform"
/>
<Import
Project=
"..\..\..\..\w32\extdll.props"
/>
</ImportGroup>
<PropertyGroup
Label=
"UserMacros"
/>
<PropertyGroup>
<_ProjectFileVersion>
10.0.40219.1
</_ProjectFileVersion>
<CodeAnalysisRuleSet
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
AllRules.ruleset
</CodeAnalysisRuleSet>
<CodeAnalysisRuleSet
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
AllRules.ruleset
</CodeAnalysisRuleSet>
<CodeAnalysisRules
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
/>
<CodeAnalysisRules
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
/>
<CodeAnalysisRuleAssemblies
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
/>
<CodeAnalysisRuleAssemblies
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
/>
<CodeAnalysisRuleSet
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
AllRules.ruleset
</CodeAnalysisRuleSet>
<CodeAnalysisRuleSet
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
AllRules.ruleset
</CodeAnalysisRuleSet>
<CodeAnalysisRules
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
/>
<CodeAnalysisRules
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
/>
<CodeAnalysisRuleAssemblies
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
/>
<CodeAnalysisRuleAssemblies
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
/>
</PropertyGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|Win32'"
>
<ClCompile>
<Optimization>
Disabled
</Optimization>
<AdditionalIncludeDirectories>
.;%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
HAVE_STRUCT_ADDRINFO;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<MinimalRebuild>
true
</MinimalRebuild>
<BasicRuntimeChecks>
EnableFastChecks
</BasicRuntimeChecks>
<RuntimeLibrary>
MultiThreadedDebugDLL
</RuntimeLibrary>
<WarningLevel>
Level3
</WarningLevel>
<DebugInformationFormat>
EditAndContinue
</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Debug|x64'"
>
<ClCompile>
<Optimization>
Disabled
</Optimization>
<AdditionalIncludeDirectories>
.;%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>
HAVE_STRUCT_ADDRINFO;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<BasicRuntimeChecks>
EnableFastChecks
</BasicRuntimeChecks>
<RuntimeLibrary>
MultiThreadedDebugDLL
</RuntimeLibrary>
<WarningLevel>
Level3
</WarningLevel>
<DebugInformationFormat>
ProgramDatabase
</DebugInformationFormat>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|Win32'"
>
<ClCompile>
<Optimization>
MaxSpeed
</Optimization>
<IntrinsicFunctions>
true
</IntrinsicFunctions>
<RuntimeLibrary>
MultiThreadedDLL
</RuntimeLibrary>
<FunctionLevelLinking>
true
</FunctionLevelLinking>
<WarningLevel>
Level3
</WarningLevel>
<DebugInformationFormat>
ProgramDatabase
</DebugInformationFormat>
<PreprocessorDefinitions>
HAVE_STRUCT_ADDRINFO;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_MBCS;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
<OptimizeReferences>
true
</OptimizeReferences>
<EnableCOMDATFolding>
true
</EnableCOMDATFolding>
<TargetMachine>
MachineX86
</TargetMachine>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup
Condition=
"'$(Configuration)|$(Platform)'=='Release|x64'"
>
<ClCompile>
<Optimization>
MaxSpeed
</Optimization>
<IntrinsicFunctions>
true
</IntrinsicFunctions>
<RuntimeLibrary>
MultiThreadedDLL
</RuntimeLibrary>
<FunctionLevelLinking>
true
</FunctionLevelLinking>
<WarningLevel>
Level3
</WarningLevel>
<DebugInformationFormat>
ProgramDatabase
</DebugInformationFormat>
<PreprocessorDefinitions>
HAVE_STRUCT_ADDRINFO;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_MBCS;%(PreprocessorDefinitions)
</PreprocessorDefinitions>
<AdditionalIncludeDirectories>
..\..\..\ldns\;.
</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<GenerateDebugInformation>
true
</GenerateDebugInformation>
<OptimizeReferences>
true
</OptimizeReferences>
<EnableCOMDATFolding>
true
</EnableCOMDATFolding>
<AdditionalDependencies>
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)
</AdditionalDependencies>
</Link>
<PreBuildEvent>
<Command>
if not exist "$(ProjectDir)..\..\..\ldns\ldns\config.h" type "$(ProjectDir)\config.h"
>
"$(ProjectDir)..\..\..\ldns\ldns\config.h"
if not exist "$(ProjectDir)..\..\..\ldns\ldns\util.h" type "$(ProjectDir)\util.h"
>
"$(ProjectDir)..\..\..\ldns\ldns\util.h"
if not exist "$(ProjectDir)..\..\..\ldns\ldns\net.h" type "$(ProjectDir)\net.h"
>
"$(ProjectDir)..\..\..\ldns\ldns\net.h"
</Command>
</PreBuildEvent>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile
Include=
"..\..\..\ldns\compat\b32_ntop.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\b32_pton.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\b64_ntop.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\b64_pton.c"
/>
<ClCompile
Include=
"..\..\..\ldns\buffer.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\ctime_r.c"
/>
<ClCompile
Include=
"..\..\..\ldns\dname.c"
/>
<ClCompile
Include=
"..\..\..\ldns\dnssec.c"
/>
<ClCompile
Include=
"..\..\..\ldns\dnssec_sign.c"
/>
<ClCompile
Include=
"..\..\..\ldns\dnssec_verify.c"
/>
<ClCompile
Include=
"..\..\..\ldns\dnssec_zone.c"
/>
<ClCompile
Include=
"..\..\..\ldns\error.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\fake-rfc2553.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\gettimeofday.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\gmtime_r.c"
/>
<ClCompile
Include=
"..\..\..\ldns\higher.c"
/>
<ClCompile
Include=
"..\..\..\ldns\host2str.c"
/>
<ClCompile
Include=
"..\..\..\ldns\host2wire.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\inet_aton.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\inet_ntop.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\inet_pton.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\isblank.c"
/>
<ClCompile
Include=
"..\..\..\ldns\keys.c"
/>
<ClCompile
Include=
"..\..\..\ldns\linktest.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\malloc.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\memmove.c"
/>
<ClCompile
Include=
"..\..\..\ldns\net.c"
/>
<ClCompile
Include=
"..\..\..\ldns\packet.c"
/>
<ClCompile
Include=
"..\..\..\ldns\parse.c"
/>
<ClCompile
Include=
"..\..\..\ldns\rbtree.c"
/>
<ClCompile
Include=
"..\..\..\ldns\rdata.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\realloc.c"
/>
<ClCompile
Include=
"..\..\..\ldns\resolver.c"
/>
<ClCompile
Include=
"..\..\..\ldns\rr.c"
/>
<ClCompile
Include=
"..\..\..\ldns\rr_functions.c"
/>
<ClCompile
Include=
"..\..\..\ldns\sha1.c"
/>
<ClCompile
Include=
"..\..\..\ldns\sha2.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\snprintf.c"
/>
<ClCompile
Include=
"..\..\..\ldns\str2host.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\strlcpy.c"
/>
<ClCompile
Include=
"..\..\..\ldns\compat\timegm.c"
/>
<ClCompile
Include=
"..\..\..\ldns\tsig.c"
/>
<ClCompile
Include=
"..\..\..\ldns\update.c"
/>
<ClCompile
Include=
"..\..\..\ldns\util.c"
/>
<ClCompile
Include=
"..\..\..\ldns\wire2host.c"
/>
<ClCompile
Include=
"..\..\..\ldns\zone.c"
/>
</ItemGroup>
<ItemGroup>
<ClInclude
Include=
"..\..\..\ldns\compat\fake-rfc2553.h"
/>
<ClInclude
Include=
"..\..\..\ldns\compat\gettimeofday.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\buffer.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\common.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\config.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\dname.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\dnssec.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\dnssec_sign.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\dnssec_verify.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\dnssec_zone.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\error.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\higher.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\host2str.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\host2wire.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\keys.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\ldns.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\net.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\packet.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\parse.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\rbtree.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\rdata.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\resolver.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\rr.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\rr_functions.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\sha1.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\sha2.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\str2host.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\tsig.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\update.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\util.h"
/>
<ClInclude
Include=
"..\..\..\ldns\ldns\zone.h"
/>
</ItemGroup>
<ItemGroup>
<None
Include=
"ldns\util.h.in"
/>
<None
Include=
"ldns\readme.txt"
/>
</ItemGroup>
<Import
Project=
"$(VCTargetsPath)\Microsoft.Cpp.targets"
/>
<ImportGroup
Label=
"ExtensionTargets"
>
</ImportGroup>
</Project>
\ No newline at end of file
libs/win32/ldns/ldns-lib/ldns-lib.2010.vcxproj.filters
0 → 100644
浏览文件 @
85602f9b
<?xml version="1.0" encoding="utf-8"?>
<Project
ToolsVersion=
"4.0"
xmlns=
"http://schemas.microsoft.com/developer/msbuild/2003"
>
<ItemGroup>
<Filter
Include=
"Source Files"
>
<UniqueIdentifier>
{4FC737F1-C7A5-4376-A066-2A32D752A2FF}
</UniqueIdentifier>
<Extensions>
cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
</Extensions>
</Filter>
<Filter
Include=
"Header Files"
>
<UniqueIdentifier>
{93995380-89BD-4b04-88EB-625FBE52EBFB}
</UniqueIdentifier>
<Extensions>
h;hpp;hxx;hm;inl;inc;xsd
</Extensions>
</Filter>
<Filter
Include=
"Resource Files"
>
<UniqueIdentifier>
{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
</UniqueIdentifier>
<Extensions>
rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav
</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile
Include=
"..\..\..\ldns\compat\b32_ntop.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\b32_pton.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\b64_ntop.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\b64_pton.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\buffer.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\ctime_r.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\dname.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\dnssec.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\dnssec_sign.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\dnssec_verify.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\dnssec_zone.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\error.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\fake-rfc2553.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\gettimeofday.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\gmtime_r.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\higher.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\host2str.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\host2wire.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\inet_aton.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\inet_ntop.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\inet_pton.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\isblank.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\keys.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\linktest.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\malloc.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\memmove.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\net.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\packet.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\parse.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\rbtree.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\rdata.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\realloc.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\resolver.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\rr.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\rr_functions.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\sha1.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\sha2.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\snprintf.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\str2host.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\strlcpy.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\compat\timegm.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\tsig.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\update.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\util.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\wire2host.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
<ClCompile
Include=
"..\..\..\ldns\zone.c"
>
<Filter>
Source Files
</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude
Include=
"..\..\..\ldns\compat\fake-rfc2553.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\compat\gettimeofday.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\buffer.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\common.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\config.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\dname.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\dnssec.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\dnssec_sign.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\dnssec_verify.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\dnssec_zone.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\error.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\higher.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\host2str.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\host2wire.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\keys.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\ldns.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\net.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\packet.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\parse.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\rbtree.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\rdata.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\resolver.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\rr.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\rr_functions.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\sha1.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\sha2.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\str2host.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\tsig.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\update.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\util.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
<ClInclude
Include=
"..\..\..\ldns\ldns\zone.h"
>
<Filter>
Header Files
</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None
Include=
"ldns\util.h.in"
>
<Filter>
Header Files
</Filter>
</None>
<None
Include=
"ldns\readme.txt"
/>
</ItemGroup>
</Project>
\ No newline at end of file
libs/win32/ldns/ldns-lib/net.h
0 → 100644
浏览文件 @
85602f9b
/*
* net.h
*
* DNS Resolver definitions
*
* a Net::DNS like library for C
*
* (c) NLnet Labs, 2005-2006
*
* See the file LICENSE for the license
*/
#ifndef LDNS_NET_H
#define LDNS_NET_H
#include <ldns/ldns.h>
#ifdef _MSC_VER
#include <winsock2.h>
#define socklen_t int
#define in_port_t USHORT
#define in_addr_t UINT
#else
#include <sys/socket.h>
#include <netdb.h>
#endif
#define LDNS_DEFAULT_TIMEOUT_SEC 2
#define LDNS_DEFAULT_TIMEOUT_USEC 0
/**
* \file
*
* Contains functions to send and receive packets over a network.
*/
/**
* Sends a buffer to an ip using udp and return the respons as a ldns_pkt
* \param[in] qbin the ldns_buffer to be send
* \param[in] to the ip addr to send to
* \param[in] tolen length of the ip addr
* \param[in] timeout the timeout value for the network
* \param[out] answersize size of the packet
* \param[out] result packet with the answer
* \return status
*/
ldns_status
ldns_udp_send
(
uint8_t
**
result
,
ldns_buffer
*
qbin
,
const
struct
sockaddr_storage
*
to
,
socklen_t
tolen
,
struct
timeval
timeout
,
size_t
*
answersize
);
/**
* Send an udp query and don't wait for an answer but return
* the socket
* \param[in] qbin the ldns_buffer to be send
* \param[in] to the ip addr to send to
* \param[in] tolen length of the ip addr
* \param[in] timeout the timeout value for the network
* \return the socket used
*/
int
ldns_udp_bgsend
(
ldns_buffer
*
qbin
,
const
struct
sockaddr_storage
*
to
,
socklen_t
tolen
,
struct
timeval
timeout
);
/**
* Send an tcp query and don't wait for an answer but return
* the socket
* \param[in] qbin the ldns_buffer to be send
* \param[in] to the ip addr to send to
* \param[in] tolen length of the ip addr
* \param[in] timeout the timeout value for the network
* \return the socket used
*/
int
ldns_tcp_bgsend
(
ldns_buffer
*
qbin
,
const
struct
sockaddr_storage
*
to
,
socklen_t
tolen
,
struct
timeval
timeout
);
/**
* Sends a buffer to an ip using tcp and return the respons as a ldns_pkt
* \param[in] qbin the ldns_buffer to be send
* \param[in] qbin the ldns_buffer to be send
* \param[in] to the ip addr to send to
* \param[in] tolen length of the ip addr
* \param[in] timeout the timeout value for the network
* \param[out] answersize size of the packet
* \param[out] result packet with the answer
* \return status
*/
ldns_status
ldns_tcp_send
(
uint8_t
**
result
,
ldns_buffer
*
qbin
,
const
struct
sockaddr_storage
*
to
,
socklen_t
tolen
,
struct
timeval
timeout
,
size_t
*
answersize
);
/**
* Sends ptk to the nameserver at the resolver object. Returns the data
* as a ldns_pkt
*
* \param[out] pkt packet received from the nameserver
* \param[in] r the resolver to use
* \param[in] query_pkt the query to send
* \return status
*/
ldns_status
ldns_send
(
ldns_pkt
**
pkt
,
ldns_resolver
*
r
,
const
ldns_pkt
*
query_pkt
);
/**
* Sends and ldns_buffer (presumably containing a packet to the nameserver at the resolver object. Returns the data
* as a ldns_pkt
*
* \param[out] pkt packet received from the nameserver
* \param[in] r the resolver to use
* \param[in] qb the buffer to send
* \param[in] tsig_mac the tsig MAC to authenticate the response with (NULL to do no TSIG authentication)
* \return status
*/
ldns_status
ldns_send_buffer
(
ldns_pkt
**
pkt
,
ldns_resolver
*
r
,
ldns_buffer
*
qb
,
ldns_rdf
*
tsig_mac
);
/**
* Create a tcp socket to the specified address
* \param[in] to ip and family
* \param[in] tolen length of to
* \param[in] timeout timeout for the socket
* \return a socket descriptor
*/
int
ldns_tcp_connect
(
const
struct
sockaddr_storage
*
to
,
socklen_t
tolen
,
struct
timeval
timeout
);
/**
* Create a udp socket to the specified address
* \param[in] to ip and family
* \param[in] timeout timeout for the socket
* \return a socket descriptor
*/
int
ldns_udp_connect
(
const
struct
sockaddr_storage
*
to
,
struct
timeval
timeout
);
/**
* send a query via tcp to a server. Don't want for the answer
*
* \param[in] qbin the buffer to send
* \param[in] sockfd the socket to use
* \param[in] to which ip to send it
* \param[in] tolen socketlen
* \return number of bytes sent
*/
ssize_t
ldns_tcp_send_query
(
ldns_buffer
*
qbin
,
int
sockfd
,
const
struct
sockaddr_storage
*
to
,
socklen_t
tolen
);
/**
* send a query via udp to a server. Don;t want for the answer
*
* \param[in] qbin the buffer to send
* \param[in] sockfd the socket to use
* \param[in] to which ip to send it
* \param[in] tolen socketlen
* \return number of bytes sent
*/
ssize_t
ldns_udp_send_query
(
ldns_buffer
*
qbin
,
int
sockfd
,
const
struct
sockaddr_storage
*
to
,
socklen_t
tolen
);
/**
* Gives back a raw packet from the wire and reads the header data from the given
* socket. Allocates the data (of size size) itself, so don't forget to free
*
* \param[in] sockfd the socket to read from
* \param[out] size the number of bytes that are read
* \return the data read
*/
uint8_t
*
ldns_tcp_read_wire
(
int
sockfd
,
size_t
*
size
);
/**
* Gives back a raw packet from the wire and reads the header data from the given
* socket. Allocates the data (of size size) itself, so don't forget to free
*
* \param[in] sockfd the socket to read from
* \param[in] fr the address of the client (if applicable)
* \param[in] *frlen the lenght of the client's addr (if applicable)
* \param[out] size the number of bytes that are read
* \return the data read
*/
uint8_t
*
ldns_udp_read_wire
(
int
sockfd
,
size_t
*
size
,
struct
sockaddr_storage
*
fr
,
socklen_t
*
frlen
);
/**
* returns the native sockaddr representation from the rdf.
* \param[in] rd the ldns_rdf to operate on
* \param[in] port what port to use. 0 means; use default (53)
* \param[out] size what is the size of the sockaddr_storage
* \return struct sockaddr* the address in the format so other
* functions can use it (sendto)
*/
struct
sockaddr_storage
*
ldns_rdf2native_sockaddr_storage
(
const
ldns_rdf
*
rd
,
uint16_t
port
,
size_t
*
size
);
/**
* returns an rdf with the sockaddr info. works for ip4 and ip6
* \param[in] sock the struct sockaddr_storage to convert
* \param[in] port what port was used. When NULL this is not set
* \return ldns_rdf* wth the address
*/
ldns_rdf
*
ldns_sockaddr_storage2rdf
(
struct
sockaddr_storage
*
sock
,
uint16_t
*
port
);
/**
* Prepares the resolver for an axfr query
* The query is sent and the answers can be read with ldns_axfr_next
* \param[in] resolver the resolver to use
* \param[in] domain the domain to exfr
* \param[in] c the class to use
* \return ldns_status the status of the transfer
*/
ldns_status
ldns_axfr_start
(
ldns_resolver
*
resolver
,
ldns_rdf
*
domain
,
ldns_rr_class
c
);
#endif
/* LDNS_NET_H */
libs/win32/ldns/ldns-lib/util.h
0 → 100644
浏览文件 @
85602f9b
/*
* util.h
*
* helper function header file
*
* a Net::DNS like library for C
*
* (c) NLnet Labs, 2004
*
* See the file LICENSE for the license
*/
#ifndef _UTIL_H
#define _UTIL_H
//@include_inttypes_h@
#include <ldns/common.h>
#include <time.h>
#include <stdio.h>
#define dprintf(X,Y) fprintf(stderr, (X), (Y))
/* #define dprintf(X, Y) */
#define LDNS_VERSION "@PACKAGE_VERSION@"
/**
* splint static inline workaround
*/
#ifdef S_SPLINT_S
#define INLINE
#else
#define INLINE static inline
#endif
/**
* Memory management macros
*/
#define LDNS_MALLOC(type) LDNS_XMALLOC(type, 1)
#define LDNS_XMALLOC(type, count) ((type *) malloc((count) * sizeof(type)))
#define LDNS_REALLOC(ptr, type) LDNS_XREALLOC((ptr), type, 1)
#define LDNS_XREALLOC(ptr, type, count) \
((type *) realloc((ptr), (count) * sizeof(type)))
#define LDNS_FREE(ptr) \
do { free((ptr)); (ptr) = NULL; } while (0)
#define LDNS_DEP printf("DEPRECATED FUNCTION!\n");
/*
* Copy data allowing for unaligned accesses in network byte order
* (big endian).
*/
INLINE
uint16_t
ldns_read_uint16
(
const
void
*
src
)
{
#ifdef ALLOW_UNALIGNED_ACCESSES
return
ntohs
(
*
(
uint16_t
*
)
src
);
#else
uint8_t
*
p
=
(
uint8_t
*
)
src
;
return
((
uint16_t
)
p
[
0
]
<<
8
)
|
(
uint16_t
)
p
[
1
];
#endif
}
INLINE
uint32_t
ldns_read_uint32
(
const
void
*
src
)
{
#ifdef ALLOW_UNALIGNED_ACCESSES
return
ntohl
(
*
(
uint32_t
*
)
src
);
#else
uint8_t
*
p
=
(
uint8_t
*
)
src
;
return
(
((
uint32_t
)
p
[
0
]
<<
24
)
|
((
uint32_t
)
p
[
1
]
<<
16
)
|
((
uint32_t
)
p
[
2
]
<<
8
)
|
(
uint32_t
)
p
[
3
]);
#endif
}
/*
* Copy data allowing for unaligned accesses in network byte order
* (big endian).
*/
INLINE
void
ldns_write_uint16
(
void
*
dst
,
uint16_t
data
)
{
#ifdef ALLOW_UNALIGNED_ACCESSES
*
(
uint16_t
*
)
dst
=
htons
(
data
);
#else
uint8_t
*
p
=
(
uint8_t
*
)
dst
;
p
[
0
]
=
(
uint8_t
)
((
data
>>
8
)
&
0xff
);
p
[
1
]
=
(
uint8_t
)
(
data
&
0xff
);
#endif
}
INLINE
void
ldns_write_uint32
(
void
*
dst
,
uint32_t
data
)
{
#ifdef ALLOW_UNALIGNED_ACCESSES
*
(
uint32_t
*
)
dst
=
htonl
(
data
);
#else
uint8_t
*
p
=
(
uint8_t
*
)
dst
;
p
[
0
]
=
(
uint8_t
)
((
data
>>
24
)
&
0xff
);
p
[
1
]
=
(
uint8_t
)
((
data
>>
16
)
&
0xff
);
p
[
2
]
=
(
uint8_t
)
((
data
>>
8
)
&
0xff
);
p
[
3
]
=
(
uint8_t
)
(
data
&
0xff
);
#endif
}
/* warning. */
INLINE
void
ldns_write_uint64_as_uint48
(
void
*
dst
,
uint64_t
data
)
{
uint8_t
*
p
=
(
uint8_t
*
)
dst
;
p
[
0
]
=
(
uint8_t
)
((
data
>>
40
)
&
0xff
);
p
[
1
]
=
(
uint8_t
)
((
data
>>
32
)
&
0xff
);
p
[
2
]
=
(
uint8_t
)
((
data
>>
24
)
&
0xff
);
p
[
3
]
=
(
uint8_t
)
((
data
>>
16
)
&
0xff
);
p
[
4
]
=
(
uint8_t
)
((
data
>>
8
)
&
0xff
);
p
[
5
]
=
(
uint8_t
)
(
data
&
0xff
);
}
/**
* Structure to do a Schwartzian-like transformation, for instance when
* sorting. If you need a transformation on the objects that are sorted,
* you can sue this to store the transformed values, so you do not
* need to do the transformation again for each comparison
*/
struct
ldns_schwartzian_compare_struct
{
void
*
original_object
;
void
*
transformed_object
;
};
/** A general purpose lookup table
*
* Lookup tables are arrays of (id, name) pairs,
* So you can for instance lookup the RCODE 3, which is "NXDOMAIN",
* and vice versa. The lookup tables themselves are defined wherever needed,
* for instance in \ref host2str.c
*/
struct
ldns_struct_lookup_table
{
int
id
;
const
char
*
name
;
};
typedef
struct
ldns_struct_lookup_table
ldns_lookup_table
;
/**
* Looks up the table entry by name, returns NULL if not found.
* \param[in] table the lookup table to search in
* \param[in] name what to search for
* \return the item found
*/
ldns_lookup_table
*
ldns_lookup_by_name
(
ldns_lookup_table
table
[],
const
char
*
name
);
/**
* Looks up the table entry by id, returns NULL if not found.
* \param[in] table the lookup table to search in
* \param[in] id what to search for
* \return the item found
*/
ldns_lookup_table
*
ldns_lookup_by_id
(
ldns_lookup_table
table
[],
int
id
);
/**
* Returns the value of the specified bit
* The bits are counted from left to right, so bit #0 is the
* left most bit.
* \param[in] bits array holding the bits
* \param[in] index to the wanted bit
* \return
*/
int
ldns_get_bit
(
uint8_t
bits
[],
size_t
index
);
/**
* Returns the value of the specified bit
* The bits are counted from right to left, so bit #0 is the
* right most bit.
* \param[in] bits array holding the bits
* \param[in] index to the wanted bit
* \return 1 or 0 depending no the bit state
*/
int
ldns_get_bit_r
(
uint8_t
bits
[],
size_t
index
);
/**
* sets the specified bit in the specified byte to
* 1 if value is true, 0 if false
* The bits are counted from right to left, so bit #0 is the
* right most bit.
* \param[in] byte the bit to set the bit in
* \param[in] bit_nr the bit to set (0 <= n <= 7)
* \param[in] value whether to set the bit to 1 or 0
* \return 1 or 0 depending no the bit state
*/
void
ldns_set_bit
(
uint8_t
*
byte
,
int
bit_nr
,
bool
value
);
/**
* Returns the value of a to the power of b
* (or 1 of b < 1)
*/
/*@unused@*/
INLINE
long
ldns_power
(
long
a
,
long
b
)
{
long
result
=
1
;
while
(
b
>
0
)
{
if
(
b
&
1
)
{
result
*=
a
;
if
(
b
==
1
)
{
return
result
;
}
}
a
*=
a
;
b
/=
2
;
}
return
result
;
}
/**
* Returns the int value of the given (hex) digit
* \param[in] ch the hex char to convert
* \return the converted decimal value
*/
int
ldns_hexdigit_to_int
(
char
ch
);
/**
* Returns the char (hex) representation of the given int
* \param[in] ch the int to convert
* \return the converted hex char
*/
char
ldns_int_to_hexdigit
(
int
ch
);
/**
* Converts a hex string to binary data
*
* \param[out] data The binary result is placed here.
* At least strlen(str)/2 bytes should be allocated
* \param[in] str The hex string to convert.
* This string should not contain spaces
* \return The number of bytes of converted data, or -1 if one of the arguments * is NULL, or -2 if the string length is not an even number
*/
int
ldns_hexstring_to_data
(
uint8_t
*
data
,
const
char
*
str
);
/**
* Show the internal library version
* \return a string with the version in it
*/
const
char
*
ldns_version
(
void
);
/**
* Convert TM to seconds since epoch (midnight, January 1st, 1970).
* Like timegm(3), which is not always available.
* \param[in] tm a struct tm* with the date
* \return the seconds since epoch
*/
time_t
mktime_from_utc
(
const
struct
tm
*
tm
);
/**
* Seed the random function.
* If the file descriptor is specified, the random generator is seeded with
* data from that file. If not, /dev/urandom is used.
*
* applications should call this if they need entropy data within ldns
* If openSSL is available, it is automatically seeded from /dev/urandom
* or /dev/random.
*
* If you need more entropy, or have no openssl available, this function
* MUST be called at the start of the program
*
* If openssl *is* available, this function just adds more entropy
*
* \param[in] fd a file providing entropy data for the seed
* \param[in] size the number of bytes to use as entropy data. If this is 0,
* only the minimal amount is taken (usually 4 bytes)
* \return 0 if seeding succeeds, 1 if it fails
*/
int
ldns_init_random
(
FILE
*
fd
,
unsigned
int
size
);
/**
* Encode data as BubbleBabble
*
* \param[in] data a pointer to data to be encoded
* \param[in] len size the number of bytes of data
* \return a string of BubbleBabble
*/
char
*
ldns_bubblebabble
(
uint8_t
*
data
,
size_t
len
);
#ifndef B32_NTOP
int
ldns_b32_ntop
(
uint8_t
const
*
src
,
size_t
srclength
,
char
*
target
,
size_t
targsize
);
int
b32_ntop
(
uint8_t
const
*
src
,
size_t
srclength
,
char
*
target
,
size_t
targsize
);
int
ldns_b32_ntop_extended_hex
(
uint8_t
const
*
src
,
size_t
srclength
,
char
*
target
,
size_t
targsize
);
int
b32_ntop_extended_hex
(
uint8_t
const
*
src
,
size_t
srclength
,
char
*
target
,
size_t
targsize
);
/**
* calculates the size needed to store the result of b32_ntop
*/
/*@unused@*/
static
inline
size_t
ldns_b32_ntop_calculate_size
(
size_t
srcsize
)
{
size_t
result
=
((((
srcsize
/
5
)
*
8
)
-
2
)
+
2
);
return
result
;
}
#endif
/* !B32_NTOP */
#ifndef B32_PTON
int
ldns_b32_pton
(
char
const
*
src
,
size_t
hashed_owner_str_len
,
uint8_t
*
target
,
size_t
targsize
);
int
b32_pton
(
char
const
*
src
,
size_t
hashed_owner_str_len
,
uint8_t
*
target
,
size_t
targsize
);
int
ldns_b32_pton_extended_hex
(
char
const
*
src
,
size_t
hashed_owner_str_len
,
uint8_t
*
target
,
size_t
targsize
);
int
b32_pton_extended_hex
(
char
const
*
src
,
size_t
hashed_owner_str_len
,
uint8_t
*
target
,
size_t
targsize
);
/**
* calculates the size needed to store the result of b32_pton
*/
/*@unused@*/
static
inline
size_t
ldns_b32_pton_calculate_size
(
size_t
srcsize
)
{
size_t
result
=
((((
srcsize
)
/
8
)
*
5
));
return
result
;
}
#endif
/* !B32_PTON */
#endif
/* !_UTIL_H */
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论