GNU libmicrohttpd
0.9.70
version.c
Go to the documentation of this file.
1
/*
2
This file is part of libmicrohttpd
3
Copyright (C) 2007-2018 Daniel Pittman and Christian Grothoff
4
5
This library is free software; you can redistribute it and/or
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
8
version 2.1 of the License, or (at your option) any later version.
9
10
This library is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
Lesser General Public License for more details.
14
15
You should have received a copy of the GNU Lesser General Public
16
License along with this library; if not, write to the Free Software
17
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
*/
19
25
#include "
internal.h
"
26
27
34
const
char
*
35
MHD_get_version
(
void
)
36
{
37
#ifdef PACKAGE_VERSION
38
return
PACKAGE_VERSION;
39
#else
/* !PACKAGE_VERSION */
40
static
char
ver[12] =
"\0\0\0\0\0\0\0\0\0\0\0"
;
41
if
(0 == ver[0])
42
{
43
int
res = MHD_snprintf_ (ver,
44
sizeof
(ver),
45
"%x.%x.%x"
,
46
(((
int
)
MHD_VERSION
>> 24) & 0xFF),
47
(((
int
)
MHD_VERSION
>> 16) & 0xFF),
48
(((
int
)
MHD_VERSION
>> 8) & 0xFF));
49
if
((0 >= res) || (
sizeof
(ver) <= res))
50
return
"0.0.0"
;
/* Can't return real version*/
51
}
52
return
ver;
53
#endif
/* !PACKAGE_VERSION */
54
}
55
56
68
_MHD_EXTERN
enum
MHD_Bool
69
MHD_is_feature_supported
(
enum
MHD_Feature feature)
70
{
71
switch
(feature)
72
{
73
case
MHD_FEATURE_MESSAGES
:
74
#ifdef HAVE_MESSAGES
75
return
MHD_YES
;
76
#else
77
return
MHD_NO
;
78
#endif
79
case
MHD_FEATURE_TLS
:
80
#ifdef HTTPS_SUPPORT
81
return
MHD_YES
;
82
#else
/* ! HTTPS_SUPPORT */
83
return
MHD_NO
;
84
#endif
/* ! HTTPS_SUPPORT */
85
case
MHD_FEATURE_HTTPS_CERT_CALLBACK
:
86
#if defined(HTTPS_SUPPORT) && GNUTLS_VERSION_MAJOR >= 3
87
return
MHD_YES
;
88
#else
/* !HTTPS_SUPPORT || GNUTLS_VERSION_MAJOR < 3 */
89
return
MHD_NO
;
90
#endif
/* !HTTPS_SUPPORT || GNUTLS_VERSION_MAJOR < 3 */
91
case
MHD_FEATURE_IPv6
:
92
#ifdef HAVE_INET6
93
return
MHD_YES
;
94
#else
95
return
MHD_NO
;
96
#endif
97
case
MHD_FEATURE_IPv6_ONLY
:
98
#if defined(IPPROTO_IPV6) && defined(IPV6_V6ONLY)
99
return
MHD_YES
;
100
#else
101
return
MHD_NO
;
102
#endif
103
case
MHD_FEATURE_POLL
:
104
#ifdef HAVE_POLL
105
return
MHD_YES
;
106
#else
107
return
MHD_NO
;
108
#endif
109
case
MHD_FEATURE_EPOLL
:
110
#ifdef EPOLL_SUPPORT
111
return
MHD_YES
;
112
#else
113
return
MHD_NO
;
114
#endif
115
case
MHD_FEATURE_SHUTDOWN_LISTEN_SOCKET
:
116
#ifdef HAVE_LISTEN_SHUTDOWN
117
return
MHD_YES
;
118
#else
119
return
MHD_NO
;
120
#endif
121
case
MHD_FEATURE_SOCKETPAIR
:
122
#ifdef _MHD_ITC_SOCKETPAIR
123
return
MHD_YES
;
124
#else
125
return
MHD_NO
;
126
#endif
127
case
MHD_FEATURE_TCP_FASTOPEN
:
128
#ifdef TCP_FASTOPEN
129
return
MHD_YES
;
130
#else
131
return
MHD_NO
;
132
#endif
133
case
MHD_FEATURE_BASIC_AUTH
:
134
#ifdef BAUTH_SUPPORT
135
return
MHD_YES
;
136
#else
137
return
MHD_NO
;
138
#endif
139
case
MHD_FEATURE_DIGEST_AUTH
:
140
#ifdef DAUTH_SUPPORT
141
return
MHD_YES
;
142
#else
143
return
MHD_NO
;
144
#endif
145
case
MHD_FEATURE_POSTPROCESSOR
:
146
#ifdef HAVE_POSTPROCESSOR
147
return
MHD_YES
;
148
#else
149
return
MHD_NO
;
150
#endif
151
case
MHD_FEATURE_HTTPS_KEY_PASSWORD
:
152
#if defined(HTTPS_SUPPORT) && GNUTLS_VERSION_NUMBER >= 0x030111
153
return
MHD_YES
;
154
#else
/* !HTTPS_SUPPORT || GNUTLS_VERSION_NUMBER < 0x030111 */
155
return
MHD_NO
;
156
#endif
/* !HTTPS_SUPPORT || GNUTLS_VERSION_NUMBER < 0x030111 */
157
case
MHD_FEATURE_LARGE_FILE
:
158
#if defined(HAVE_PREAD64) || defined(_WIN32)
159
return
MHD_YES
;
160
#elif defined(HAVE_PREAD)
161
return
(
sizeof
(uint64_t) >
sizeof
(off_t)) ?
MHD_NO
:
MHD_YES
;
162
#elif defined(HAVE_LSEEK64)
163
return
MHD_YES
;
164
#else
165
return
(
sizeof
(uint64_t) >
sizeof
(off_t)) ?
MHD_NO
:
MHD_YES
;
166
#endif
167
case
MHD_FEATURE_THREAD_NAMES
:
168
#if defined(MHD_USE_THREAD_NAME_)
169
return
MHD_YES
;
170
#else
171
return
MHD_NO
;
172
#endif
173
case
MHD_FEATURE_UPGRADE
:
174
#if defined(UPGRADE_SUPPORT)
175
return
MHD_YES
;
176
#else
177
return
MHD_NO
;
178
#endif
179
case
MHD_FEATURE_RESPONSES_SHARED_FD
:
180
#if defined(HAVE_PREAD64) || defined(HAVE_PREAD) || defined(_WIN32)
181
return
MHD_YES
;
182
#else
183
return
MHD_NO
;
184
#endif
185
case
MHD_FEATURE_AUTODETECT_BIND_PORT
:
186
#ifdef MHD_USE_GETSOCKNAME
187
return
MHD_YES
;
188
#else
189
return
MHD_NO
;
190
#endif
191
case
MHD_FEATURE_AUTOSUPPRESS_SIGPIPE
:
192
#if defined(MHD_WINSOCK_SOCKETS) || defined(MHD_socket_nosignal_) || \
193
defined (MSG_NOSIGNAL)
194
return
MHD_YES
;
195
#else
196
return
MHD_NO
;
197
#endif
198
case
MHD_FEATURE_SENDFILE
:
199
#ifdef _MHD_HAVE_SENDFILE
200
return
MHD_YES
;
201
#else
202
return
MHD_NO
;
203
#endif
204
205
}
206
return
MHD_NO
;
207
}
MHD_get_version
_MHD_EXTERN const char * MHD_get_version(void)
Definition:
version.c:35
MHD_FEATURE_MESSAGES
Definition:
microhttpd.h:3869
MHD_FEATURE_UPGRADE
Definition:
microhttpd.h:3985
MHD_YES
#define MHD_YES
Definition:
microhttpd.h:140
MHD_FEATURE_AUTODETECT_BIND_PORT
Definition:
microhttpd.h:4004
MHD_FEATURE_HTTPS_CERT_CALLBACK
Definition:
microhttpd.h:3885
MHD_FEATURE_LARGE_FILE
Definition:
microhttpd.h:3972
internal.h
internal shared structures
MHD_FEATURE_POSTPROCESSOR
Definition:
microhttpd.h:3955
MHD_FEATURE_IPv6_ONLY
Definition:
microhttpd.h:3899
MHD_is_feature_supported
_MHD_EXTERN enum MHD_Bool MHD_is_feature_supported(enum MHD_Feature feature)
Definition:
version.c:69
MHD_VERSION
#define MHD_VERSION
Definition:
microhttpd.h:135
MHD_FEATURE_TCP_FASTOPEN
Definition:
microhttpd.h:3932
MHD_FEATURE_SENDFILE
Definition:
microhttpd.h:4018
MHD_FEATURE_RESPONSES_SHARED_FD
Definition:
microhttpd.h:3998
MHD_FEATURE_TLS
Definition:
microhttpd.h:3878
_MHD_EXTERN
#define _MHD_EXTERN
Definition:
mhd_options.h:50
MHD_FEATURE_HTTPS_KEY_PASSWORD
Definition:
microhttpd.h:3962
MHD_FEATURE_BASIC_AUTH
Definition:
microhttpd.h:3939
MHD_FEATURE_SHUTDOWN_LISTEN_SOCKET
Definition:
microhttpd.h:3919
MHD_FEATURE_AUTOSUPPRESS_SIGPIPE
Definition:
microhttpd.h:4011
MHD_FEATURE_IPv6
Definition:
microhttpd.h:3891
MHD_FEATURE_EPOLL
Definition:
microhttpd.h:3912
MHD_FEATURE_SOCKETPAIR
Definition:
microhttpd.h:3925
MHD_FEATURE_POLL
Definition:
microhttpd.h:3905
MHD_FEATURE_THREAD_NAMES
Definition:
microhttpd.h:3977
MHD_FEATURE_DIGEST_AUTH
Definition:
microhttpd.h:3947
MHD_NO
#define MHD_NO
Definition:
microhttpd.h:145
src
lib
version.c
Generated by
1.8.14