quickfix_ruby_ud 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. checksums.yaml +7 -0
  2. data/ext/quickfix/Acceptor.cpp +257 -0
  3. data/ext/quickfix/Acceptor.h +127 -0
  4. data/ext/quickfix/Allocator.h +9 -0
  5. data/ext/quickfix/Application.h +137 -0
  6. data/ext/quickfix/DOMDocument.h +70 -0
  7. data/ext/quickfix/DataDictionary.cpp +679 -0
  8. data/ext/quickfix/DataDictionary.h +607 -0
  9. data/ext/quickfix/DataDictionaryProvider.cpp +66 -0
  10. data/ext/quickfix/DataDictionaryProvider.h +67 -0
  11. data/ext/quickfix/DatabaseConnectionID.h +98 -0
  12. data/ext/quickfix/DatabaseConnectionPool.h +84 -0
  13. data/ext/quickfix/Dictionary.cpp +157 -0
  14. data/ext/quickfix/Dictionary.h +89 -0
  15. data/ext/quickfix/Event.h +89 -0
  16. data/ext/quickfix/Except.h +39 -0
  17. data/ext/quickfix/Exceptions.h +257 -0
  18. data/ext/quickfix/Field.h +654 -0
  19. data/ext/quickfix/FieldConvertors.cpp +86 -0
  20. data/ext/quickfix/FieldConvertors.h +800 -0
  21. data/ext/quickfix/FieldMap.cpp +254 -0
  22. data/ext/quickfix/FieldMap.h +327 -0
  23. data/ext/quickfix/FieldNumbers.h +44 -0
  24. data/ext/quickfix/FieldTypes.cpp +62 -0
  25. data/ext/quickfix/FieldTypes.h +817 -0
  26. data/ext/quickfix/Fields.h +30 -0
  27. data/ext/quickfix/FileLog.cpp +176 -0
  28. data/ext/quickfix/FileLog.h +110 -0
  29. data/ext/quickfix/FileStore.cpp +369 -0
  30. data/ext/quickfix/FileStore.h +131 -0
  31. data/ext/quickfix/FixCommonFields.h +13 -0
  32. data/ext/quickfix/FixFieldNumbers.h +6132 -0
  33. data/ext/quickfix/FixFields.h +6133 -0
  34. data/ext/quickfix/FixValues.h +5790 -0
  35. data/ext/quickfix/Group.cpp +44 -0
  36. data/ext/quickfix/Group.h +78 -0
  37. data/ext/quickfix/HostDetailsProvider.cpp +79 -0
  38. data/ext/quickfix/HostDetailsProvider.h +44 -0
  39. data/ext/quickfix/HtmlBuilder.h +178 -0
  40. data/ext/quickfix/HttpConnection.cpp +914 -0
  41. data/ext/quickfix/HttpConnection.h +74 -0
  42. data/ext/quickfix/HttpMessage.cpp +229 -0
  43. data/ext/quickfix/HttpMessage.h +112 -0
  44. data/ext/quickfix/HttpParser.cpp +49 -0
  45. data/ext/quickfix/HttpParser.h +49 -0
  46. data/ext/quickfix/HttpServer.cpp +152 -0
  47. data/ext/quickfix/HttpServer.h +76 -0
  48. data/ext/quickfix/Initiator.cpp +310 -0
  49. data/ext/quickfix/Initiator.h +151 -0
  50. data/ext/quickfix/Log.cpp +71 -0
  51. data/ext/quickfix/Log.h +254 -0
  52. data/ext/quickfix/Message.cpp +617 -0
  53. data/ext/quickfix/Message.h +419 -0
  54. data/ext/quickfix/MessageCracker.h +171 -0
  55. data/ext/quickfix/MessageSorters.cpp +101 -0
  56. data/ext/quickfix/MessageSorters.h +185 -0
  57. data/ext/quickfix/MessageStore.cpp +182 -0
  58. data/ext/quickfix/MessageStore.h +164 -0
  59. data/ext/quickfix/Mutex.h +120 -0
  60. data/ext/quickfix/MySQLConnection.h +187 -0
  61. data/ext/quickfix/MySQLLog.cpp +262 -0
  62. data/ext/quickfix/MySQLLog.h +158 -0
  63. data/ext/quickfix/MySQLStore.cpp +323 -0
  64. data/ext/quickfix/MySQLStore.h +161 -0
  65. data/ext/quickfix/MySQLStubs.h +203 -0
  66. data/ext/quickfix/NullStore.cpp +40 -0
  67. data/ext/quickfix/NullStore.h +89 -0
  68. data/ext/quickfix/OdbcConnection.h +241 -0
  69. data/ext/quickfix/OdbcLog.cpp +230 -0
  70. data/ext/quickfix/OdbcLog.h +109 -0
  71. data/ext/quickfix/OdbcStore.cpp +313 -0
  72. data/ext/quickfix/OdbcStore.h +124 -0
  73. data/ext/quickfix/PUGIXML_DOMDocument.cpp +112 -0
  74. data/ext/quickfix/PUGIXML_DOMDocument.h +81 -0
  75. data/ext/quickfix/Parser.cpp +111 -0
  76. data/ext/quickfix/Parser.h +50 -0
  77. data/ext/quickfix/PostgreSQLConnection.h +163 -0
  78. data/ext/quickfix/PostgreSQLLog.cpp +263 -0
  79. data/ext/quickfix/PostgreSQLLog.h +157 -0
  80. data/ext/quickfix/PostgreSQLStore.cpp +327 -0
  81. data/ext/quickfix/PostgreSQLStore.h +160 -0
  82. data/ext/quickfix/PostgreSQLStubs.h +203 -0
  83. data/ext/quickfix/Queue.h +66 -0
  84. data/ext/quickfix/QuickfixRuby.cpp +131900 -0
  85. data/ext/quickfix/QuickfixRuby.h +56 -0
  86. data/ext/quickfix/Responder.h +41 -0
  87. data/ext/quickfix/SSLSocketAcceptor.cpp +409 -0
  88. data/ext/quickfix/SSLSocketAcceptor.h +186 -0
  89. data/ext/quickfix/SSLSocketConnection.cpp +434 -0
  90. data/ext/quickfix/SSLSocketConnection.h +221 -0
  91. data/ext/quickfix/SSLSocketInitiator.cpp +558 -0
  92. data/ext/quickfix/SSLSocketInitiator.h +203 -0
  93. data/ext/quickfix/SSLStubs.h +129 -0
  94. data/ext/quickfix/Session.cpp +1437 -0
  95. data/ext/quickfix/Session.h +343 -0
  96. data/ext/quickfix/SessionFactory.cpp +314 -0
  97. data/ext/quickfix/SessionFactory.h +84 -0
  98. data/ext/quickfix/SessionID.h +136 -0
  99. data/ext/quickfix/SessionSettings.cpp +165 -0
  100. data/ext/quickfix/SessionSettings.h +283 -0
  101. data/ext/quickfix/SessionState.h +260 -0
  102. data/ext/quickfix/Settings.cpp +160 -0
  103. data/ext/quickfix/Settings.h +56 -0
  104. data/ext/quickfix/SharedArray.h +274 -0
  105. data/ext/quickfix/SocketAcceptor.cpp +216 -0
  106. data/ext/quickfix/SocketAcceptor.h +77 -0
  107. data/ext/quickfix/SocketConnection.cpp +256 -0
  108. data/ext/quickfix/SocketConnection.h +102 -0
  109. data/ext/quickfix/SocketConnector.cpp +112 -0
  110. data/ext/quickfix/SocketConnector.h +76 -0
  111. data/ext/quickfix/SocketInitiator.cpp +241 -0
  112. data/ext/quickfix/SocketInitiator.h +76 -0
  113. data/ext/quickfix/SocketMonitor.h +26 -0
  114. data/ext/quickfix/SocketMonitor_UNIX.cpp +238 -0
  115. data/ext/quickfix/SocketMonitor_UNIX.h +101 -0
  116. data/ext/quickfix/SocketMonitor_WIN32.cpp +248 -0
  117. data/ext/quickfix/SocketMonitor_WIN32.h +99 -0
  118. data/ext/quickfix/SocketServer.cpp +163 -0
  119. data/ext/quickfix/SocketServer.h +100 -0
  120. data/ext/quickfix/ThreadedSSLSocketAcceptor.cpp +436 -0
  121. data/ext/quickfix/ThreadedSSLSocketAcceptor.h +209 -0
  122. data/ext/quickfix/ThreadedSSLSocketConnection.cpp +364 -0
  123. data/ext/quickfix/ThreadedSSLSocketConnection.h +191 -0
  124. data/ext/quickfix/ThreadedSSLSocketInitiator.cpp +434 -0
  125. data/ext/quickfix/ThreadedSSLSocketInitiator.h +193 -0
  126. data/ext/quickfix/ThreadedSocketAcceptor.cpp +242 -0
  127. data/ext/quickfix/ThreadedSocketAcceptor.h +95 -0
  128. data/ext/quickfix/ThreadedSocketConnection.cpp +227 -0
  129. data/ext/quickfix/ThreadedSocketConnection.h +89 -0
  130. data/ext/quickfix/ThreadedSocketInitiator.cpp +238 -0
  131. data/ext/quickfix/ThreadedSocketInitiator.h +78 -0
  132. data/ext/quickfix/TimeRange.cpp +227 -0
  133. data/ext/quickfix/TimeRange.h +215 -0
  134. data/ext/quickfix/Utility.cpp +639 -0
  135. data/ext/quickfix/Utility.h +255 -0
  136. data/ext/quickfix/UtilitySSL.cpp +1612 -0
  137. data/ext/quickfix/UtilitySSL.h +274 -0
  138. data/ext/quickfix/Values.h +63 -0
  139. data/ext/quickfix/config-all.h +10 -0
  140. data/ext/quickfix/config.h +10 -0
  141. data/ext/quickfix/config_unix.h +178 -0
  142. data/ext/quickfix/config_windows.h +0 -0
  143. data/ext/quickfix/dirent_windows.h +838 -0
  144. data/ext/quickfix/double-conversion/bignum-dtoa.cc +641 -0
  145. data/ext/quickfix/double-conversion/bignum-dtoa.h +84 -0
  146. data/ext/quickfix/double-conversion/bignum.cc +766 -0
  147. data/ext/quickfix/double-conversion/bignum.h +144 -0
  148. data/ext/quickfix/double-conversion/cached-powers.cc +176 -0
  149. data/ext/quickfix/double-conversion/cached-powers.h +64 -0
  150. data/ext/quickfix/double-conversion/diy-fp.cc +57 -0
  151. data/ext/quickfix/double-conversion/diy-fp.h +118 -0
  152. data/ext/quickfix/double-conversion/double-conversion.cc +994 -0
  153. data/ext/quickfix/double-conversion/double-conversion.h +543 -0
  154. data/ext/quickfix/double-conversion/fast-dtoa.cc +665 -0
  155. data/ext/quickfix/double-conversion/fast-dtoa.h +88 -0
  156. data/ext/quickfix/double-conversion/fixed-dtoa.cc +404 -0
  157. data/ext/quickfix/double-conversion/fixed-dtoa.h +56 -0
  158. data/ext/quickfix/double-conversion/ieee.h +402 -0
  159. data/ext/quickfix/double-conversion/strtod.cc +557 -0
  160. data/ext/quickfix/double-conversion/strtod.h +45 -0
  161. data/ext/quickfix/double-conversion/utils.h +374 -0
  162. data/ext/quickfix/extconf.rb +76 -0
  163. data/ext/quickfix/index.h +37 -0
  164. data/ext/quickfix/pugiconfig.hpp +77 -0
  165. data/ext/quickfix/pugixml.cpp +13237 -0
  166. data/ext/quickfix/pugixml.hpp +1516 -0
  167. data/ext/quickfix/scope_guard.hpp +215 -0
  168. data/ext/quickfix/stdint_msvc.h +254 -0
  169. data/ext/quickfix/strptime.h +7 -0
  170. data/lib/quickfix40.rb +274 -0
  171. data/lib/quickfix41.rb +351 -0
  172. data/lib/quickfix42.rb +1184 -0
  173. data/lib/quickfix43.rb +3504 -0
  174. data/lib/quickfix44.rb +14040 -0
  175. data/lib/quickfix50.rb +20051 -0
  176. data/lib/quickfix50sp1.rb +23596 -0
  177. data/lib/quickfix50sp2.rb +412444 -0
  178. data/lib/quickfix_fields.rb +79393 -0
  179. data/lib/quickfix_ruby.rb +82 -0
  180. data/lib/quickfixt11.rb +65 -0
  181. data/spec/FIX40.xml +862 -0
  182. data/spec/FIX41.xml +1282 -0
  183. data/spec/FIX42.xml +2743 -0
  184. data/spec/FIX43.xml +4230 -0
  185. data/spec/FIX44.xml +6600 -0
  186. data/spec/FIX50.xml +8142 -0
  187. data/spec/FIX50SP1.xml +9506 -0
  188. data/spec/FIX50SP2.xml +26069 -0
  189. data/spec/FIXT11.xml +252 -0
  190. data/test/DataDictionaryTestCase.rb +268 -0
  191. data/test/DictionaryTestCase.rb +112 -0
  192. data/test/FieldBaseTestCase.rb +24 -0
  193. data/test/MessageStoreTestCase.rb +19 -0
  194. data/test/MessageTestCase.rb +368 -0
  195. data/test/SessionSettingsTestCase.rb +41 -0
  196. metadata +236 -0
@@ -0,0 +1,274 @@
1
+ /* Licensed to the Apache Software Foundation (ASF) under one or more
2
+ * contributor license agreements. See the NOTICE file distributed with
3
+ * this work for additional information regarding copyright ownership.
4
+ * The ASF licenses this file to You under the Apache License, Version 2.0
5
+ * (the "License"); you may not use this file except in compliance with
6
+ * the License. You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ /* ====================================================================
18
+ * Copyright (c) 1998-2006 Ralf S. Engelschall. All rights reserved.
19
+ *
20
+ * Redistribution and use in source and binary forms, with or without
21
+ * modification, are permitted provided that the following conditions
22
+ * are met:
23
+ *
24
+ * 1. Redistributions of source code must retain the above copyright
25
+ * notice, this list of conditions and the following disclaimer.
26
+ *
27
+ * 2. Redistributions in binary form must reproduce the above copyright
28
+ * notice, this list of conditions and the following
29
+ * disclaimer in the documentation and/or other materials
30
+ * provided with the distribution.
31
+ *
32
+ * 3. All advertising materials mentioning features or use of this
33
+ * software must display the following acknowledgment:
34
+ * "This product includes software developed by
35
+ * Ralf S. Engelschall <rse@engelschall.com> for use in the
36
+ * mod_ssl project (http://www.modssl.org/)."
37
+ *
38
+ * 4. The names "mod_ssl" must not be used to endorse or promote
39
+ * products derived from this software without prior written
40
+ * permission. For written permission, please contact
41
+ * rse@engelschall.com.
42
+ *
43
+ * 5. Products derived from this software may not be called "mod_ssl"
44
+ * nor may "mod_ssl" appear in their names without prior
45
+ * written permission of Ralf S. Engelschall.
46
+ *
47
+ * 6. Redistributions of any form whatsoever must retain the following
48
+ * acknowledgment:
49
+ * "This product includes software developed by
50
+ * Ralf S. Engelschall <rse@engelschall.com> for use in the
51
+ * mod_ssl project (http://www.modssl.org/)."
52
+ *
53
+ * THIS SOFTWARE IS PROVIDED BY RALF S. ENGELSCHALL ``AS IS'' AND ANY
54
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
55
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
56
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RALF S. ENGELSCHALL OR
57
+ * HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
58
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
59
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
60
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
61
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
62
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
63
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
64
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
65
+ * ====================================================================
66
+ */
67
+
68
+ /* ====================================================================
69
+ * Copyright (c) 1995-1999 Ben Laurie. All rights reserved.
70
+ *
71
+ * Redistribution and use in source and binary forms, with or without
72
+ * modification, are permitted provided that the following conditions
73
+ * are met:
74
+ *
75
+ * 1. Redistributions of source code must retain the above copyright
76
+ * notice, this list of conditions and the following disclaimer.
77
+ *
78
+ * 2. Redistributions in binary form must reproduce the above copyright
79
+ * notice, this list of conditions and the following disclaimer in
80
+ * the documentation and/or other materials provided with the
81
+ * distribution.
82
+ *
83
+ * 3. All advertising materials mentioning features or use of this
84
+ * software must display the following acknowledgment:
85
+ * "This product includes software developed by Ben Laurie
86
+ * for use in the Apache-SSL HTTP server project."
87
+ *
88
+ * 4. The name "Apache-SSL Server" must not be used to
89
+ * endorse or promote products derived from this software without
90
+ * prior written permission.
91
+ *
92
+ * 5. Redistributions of any form whatsoever must retain the following
93
+ * acknowledgment:
94
+ * "This product includes software developed by Ben Laurie
95
+ * for use in the Apache-SSL HTTP server project."
96
+ *
97
+ * THIS SOFTWARE IS PROVIDED BY BEN LAURIE ``AS IS'' AND ANY
98
+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
99
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
100
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BEN LAURIE OR
101
+ * HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
102
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
103
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
104
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
105
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
106
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
107
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
108
+ * OF THE POSSIBILITY OF SUCH DAMAGE.
109
+ * ====================================================================
110
+ */
111
+
112
+ #ifndef FIX_UTILITY_SSL_H
113
+ #define FIX_UTILITY_SSL_H
114
+
115
+ #if (HAVE_SSL > 0)
116
+
117
+ #include "Log.h"
118
+ #include "SessionSettings.h"
119
+ #include "Utility.h"
120
+
121
+ #ifndef _MSC_VER
122
+ #include <dirent.h>
123
+ #else
124
+ #ifndef HAVE_ACE_DIRENT
125
+ #include "dirent_windows.h"
126
+ #else
127
+ #include "ace/OS_NS_dirent.h"
128
+ #endif
129
+ #endif
130
+
131
+ #include "openssl/err.h"
132
+ #include "openssl/ssl.h" // SSL and SSL_CTX for SSL connections
133
+
134
+ namespace FIX {
135
+
136
+ #if defined(_MSC_VER)
137
+
138
+ static const char *WSAErrString(int code)
139
+ /********************************************************************************
140
+ * Translate WSA error code to message string (abreviated)
141
+ * Returns: pointer to static string.
142
+ */
143
+ {
144
+ #define expand(x) \
145
+ { x, #x }
146
+ static struct {
147
+ int code;
148
+ const char *s;
149
+ } tab[] = {expand(WSAEINTR), expand(WSAEBADF), expand(WSAEACCES), expand(WSAEFAULT),
150
+ expand(WSAEINVAL), expand(WSAEMFILE), expand(WSAEWOULDBLOCK), expand(WSAEINPROGRESS),
151
+ expand(WSAEALREADY), expand(WSAENOTSOCK), expand(WSAEDESTADDRREQ), expand(WSAEMSGSIZE),
152
+ expand(WSAEPROTOTYPE), expand(WSAENOPROTOOPT), expand(WSAEPROTONOSUPPORT), expand(WSAESOCKTNOSUPPORT),
153
+ expand(WSAEOPNOTSUPP), expand(WSAEPFNOSUPPORT), expand(WSAEAFNOSUPPORT), expand(WSAEADDRINUSE),
154
+ expand(WSAEADDRNOTAVAIL), expand(WSAENETDOWN), expand(WSAENETUNREACH), expand(WSAENETRESET),
155
+ expand(WSAECONNABORTED), expand(WSAECONNRESET), expand(WSAENOBUFS), expand(WSAEISCONN),
156
+ expand(WSAENOTCONN), expand(WSAESHUTDOWN), expand(WSAETOOMANYREFS), expand(WSAETIMEDOUT),
157
+ expand(WSAECONNREFUSED), expand(WSAELOOP), expand(WSAENAMETOOLONG), expand(WSAEHOSTDOWN),
158
+ expand(WSAEHOSTUNREACH), expand(WSAENOTEMPTY), expand(WSAEPROCLIM), expand(WSAEUSERS),
159
+ expand(WSAEDQUOT), expand(WSAESTALE), expand(WSAEREMOTE), {-1, ""}};
160
+ int i;
161
+
162
+ for (i = 0; tab[i].code > 0; i++) {
163
+ if (code == tab[i].code) {
164
+ return tab[i].s;
165
+ }
166
+ }
167
+
168
+ return "Unknown error code";
169
+ }
170
+
171
+ #undef expand
172
+ #define SLASH "\\"
173
+ #define SUFFIX "*"
174
+
175
+ #else
176
+
177
+ #define SLASH "/"
178
+
179
+ #endif
180
+
181
+ // Callback functions
182
+ extern "C" {
183
+ typedef int (*passPhraseHandleCallbackType)(char *, int, int, void *);
184
+
185
+ int caListX509NameCmp(const X509_NAME *const *a, const X509_NAME *const *b);
186
+ STACK_OF(X509_NAME) * findCAList(const char *cpCAfile, const char *cpCApath);
187
+ int lookupX509Store(X509_STORE *pStore, int nType, X509_NAME *pName, X509_OBJECT *pObj);
188
+ int callbackVerify(int ok, X509_STORE_CTX *ctx);
189
+ int callbackVerifyCRL(int ok, X509_STORE_CTX *ctx, X509_STORE *revStore);
190
+ X509_STORE *createX509Store(const char *cpFile, const char *cpPath);
191
+ X509 *readX509(FILE *fp, X509 **x509, passPhraseHandleCallbackType cb, void *passwordCallbackParam);
192
+ EVP_PKEY *readPrivateKey(FILE *fp, EVP_PKEY **key, passPhraseHandleCallbackType cb, void *passwordCallbackParam);
193
+ }
194
+
195
+ int setSocketNonBlocking(socket_handle pSocket);
196
+
197
+ // define certificate algorithm type
198
+ #define SSL_ALGO_UNKNOWN 0
199
+ #define SSL_ALGO_RSA 1
200
+ #define SSL_ALGO_DSA 2
201
+ #define SSL_ALGO_EC 8 // 8 to match SSL's own enum
202
+ #define SSL_ALGO_ALL (SSL_ALGO_RSA | SSL_ALGO_DSA | SSL_ALGO_EC)
203
+
204
+ /*
205
+ * Define the SSL Protocol options
206
+ */
207
+ #define SSL_PROTOCOL_NONE (0)
208
+ #define SSL_PROTOCOL_SSLV2 (1 << 0)
209
+ #define SSL_PROTOCOL_SSLV3 (1 << 1)
210
+ #define SSL_PROTOCOL_TLSV1 (1 << 2)
211
+ #define SSL_PROTOCOL_TLSV1_1 (1 << 3)
212
+ #define SSL_PROTOCOL_TLSV1_2 (1 << 4)
213
+ #if (OPENSSL_VERSION_NUMBER >= 0x1010100FL)
214
+ #define SSL_PROTOCOL_TLSV1_3 (1 << 5)
215
+ #define SSL_PROTOCOL_ALL \
216
+ (SSL_PROTOCOL_SSLV2 | SSL_PROTOCOL_SSLV3 | SSL_PROTOCOL_TLSV1 | SSL_PROTOCOL_TLSV1_1 | SSL_PROTOCOL_TLSV1_2 \
217
+ | SSL_PROTOCOL_TLSV1_3)
218
+ #else
219
+ #define SSL_PROTOCOL_ALL \
220
+ (SSL_PROTOCOL_SSLV2 | SSL_PROTOCOL_SSLV3 | SSL_PROTOCOL_TLSV1 | SSL_PROTOCOL_TLSV1_1 | SSL_PROTOCOL_TLSV1_2)
221
+ #endif
222
+
223
+ typedef enum {
224
+ SSL_CLIENT_VERIFY_NONE = 0,
225
+ SSL_CLIENT_VERIFY_REQUIRE = 1,
226
+ SSL_CLIENT_VERIFY_OPTIONAL = 2,
227
+ SSL_CLIENT_VERIFY_NOTSET = 3
228
+ } SSLVerifyClient;
229
+
230
+ // Should always call ssl_init/ssl_term.
231
+
232
+ void ssl_init();
233
+
234
+ void ssl_term();
235
+
236
+ void ssl_socket_close(socket_handle socket, SSL *ssl);
237
+
238
+ const char *socket_error(char *tempbuf, int buflen);
239
+
240
+ int typeofSSLAlgo(X509 *pCert, EVP_PKEY *pKey);
241
+
242
+ long protocolOptions(const char *opt);
243
+
244
+ void setCtxOptions(SSL_CTX *ctx, long options);
245
+
246
+ int enable_DH_ECDH(SSL_CTX *ctx, const char *certFile);
247
+
248
+ SSL_CTX *createSSLContext(bool server, const SessionSettings &settings, std::string &errStr);
249
+
250
+ bool loadSSLCert(
251
+ SSL_CTX *ctx,
252
+ bool server,
253
+ const SessionSettings &settings,
254
+ Log *log,
255
+ passPhraseHandleCallbackType cb,
256
+ void *passwordCallbackParam,
257
+ std::string &errStr);
258
+
259
+ bool loadCAInfo(
260
+ SSL_CTX *ctx,
261
+ bool server,
262
+ const SessionSettings &settings,
263
+ Log *log,
264
+ std::string &errStr,
265
+ int &verifyLevel);
266
+
267
+ X509_STORE *loadCRLInfo(SSL_CTX *ctx, const SessionSettings &settings, Log *log, std::string &errStr);
268
+
269
+ int acceptSSLConnection(socket_handle socket, SSL *ssl, Log *log, int verify);
270
+ } // namespace FIX
271
+
272
+ #endif
273
+
274
+ #endif
@@ -0,0 +1,63 @@
1
+ /* -*- C++ -*- */
2
+
3
+ /****************************************************************************
4
+ ** Copyright (c) 2001-2014
5
+ **
6
+ ** This file is part of the QuickFIX FIX Engine
7
+ **
8
+ ** This file may be distributed under the terms of the quickfixengine.org
9
+ ** license as defined by quickfixengine.org and appearing in the file
10
+ ** LICENSE included in the packaging of this file.
11
+ **
12
+ ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
13
+ ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
14
+ **
15
+ ** See http://www.quickfixengine.org/LICENSE for licensing information.
16
+ **
17
+ ** Contact ask@quickfixengine.org if any conditions of this licensing are
18
+ ** not clear to you.
19
+ **
20
+ ****************************************************************************/
21
+
22
+ #ifndef FIX_VALUES_BASE_H
23
+ #define FIX_VALUES_BASE_H
24
+
25
+ #include "FixValues.h"
26
+ #include <string>
27
+
28
+ namespace FIX {
29
+ const char BeginString_FIXT11[] = "FIXT.1.1";
30
+ const char BeginString_FIX50[] = "FIX.5.0";
31
+ const char BeginString_FIX44[] = "FIX.4.4";
32
+ const char BeginString_FIX43[] = "FIX.4.3";
33
+ const char BeginString_FIX42[] = "FIX.4.2";
34
+ const char BeginString_FIX41[] = "FIX.4.1";
35
+ const char BeginString_FIX40[] = "FIX.4.0";
36
+
37
+ const char SessionRejectReason_INVALID_TAG_NUMBER_TEXT[] = "Invalid tag number";
38
+ const char SessionRejectReason_REQUIRED_TAG_MISSING_TEXT[] = "Required tag missing";
39
+ const char SessionRejectReason_TAG_NOT_DEFINED_FOR_THIS_MESSAGE_TYPE_TEXT[] = "Tag not defined for this message type";
40
+ const char SessionRejectReason_UNDEFINED_TAG_TEXT[] = "Undefined Tag";
41
+ const char SessionRejectReason_TAG_SPECIFIED_WITHOUT_A_VALUE_TEXT[] = "Tag specified without a value";
42
+ const char SessionRejectReason_VALUE_IS_INCORRECT_TEXT[] = "Value is incorrect (out of range) for this tag";
43
+ const char SessionRejectReason_INCORRECT_DATA_FORMAT_FOR_VALUE_TEXT[] = "Incorrect data format for value";
44
+ const char SessionRejectReason_DECRYPTION_PROBLEM_TEXT[] = "Decryption problem";
45
+ const char SessionRejectReason_SIGNATURE_PROBLEM_TEXT[] = "Signature problem";
46
+ const char SessionRejectReason_COMPID_PROBLEM_TEXT[] = "CompID problem";
47
+ const char SessionRejectReason_SENDINGTIME_ACCURACY_PROBLEM_TEXT[] = "SendingTime accuracy problem";
48
+ const char SessionRejectReason_INVALID_MSGTYPE_TEXT[] = "Invalid MsgType";
49
+ const char SessionRejectReason_TAG_APPEARS_MORE_THAN_ONCE_TEXT[] = "Tag appears more than once";
50
+ const char SessionRejectReason_TAG_SPECIFIED_OUT_OF_REQUIRED_ORDER_TEXT[] = "Tag specified out of required order";
51
+ const char SessionRejectReason_INCORRECT_NUMINGROUP_COUNT_FOR_REPEATING_GROUP_TEXT[]
52
+ = "Incorrect NumInGroup count for repeating group";
53
+ const char BusinessRejectReason_OTHER_TEXT[] = "Other";
54
+ const char BusinessRejectReason_UNKNOWN_ID_TEXT[] = "Unknown ID";
55
+ const char BusinessRejectReason_UNKNOWN_SECURITY_TEXT[] = "Unknown Security";
56
+ const char BusinessRejectReason_UNSUPPORTED_MESSAGE_TYPE_TEXT[] = "Unsupported Message Type";
57
+ const char BusinessRejectReason_APPLICATION_NOT_AVAILABLE_TEXT[] = "Application Not Available";
58
+ const char BusinessRejectReason_CONDITIONALLY_REQUIRED_FIELD_MISSING_TEXT[] = "Conditionally Required Field Missing";
59
+ const char BusinessRejectReason_NOT_AUTHORIZED_TEXT[] = "Not Authorized";
60
+ const char BusinessRejectReason_DELIVER_TO_FIRM_NOT_AVAILABLE_AT_THIS_TIME_TEXT[]
61
+ = "Deliver to firm not available at this time";
62
+ } // namespace FIX
63
+ #endif // FIX_VALUES_BASE_H
@@ -0,0 +1,10 @@
1
+ #ifndef CONFIG_ALL_H
2
+ #define CONFIG_ALL_H
3
+
4
+ #if !defined(__x86_64) && !defined(_M_X64) && !defined(__i386) && !defined(_M_IX86)
5
+
6
+ #define NO_UNALIGNED_ACCESS 1
7
+
8
+ #endif
9
+
10
+ #endif
@@ -0,0 +1,10 @@
1
+ #ifndef CONFIG_H_IN
2
+ #define CONFIG_H_IN
3
+
4
+ #define HAVE_CXX17
5
+ /* #undef HAVE_STD_SHARED_PTR */
6
+ /* #undef HAVE_MYSQL */
7
+ /* #undef HAVE_POSTGRESQL */
8
+ /* #undef HAVE_SSL */
9
+
10
+ #endif
@@ -0,0 +1,178 @@
1
+ /* src/C++/config_unix.h. Generated from config_unix.h.in by configure. */
2
+ /* src/C++/config_unix.h.in. Generated from configure.ac by autoheader. */
3
+
4
+ /* __gnu_cxx::bitmap_allocator exists */
5
+ /* #undef ENABLE_BITMAP_ALLOCATOR */
6
+
7
+ /* boost::fast_pool_allocator exists */
8
+ /* #undef ENABLE_BOOST_FAST_POOL_ALLOCATOR */
9
+
10
+ /* boost::pool_allocator exists */
11
+ /* #undef ENABLE_BOOST_POOL_ALLOCATOR */
12
+
13
+ /* __gnu_cxx::debug_allocator exists */
14
+ /* #undef ENABLE_DEBUG_ALLOCATOR */
15
+
16
+ /* __gnu_cxx::mt_allocator exists */
17
+ /* #undef ENABLE_MT_ALLOCATOR */
18
+
19
+ /* __gnu_cxx::new_allocator exists */
20
+ /* #undef ENABLE_NEW_ALLOCATOR */
21
+
22
+ /* __gnu_cxx::pool_allocator exists */
23
+ /* #undef ENABLE_POOL_ALLOCATOR */
24
+
25
+ /* tbb::scalable_allocator exists */
26
+ /* #undef ENABLE_TBB_ALLOCATOR */
27
+
28
+ /* The system has gethostbyname_r which takes a result as a pass-in param */
29
+ /* #undef GETHOSTBYNAME_R_INPUTS_RESULT */
30
+
31
+ /* custom allocator configured */
32
+ /* #undef HAVE_ALLOCATOR_CONFIG */
33
+
34
+ /* Define if you have boost framework */
35
+ /* #undef HAVE_BOOST */
36
+
37
+ /* Define if clock_gettime exists. */
38
+ #define HAVE_CLOCK_GETTIME 1
39
+
40
+ /* whether or not we have to demangle names */
41
+ /* #undef HAVE_CPLUS_DEMANGLE */
42
+
43
+ /* define if the compiler supports basic C++11 syntax */
44
+ #define HAVE_CXX11 1
45
+
46
+ /* define if the compiler supports basic C++14 syntax */
47
+ #define HAVE_CXX14 1
48
+
49
+ /* define if the compiler supports basic C++17 syntax */
50
+ #define HAVE_CXX17 1
51
+
52
+ /* Define to 1 if you have the <dlfcn.h> header file. */
53
+ #define HAVE_DLFCN_H 1
54
+
55
+ /* found ftime */
56
+ #define HAVE_FTIME 1
57
+
58
+ /* Define to 1 if you have the <inttypes.h> header file. */
59
+ #define HAVE_INTTYPES_H 1
60
+
61
+ /* Define to 1 if you have the 'compat' library (-lcompat). */
62
+ /* #undef HAVE_LIBCOMPAT */
63
+
64
+ /* Define to 1 if you have the 'c_r' library (-lc_r). */
65
+ /* #undef HAVE_LIBC_R */
66
+
67
+ /* Define to 1 if you have the 'nsl' library (-lnsl). */
68
+ /* #undef HAVE_LIBNSL */
69
+
70
+ /* Define to 1 if you have the 'pthread' library (-lpthread). */
71
+ /* #undef HAVE_LIBPTHREAD */
72
+
73
+ /* Define to 1 if you have the 'rt' library (-lrt). */
74
+ /* #undef HAVE_LIBRT */
75
+
76
+ /* Define to 1 if you have the 'socket' library (-lsocket). */
77
+ /* #undef HAVE_LIBSOCKET */
78
+
79
+ /* Define if you have sql library (-lmysqlclient) */
80
+ /* #undef HAVE_MYSQL */
81
+
82
+ /* Define if you have odbc library */
83
+ /* #undef HAVE_ODBC */
84
+
85
+ /* Define to 1 if you have the <openssl/ssl.h> header file. */
86
+ /* #undef HAVE_OPENSSL_SSL_H */
87
+
88
+ /* Define to 1 if PostgreSQL libraries are available */
89
+ #define HAVE_POSTGRESQL 1
90
+
91
+ /* Define if you have python3 */
92
+ /* #undef HAVE_PYTHON3 */
93
+
94
+ /* Define if you have ruby */
95
+ #define HAVE_RUBY 1
96
+
97
+ /* Define if you have SSL */
98
+ /* #undef HAVE_SSL */
99
+
100
+ /* Define to 1 if you have the <stdint.h> header file. */
101
+ #define HAVE_STDINT_H 1
102
+
103
+ /* Define to 1 if you have the <stdio.h> header file. */
104
+ #define HAVE_STDIO_H 1
105
+
106
+ /* Define to 1 if you have the <stdlib.h> header file. */
107
+ #define HAVE_STDLIB_H 1
108
+
109
+ /* Define to 1 if you have the <strings.h> header file. */
110
+ #define HAVE_STRINGS_H 1
111
+
112
+ /* Define to 1 if you have the <string.h> header file. */
113
+ #define HAVE_STRING_H 1
114
+
115
+ /* Define to 1 if you have the <sys/stat.h> header file. */
116
+ #define HAVE_SYS_STAT_H 1
117
+
118
+ /* Define to 1 if you have the <sys/types.h> header file. */
119
+ #define HAVE_SYS_TYPES_H 1
120
+
121
+ /* Define if you have Intel TBB framework */
122
+ /* #undef HAVE_TBB */
123
+
124
+ /* Define to 1 if you have the <unistd.h> header file. */
125
+ #define HAVE_UNISTD_H 1
126
+
127
+ /* Define to the sub-directory where libtool stores uninstalled libraries. */
128
+ #define LT_OBJDIR ".libs/"
129
+
130
+ /* Name of package */
131
+ #define PACKAGE "quickfix"
132
+
133
+ /* Define to the address where bug reports for this package should be sent. */
134
+ #define PACKAGE_BUGREPORT "ask@quickfixengine.org"
135
+
136
+ /* Define to the full name of this package. */
137
+ #define PACKAGE_NAME "QuickFIX"
138
+
139
+ /* Define to the full name and version of this package. */
140
+ #define PACKAGE_STRING "QuickFIX 1.16.0"
141
+
142
+ /* Define to the one symbol short name of this package. */
143
+ #define PACKAGE_TARNAME "quickfix"
144
+
145
+ /* Define to the home page for this package. */
146
+ #define PACKAGE_URL ""
147
+
148
+ /* Define to the version of this package. */
149
+ #define PACKAGE_VERSION "1.16.0"
150
+
151
+ /* select statement decrements timeval parameter if interupted */
152
+ /* #undef SELECT_MODIFIES_TIMEVAL */
153
+
154
+ /* Define to 1 if all of the C89 standard headers exist (not just the ones
155
+ required in a freestanding environment). This macro is provided for
156
+ backward compatibility; new code need not use it. */
157
+ #define STDC_HEADERS 1
158
+
159
+ /* For location of set_terminate */
160
+ #define TERMINATE_IN_STD 1
161
+
162
+ /* Whether or not we are using the new-style typeinfo header */
163
+ #define TYPEINFO_IN_STD 1
164
+
165
+ /* The system supports AT&T STREAMS */
166
+ /* #undef USING_STREAMS */
167
+
168
+ /* Version number of package */
169
+ #define VERSION "1.16.0"
170
+
171
+ /* enable reentrant system calls */
172
+ #define _REENTRANT 1
173
+
174
+ /* Define if clock_get_time exists. */
175
+ #define __MACH__ 1
176
+
177
+ /* socklen_t needs to be defined if the system doesn't define it */
178
+ /* #undef socklen_t */
File without changes