zeroc-ice 3.8.0 → 3.8.2
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.
- checksums.yaml +4 -4
- data/dist/IceRuby/Operation.cpp +22 -6
- data/dist/IceRuby/Slice.cpp +1 -1
- data/dist/ice/cpp/include/Ice/Communicator.h +4 -4
- data/dist/ice/cpp/include/Ice/Config.h +2 -2
- data/dist/ice/cpp/include/Ice/Connection.h +3 -3
- data/dist/ice/cpp/include/Ice/Endpoint.h +2 -2
- data/dist/ice/cpp/include/Ice/Exception.h +1 -1
- data/dist/ice/cpp/include/Ice/Initialize.h +1 -1
- data/dist/ice/cpp/include/Ice/LocalExceptions.h +22 -1
- data/dist/ice/cpp/include/Ice/Logger.h +3 -3
- data/dist/ice/cpp/include/Ice/NativePropertiesAdmin.h +2 -0
- data/dist/ice/cpp/include/Ice/ObjectAdapter.h +3 -3
- data/dist/ice/cpp/include/Ice/ObserverHelper.h +1 -0
- data/dist/ice/cpp/include/Ice/OutputStream.h +27 -5
- data/dist/ice/cpp/include/Ice/Properties.h +3 -3
- data/dist/ice/cpp/include/Ice/Proxy.h +1 -1
- data/dist/ice/cpp/include/Ice/SSL/ClientAuthenticationOptions.h +10 -2
- data/dist/ice/cpp/include/Ice/SSL/ServerAuthenticationOptions.h +10 -2
- data/dist/ice/cpp/include/generated/Ice/BuiltinSequences.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/Context.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/EndpointTypes.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/Identity.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/Locator.h +9 -11
- data/dist/ice/cpp/include/generated/Ice/LocatorRegistry.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/Metrics.h +7 -7
- data/dist/ice/cpp/include/generated/Ice/OperationMode.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/Process.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/PropertiesAdmin.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/PropertyDict.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/RemoteLogger.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/ReplyStatus.h +8 -4
- data/dist/ice/cpp/include/generated/Ice/Router.h +7 -7
- data/dist/ice/cpp/include/generated/Ice/SliceChecksumDict.h +2 -2
- data/dist/ice/cpp/include/generated/Ice/Version.h +2 -2
- data/dist/ice/cpp/include/generated/IceDiscovery/Lookup.h +2 -2
- data/dist/ice/cpp/include/generated/IceLocatorDiscovery/Lookup.h +2 -2
- data/dist/ice/cpp/src/Ice/CollocatedRequestHandler.cpp +5 -3
- data/dist/ice/cpp/src/Ice/ConnectionFactory.h +8 -8
- data/dist/ice/cpp/src/Ice/ConnectionI.cpp +28 -11
- data/dist/ice/cpp/src/Ice/ConnectionI.h +1 -1
- data/dist/ice/cpp/src/Ice/Demangle.cpp +1 -0
- data/dist/ice/cpp/src/Ice/FileUtil.cpp +3 -67
- data/dist/ice/cpp/src/Ice/FileUtil.h +0 -3
- data/dist/ice/cpp/src/Ice/IPEndpointI.cpp +4 -0
- data/dist/ice/cpp/src/Ice/IncomingRequest.cpp +1 -1
- data/dist/ice/cpp/src/Ice/InputStream.cpp +28 -17
- data/dist/ice/cpp/src/Ice/LocalException.cpp +1 -1
- data/dist/ice/cpp/src/Ice/LocalExceptions.cpp +6 -0
- data/dist/ice/cpp/src/Ice/OutgoingAsync.cpp +1 -1
- data/dist/ice/cpp/src/Ice/OutgoingResponse.cpp +127 -127
- data/dist/ice/cpp/src/Ice/OutgoingResponseInternal.h +21 -0
- data/dist/ice/cpp/src/Ice/OutputStream.cpp +80 -115
- data/dist/ice/cpp/src/Ice/PropertyNames.cpp +3 -2
- data/dist/ice/cpp/src/Ice/ProxyFunctions.cpp +4 -4
- data/dist/ice/cpp/src/Ice/Reference.cpp +15 -15
- data/dist/ice/cpp/src/Ice/ReferenceFactory.cpp +16 -13
- data/dist/ice/cpp/src/Ice/ResourceConfig.h +2 -2
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.cpp +29 -20
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLEngine.h +1 -2
- data/dist/ice/cpp/src/Ice/SSL/OpenSSLTransceiverI.cpp +14 -3
- data/dist/ice/cpp/src/Ice/SSL/RFC2253.cpp +3 -3
- data/dist/ice/cpp/src/Ice/SSL/SSLEndpointI.cpp +1 -1
- data/dist/ice/cpp/src/Ice/SSL/SSLEngine.h +4 -10
- data/dist/ice/cpp/src/Ice/SSL/SSLUtil.cpp +21 -2
- data/dist/ice/cpp/src/Ice/SSL/SSLUtil.h +15 -1
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.cpp +67 -48
- data/dist/ice/cpp/src/Ice/SSL/SchannelEngine.h +1 -5
- data/dist/ice/cpp/src/Ice/SSL/SchannelTransceiverI.cpp +14 -2
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.cpp +111 -15
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportEngine.h +7 -2
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportTransceiverI.h +1 -1
- data/dist/ice/cpp/src/Ice/SSL/SecureTransportUtil.cpp +3 -16
- data/dist/ice/cpp/src/Ice/SSL/TrustManager.cpp +12 -1
- data/dist/ice/cpp/src/Ice/ServantManager.h +1 -1
- data/dist/ice/cpp/src/Ice/StringConverter.cpp +4 -0
- data/dist/ice/cpp/src/Ice/TcpEndpointI.cpp +2 -2
- data/dist/ice/cpp/src/Ice/UdpEndpointI.cpp +2 -2
- data/dist/ice/cpp/src/Ice/WSAcceptor.cpp +8 -3
- data/dist/ice/cpp/src/Ice/WSAcceptor.h +5 -1
- data/dist/ice/cpp/src/Ice/WSEndpoint.cpp +45 -2
- data/dist/ice/cpp/src/Ice/WSTransceiver.cpp +118 -7
- data/dist/ice/cpp/src/Ice/WSTransceiver.h +12 -1
- data/dist/ice/cpp/src/Ice/generated/BuiltinSequences.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/Context.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/EndpointTypes.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/Identity.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/Locator.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/LocatorRegistry.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/Metrics.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/OperationMode.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/Process.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/PropertiesAdmin.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/PropertyDict.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/RemoteLogger.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/ReplyStatus.cpp +4 -2
- data/dist/ice/cpp/src/Ice/generated/Router.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/SliceChecksumDict.cpp +2 -2
- data/dist/ice/cpp/src/Ice/generated/Version.cpp +2 -2
- data/dist/ice/cpp/src/IceDiscovery/LocatorI.cpp +2 -2
- data/dist/ice/cpp/src/IceDiscovery/LookupI.cpp +4 -3
- data/dist/ice/cpp/src/IceDiscovery/LookupI.h +2 -1
- data/dist/ice/cpp/src/IceDiscovery/generated/Lookup.cpp +2 -2
- data/dist/ice/cpp/src/IceLocatorDiscovery/PluginI.cpp +6 -18
- data/dist/ice/cpp/src/IceLocatorDiscovery/generated/Lookup.cpp +2 -2
- data/dist/ice/cpp/src/Slice/DocCommentParser.cpp +6 -6
- data/dist/ice/cpp/src/Slice/DocCommentParser.h +4 -2
- data/dist/ice/cpp/src/Slice/FileTracker.h +1 -0
- data/dist/ice/cpp/src/Slice/Grammar.cpp +261 -264
- data/dist/ice/cpp/src/Slice/MetadataValidation.cpp +39 -7
- data/dist/ice/cpp/src/Slice/MetadataValidation.h +3 -2
- data/dist/ice/cpp/src/Slice/Parser.cpp +192 -155
- data/dist/ice/cpp/src/Slice/Parser.h +44 -9
- data/dist/ice/cpp/src/Slice/Preprocessor.cpp +76 -20
- data/dist/ice/cpp/src/Slice/Preprocessor.h +0 -1
- data/dist/ice/cpp/src/Slice/Scanner.cpp +1 -1
- data/dist/ice/cpp/src/Slice/SliceUtil.cpp +44 -58
- data/dist/ice/cpp/src/Slice/StringLiteralUtil.cpp +3 -10
- data/dist/ice/cpp/src/Slice/Util.h +7 -3
- data/dist/ice/cpp/src/slice2rb/Main.cpp +2 -2
- data/dist/ice/cpp/src/slice2rb/Ruby.cpp +1 -1
- data/dist/ice/cpp/src/slice2rb/RubyUtil.cpp +10 -8
- data/dist/ice/cpp/src/slice2rb/RubyUtil.h +10 -13
- data/dist/ice/mcpp/directive.c +5 -2
- data/dist/ice/mcpp/mcpp_main.c +1 -1
- data/dist/ice/mcpp/support.c +6 -6
- data/dist/ice/mcpp/system.c +5 -5
- data/dist/ice/slice/Ice/Identity.ice +3 -0
- data/dist/ice/slice/Ice/Locator.ice +6 -5
- data/dist/ice/slice/Ice/LocatorRegistry.ice +3 -0
- data/dist/ice/slice/Ice/Metrics.ice +1 -1
- data/dist/ice/slice/Ice/OperationMode.ice +8 -0
- data/dist/ice/slice/Ice/Process.ice +3 -0
- data/dist/ice/slice/Ice/ReplyStatus.ice +13 -0
- data/dist/lib/Glacier2/Metrics.rb +1 -1
- data/dist/lib/Glacier2/PermissionsVerifier.rb +3 -3
- data/dist/lib/Glacier2/Router.rb +8 -8
- data/dist/lib/Glacier2/SSLInfo.rb +1 -1
- data/dist/lib/Glacier2/Session.rb +15 -15
- data/dist/lib/Ice/BuiltinSequences.rb +1 -1
- data/dist/lib/Ice/Context.rb +1 -1
- data/dist/lib/Ice/EndpointTypes.rb +1 -1
- data/dist/lib/Ice/Identity.rb +1 -1
- data/dist/lib/Ice/LocalExceptions.rb +3 -0
- data/dist/lib/Ice/Locator.rb +5 -5
- data/dist/lib/Ice/LocatorRegistry.rb +4 -4
- data/dist/lib/Ice/Metrics.rb +7 -7
- data/dist/lib/Ice/OperationMode.rb +1 -1
- data/dist/lib/Ice/Process.rb +3 -3
- data/dist/lib/Ice/PropertiesAdmin.rb +4 -4
- data/dist/lib/Ice/PropertyDict.rb +1 -1
- data/dist/lib/Ice/ProxyFunctions.rb +8 -4
- data/dist/lib/Ice/RemoteLogger.rb +6 -6
- data/dist/lib/Ice/ReplyStatus.rb +3 -2
- data/dist/lib/Ice/Router.rb +5 -5
- data/dist/lib/Ice/SliceChecksumDict.rb +1 -1
- data/dist/lib/Ice/Version.rb +1 -1
- data/dist/lib/IceBox/ServiceManager.rb +8 -8
- data/dist/lib/IceGrid/Admin.rb +83 -83
- data/dist/lib/IceGrid/Descriptor.rb +1 -1
- data/dist/lib/IceGrid/Exception.rb +1 -1
- data/dist/lib/IceGrid/FileParser.rb +2 -2
- data/dist/lib/IceGrid/Registry.rb +13 -13
- data/dist/lib/IceGrid/Session.rb +6 -6
- data/dist/lib/IceGrid/UserAccountMapper.rb +2 -2
- data/dist/lib/IceStorm/IceStorm.rb +16 -16
- data/dist/lib/IceStorm/Metrics.rb +1 -1
- data/ice.gemspec +1 -1
- metadata +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'Metrics.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# if ICE_INT_VERSION % 100 >= 50
|
|
19
19
|
# error Beta header file detected
|
|
20
20
|
# endif
|
|
21
|
-
# if ICE_INT_VERSION % 100 <
|
|
21
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
22
22
|
# error Ice patch level mismatch!
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -217,7 +217,7 @@ namespace IceMX
|
|
|
217
217
|
/// @param[out] timestamp The local time of the process when the metrics objects were retrieved.
|
|
218
218
|
/// @param context The request context.
|
|
219
219
|
/// @return The metrics view data, a dictionary of metric maps for each metrics class configured with the view.
|
|
220
|
-
/// The
|
|
220
|
+
/// The `timestamp` allows the client to compute averages which are not dependent on the invocation latency for
|
|
221
221
|
/// this operation.
|
|
222
222
|
/// @throws IceMX::UnknownMetricsView Thrown when the metrics view cannot be found.
|
|
223
223
|
MetricsView getMetricsView(std::string_view view, std::int64_t& timestamp, const Ice::Context& context = Ice::noExplicitContext) const;
|
|
@@ -227,7 +227,7 @@ namespace IceMX
|
|
|
227
227
|
/// @param context The request context.
|
|
228
228
|
/// @return A future that becomes available when the invocation completes. This future holds:
|
|
229
229
|
/// - `returnValue` The metrics view data, a dictionary of metric maps for each metrics class configured with the view.
|
|
230
|
-
/// The
|
|
230
|
+
/// The `timestamp` allows the client to compute averages which are not dependent on the invocation latency for
|
|
231
231
|
/// this operation.
|
|
232
232
|
/// - `timestamp` The local time of the process when the metrics objects were retrieved.
|
|
233
233
|
[[nodiscard]] std::future<std::tuple<MetricsView, std::int64_t>> getMetricsViewAsync(std::string_view view, const Ice::Context& context = Ice::noExplicitContext) const;
|
|
@@ -236,7 +236,7 @@ namespace IceMX
|
|
|
236
236
|
/// @param view The name of the metrics view.
|
|
237
237
|
/// @param response The response callback. It accepts:
|
|
238
238
|
/// - `returnValue` The metrics view data, a dictionary of metric maps for each metrics class configured with the view.
|
|
239
|
-
/// The
|
|
239
|
+
/// The `timestamp` allows the client to compute averages which are not dependent on the invocation latency for
|
|
240
240
|
/// this operation.
|
|
241
241
|
/// - `timestamp` The local time of the process when the metrics objects were retrieved.
|
|
242
242
|
/// @param exception The exception callback.
|
|
@@ -929,7 +929,7 @@ namespace IceMX
|
|
|
929
929
|
/// @param[out] timestamp The local time of the process when the metrics objects were retrieved.
|
|
930
930
|
/// @param current The Current object of the incoming request.
|
|
931
931
|
/// @return The metrics view data, a dictionary of metric maps for each metrics class configured with the view.
|
|
932
|
-
/// The
|
|
932
|
+
/// The `timestamp` allows the client to compute averages which are not dependent on the invocation latency for
|
|
933
933
|
/// this operation.
|
|
934
934
|
/// @throws IceMX::UnknownMetricsView Thrown when the metrics view cannot be found.
|
|
935
935
|
virtual MetricsView getMetricsView(std::string view, std::int64_t& timestamp, const Ice::Current& current) = 0;
|
|
@@ -1027,7 +1027,7 @@ namespace IceMX
|
|
|
1027
1027
|
/// @param view The name of the metrics view.
|
|
1028
1028
|
/// @param response The response callback. It accepts:
|
|
1029
1029
|
/// - `returnValue` The metrics view data, a dictionary of metric maps for each metrics class configured with the view.
|
|
1030
|
-
/// The
|
|
1030
|
+
/// The `timestamp` allows the client to compute averages which are not dependent on the invocation latency for
|
|
1031
1031
|
/// this operation.
|
|
1032
1032
|
/// - `timestamp` The local time of the process when the metrics objects were retrieved.
|
|
1033
1033
|
/// @param exception The exception callback.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'OperationMode.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# if ICE_INT_VERSION % 100 >= 50
|
|
19
19
|
# error Beta header file detected
|
|
20
20
|
# endif
|
|
21
|
-
# if ICE_INT_VERSION % 100 <
|
|
21
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
22
22
|
# error Ice patch level mismatch!
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'Process.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# if ICE_INT_VERSION % 100 >= 50
|
|
19
19
|
# error Beta header file detected
|
|
20
20
|
# endif
|
|
21
|
-
# if ICE_INT_VERSION % 100 <
|
|
21
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
22
22
|
# error Ice patch level mismatch!
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'PropertiesAdmin.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# if ICE_INT_VERSION % 100 >= 50
|
|
19
19
|
# error Beta header file detected
|
|
20
20
|
# endif
|
|
21
|
-
# if ICE_INT_VERSION % 100 <
|
|
21
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
22
22
|
# error Ice patch level mismatch!
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'PropertyDict.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
# if ICE_INT_VERSION % 100 >= 50
|
|
20
20
|
# error Beta header file detected
|
|
21
21
|
# endif
|
|
22
|
-
# if ICE_INT_VERSION % 100 <
|
|
22
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
23
23
|
# error Ice patch level mismatch!
|
|
24
24
|
# endif
|
|
25
25
|
#endif
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'RemoteLogger.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
# if ICE_INT_VERSION % 100 >= 50
|
|
20
20
|
# error Beta header file detected
|
|
21
21
|
# endif
|
|
22
|
-
# if ICE_INT_VERSION % 100 <
|
|
22
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
23
23
|
# error Ice patch level mismatch!
|
|
24
24
|
# endif
|
|
25
25
|
#endif
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'ReplyStatus.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# if ICE_INT_VERSION % 100 >= 50
|
|
19
19
|
# error Beta header file detected
|
|
20
20
|
# endif
|
|
21
|
-
# if ICE_INT_VERSION % 100 <
|
|
21
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
22
22
|
# error Ice patch level mismatch!
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -63,7 +63,11 @@ namespace Ice
|
|
|
63
63
|
InvalidData = 8,
|
|
64
64
|
|
|
65
65
|
/// The caller is not authorized to access the requested resource.
|
|
66
|
-
Unauthorized = 9
|
|
66
|
+
Unauthorized = 9,
|
|
67
|
+
|
|
68
|
+
/// The dispatch failed because the request requires a feature that the server or the target servant does not
|
|
69
|
+
/// support.
|
|
70
|
+
NotSupported = 10
|
|
67
71
|
};
|
|
68
72
|
|
|
69
73
|
/// Outputs the enumerator name or underlying value of a ReplyStatus to a stream.
|
|
@@ -81,7 +85,7 @@ namespace Ice
|
|
|
81
85
|
{
|
|
82
86
|
static constexpr StreamHelperCategory helper = StreamHelperCategoryEnum;
|
|
83
87
|
static constexpr int minValue = 0;
|
|
84
|
-
static constexpr int maxValue =
|
|
88
|
+
static constexpr int maxValue = 10;
|
|
85
89
|
static constexpr int minWireSize = 1;
|
|
86
90
|
static constexpr bool fixedLength = false;
|
|
87
91
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'Router.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# if ICE_INT_VERSION % 100 >= 50
|
|
19
19
|
# error Beta header file detected
|
|
20
20
|
# endif
|
|
21
|
-
# if ICE_INT_VERSION % 100 <
|
|
21
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
22
22
|
# error Ice patch level mismatch!
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -83,7 +83,7 @@ namespace Ice
|
|
|
83
83
|
/// router. If a null proxy is returned, the client will forward requests to the router's endpoints.
|
|
84
84
|
/// @param[out] hasRoutingTable Indicates whether or not the router supports a routing table. If `true`, the Ice
|
|
85
85
|
/// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
|
|
86
|
-
/// a routing table when
|
|
86
|
+
/// a routing table when `hasRoutingTable` is not set.
|
|
87
87
|
/// @param context The request context.
|
|
88
88
|
/// @return The router's client proxy.
|
|
89
89
|
/// @remarks Introduced in Ice 3.7.
|
|
@@ -96,7 +96,7 @@ namespace Ice
|
|
|
96
96
|
/// - `returnValue` The router's client proxy.
|
|
97
97
|
/// - `hasRoutingTable` Indicates whether or not the router supports a routing table. If `true`, the Ice
|
|
98
98
|
/// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
|
|
99
|
-
/// a routing table when
|
|
99
|
+
/// a routing table when `hasRoutingTable` is not set.
|
|
100
100
|
/// @remarks Introduced in Ice 3.7.
|
|
101
101
|
[[nodiscard]] std::future<std::tuple<std::optional<Ice::ObjectPrx>, std::optional<bool>>> getClientProxyAsync(const Ice::Context& context = Ice::noExplicitContext) const;
|
|
102
102
|
|
|
@@ -106,7 +106,7 @@ namespace Ice
|
|
|
106
106
|
/// - `returnValue` The router's client proxy.
|
|
107
107
|
/// - `hasRoutingTable` Indicates whether or not the router supports a routing table. If `true`, the Ice
|
|
108
108
|
/// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
|
|
109
|
-
/// a routing table when
|
|
109
|
+
/// a routing table when `hasRoutingTable` is not set.
|
|
110
110
|
/// @param exception The exception callback.
|
|
111
111
|
/// @param sent The sent callback.
|
|
112
112
|
/// @param context The request context.
|
|
@@ -307,7 +307,7 @@ namespace Ice
|
|
|
307
307
|
/// router. If a null proxy is returned, the client will forward requests to the router's endpoints.
|
|
308
308
|
/// @param[out] hasRoutingTable Indicates whether or not the router supports a routing table. If `true`, the Ice
|
|
309
309
|
/// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
|
|
310
|
-
/// a routing table when
|
|
310
|
+
/// a routing table when `hasRoutingTable` is not set.
|
|
311
311
|
/// @param current The Current object of the incoming request.
|
|
312
312
|
/// @return The router's client proxy.
|
|
313
313
|
/// @remarks Introduced in Ice 3.7.
|
|
@@ -409,7 +409,7 @@ namespace Ice
|
|
|
409
409
|
/// - `returnValue` The router's client proxy.
|
|
410
410
|
/// - `hasRoutingTable` Indicates whether or not the router supports a routing table. If `true`, the Ice
|
|
411
411
|
/// runtime will call ::Ice::RouterPrx::addProxies to populate the routing table. The Ice runtime assumes the router has
|
|
412
|
-
/// a routing table when
|
|
412
|
+
/// a routing table when `hasRoutingTable` is not set.
|
|
413
413
|
/// @param exception The exception callback.
|
|
414
414
|
/// @param current The Current object of the incoming request.
|
|
415
415
|
/// @remarks Introduced in Ice 3.7.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'SliceChecksumDict.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
# if ICE_INT_VERSION % 100 >= 50
|
|
18
18
|
# error Beta header file detected
|
|
19
19
|
# endif
|
|
20
|
-
# if ICE_INT_VERSION % 100 <
|
|
20
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
21
21
|
# error Ice patch level mismatch!
|
|
22
22
|
# endif
|
|
23
23
|
#endif
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'Version.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
# if ICE_INT_VERSION % 100 >= 50
|
|
21
21
|
# error Beta header file detected
|
|
22
22
|
# endif
|
|
23
|
-
# if ICE_INT_VERSION % 100 <
|
|
23
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
24
24
|
# error Ice patch level mismatch!
|
|
25
25
|
# endif
|
|
26
26
|
#endif
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'Lookup.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# if ICE_INT_VERSION % 100 >= 50
|
|
19
19
|
# error Beta header file detected
|
|
20
20
|
# endif
|
|
21
|
-
# if ICE_INT_VERSION % 100 <
|
|
21
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
22
22
|
# error Ice patch level mismatch!
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) ZeroC, Inc.
|
|
2
2
|
|
|
3
|
-
// slice2cpp version 3.8.
|
|
3
|
+
// slice2cpp version 3.8.2
|
|
4
4
|
// <auto-generated>Generated from Slice file 'Lookup.ice'.</auto-generated>
|
|
5
5
|
// clang-format off
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
# if ICE_INT_VERSION % 100 >= 50
|
|
19
19
|
# error Beta header file detected
|
|
20
20
|
# endif
|
|
21
|
-
# if ICE_INT_VERSION % 100 <
|
|
21
|
+
# if ICE_INT_VERSION % 100 < 2
|
|
22
22
|
# error Ice patch level mismatch!
|
|
23
23
|
# endif
|
|
24
24
|
#endif
|
|
@@ -107,13 +107,15 @@ CollocatedRequestHandler::invokeAsyncRequest(OutgoingAsyncBase* outAsync, int ba
|
|
|
107
107
|
//
|
|
108
108
|
outAsync->cancelable(shared_from_this());
|
|
109
109
|
|
|
110
|
+
auto outAsyncPtr = outAsync->shared_from_this();
|
|
111
|
+
|
|
110
112
|
if (_response)
|
|
111
113
|
{
|
|
112
114
|
requestId = ++_requestId;
|
|
113
|
-
_asyncRequests.insert(make_pair(requestId,
|
|
115
|
+
_asyncRequests.insert(make_pair(requestId, outAsyncPtr));
|
|
114
116
|
}
|
|
115
117
|
|
|
116
|
-
_sendAsyncRequests.insert(make_pair(
|
|
118
|
+
_sendAsyncRequests.insert(make_pair(outAsyncPtr, requestId));
|
|
117
119
|
}
|
|
118
120
|
|
|
119
121
|
OutputStream* os = outAsync->getOs();
|
|
@@ -348,7 +350,7 @@ CollocatedRequestHandler::sendResponse(OutgoingResponse response)
|
|
|
348
350
|
is.swap(*q->second->getIs());
|
|
349
351
|
if (q->second->response())
|
|
350
352
|
{
|
|
351
|
-
outAsync = q->second;
|
|
353
|
+
outAsync = std::move(q->second);
|
|
352
354
|
}
|
|
353
355
|
_asyncRequests.erase(q);
|
|
354
356
|
}
|
|
@@ -88,11 +88,11 @@ namespace IceInternal
|
|
|
88
88
|
std::function<void(Ice::ConnectionIPtr, bool)>,
|
|
89
89
|
std::function<void(std::exception_ptr)>);
|
|
90
90
|
|
|
91
|
-
|
|
92
|
-
|
|
91
|
+
void connectionStartCompleted(const Ice::ConnectionIPtr&);
|
|
92
|
+
void connectionStartFailed(const Ice::ConnectionIPtr&, std::exception_ptr);
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
|
|
94
|
+
void connectors(const std::vector<ConnectorPtr>&);
|
|
95
|
+
void exception(std::exception_ptr);
|
|
96
96
|
|
|
97
97
|
void getConnectors();
|
|
98
98
|
void nextEndpoint();
|
|
@@ -193,8 +193,8 @@ namespace IceInternal
|
|
|
193
193
|
//
|
|
194
194
|
|
|
195
195
|
#if defined(ICE_USE_IOCP)
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
bool startAsync(SocketOperation) final;
|
|
197
|
+
bool finishAsync(SocketOperation) final;
|
|
198
198
|
#endif
|
|
199
199
|
|
|
200
200
|
void message(ThreadPoolCurrent&) override;
|
|
@@ -205,8 +205,8 @@ namespace IceInternal
|
|
|
205
205
|
[[nodiscard]] std::string toString() const override;
|
|
206
206
|
NativeInfoPtr getNativeInfo() override;
|
|
207
207
|
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
void connectionStartCompleted(const Ice::ConnectionIPtr&);
|
|
209
|
+
void connectionStartFailed(const Ice::ConnectionIPtr&, std::exception_ptr);
|
|
210
210
|
void initialize();
|
|
211
211
|
~IncomingConnectionFactory() override;
|
|
212
212
|
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
#include "Ice/Properties.h"
|
|
13
13
|
#include "IdleTimeoutTransceiverDecorator.h"
|
|
14
14
|
#include "Instance.h"
|
|
15
|
-
#include "ObjectAdapterI.h"
|
|
15
|
+
#include "ObjectAdapterI.h" // For getThreadPool()
|
|
16
|
+
#include "OutgoingResponseInternal.h"
|
|
16
17
|
#include "ReferenceFactory.h" // For createProxy().
|
|
17
18
|
#include "RequestHandler.h" // For RetryException
|
|
18
19
|
#include "ThreadPool.h"
|
|
@@ -118,7 +119,7 @@ namespace
|
|
|
118
119
|
string createBadMagicMessage(const byte m[])
|
|
119
120
|
{
|
|
120
121
|
ostringstream os;
|
|
121
|
-
os << "
|
|
122
|
+
os << "bad magic in message header: ";
|
|
122
123
|
for (size_t i = 0; i < sizeof(magic); ++i)
|
|
123
124
|
{
|
|
124
125
|
os << hex << setw(2) << setfill('0') << static_cast<int>(m[i]) << ' ';
|
|
@@ -1012,7 +1013,7 @@ Ice::ConnectionI::setAdapter(const ObjectAdapterPtr& adapter)
|
|
|
1012
1013
|
{
|
|
1013
1014
|
// Go through the adapter to set the adapter on this connection
|
|
1014
1015
|
// to ensure the object adapter is still active.
|
|
1015
|
-
|
|
1016
|
+
static_pointer_cast<ObjectAdapterI>(adapter)->setAdapterOnConnection(shared_from_this());
|
|
1016
1017
|
}
|
|
1017
1018
|
else
|
|
1018
1019
|
{
|
|
@@ -2717,7 +2718,7 @@ Ice::ConnectionI::sendNextMessages(vector<OutgoingMessage>& callbacks)
|
|
|
2717
2718
|
_writeStream.swap(*message->stream);
|
|
2718
2719
|
if (message->sent())
|
|
2719
2720
|
{
|
|
2720
|
-
callbacks.push_back(*message);
|
|
2721
|
+
callbacks.push_back(std::move(*message));
|
|
2721
2722
|
}
|
|
2722
2723
|
}
|
|
2723
2724
|
_sendStreams.pop_front();
|
|
@@ -2850,7 +2851,7 @@ Ice::ConnectionI::sendMessage(OutgoingMessage& message)
|
|
|
2850
2851
|
// message was queued.
|
|
2851
2852
|
if (!_sendStreams.empty())
|
|
2852
2853
|
{
|
|
2853
|
-
_sendStreams.push_back(message);
|
|
2854
|
+
_sendStreams.push_back(std::move(message));
|
|
2854
2855
|
_sendStreams.back().adopt(nullptr);
|
|
2855
2856
|
return AsyncStatusQueued;
|
|
2856
2857
|
}
|
|
@@ -2895,7 +2896,7 @@ Ice::ConnectionI::sendMessage(OutgoingMessage& message)
|
|
|
2895
2896
|
return status;
|
|
2896
2897
|
}
|
|
2897
2898
|
|
|
2898
|
-
_sendStreams.push_back(message);
|
|
2899
|
+
_sendStreams.push_back(std::move(message));
|
|
2899
2900
|
_sendStreams.back().adopt(&stream);
|
|
2900
2901
|
}
|
|
2901
2902
|
else
|
|
@@ -2945,7 +2946,7 @@ Ice::ConnectionI::sendMessage(OutgoingMessage& message)
|
|
|
2945
2946
|
return status;
|
|
2946
2947
|
}
|
|
2947
2948
|
|
|
2948
|
-
_sendStreams.push_back(message);
|
|
2949
|
+
_sendStreams.push_back(std::move(message));
|
|
2949
2950
|
_sendStreams.back().adopt(nullptr); // Adopt the stream.
|
|
2950
2951
|
#ifdef ICE_HAS_BZIP2
|
|
2951
2952
|
}
|
|
@@ -3254,13 +3255,28 @@ Ice::ConnectionI::parseMessage(int32_t& upcallCount, function<bool(InputStream&)
|
|
|
3254
3255
|
stream.read(requestCount);
|
|
3255
3256
|
if (requestCount < 0)
|
|
3256
3257
|
{
|
|
3257
|
-
requestCount = 0;
|
|
3258
3258
|
throw MarshalException{
|
|
3259
3259
|
__FILE__,
|
|
3260
3260
|
__LINE__,
|
|
3261
3261
|
"received batch request with " + to_string(requestCount) + " batches"};
|
|
3262
3262
|
}
|
|
3263
3263
|
|
|
3264
|
+
// A batched request occupies at least 12 bytes on the wire (a 2-byte identity, a
|
|
3265
|
+
// 1-byte facet path, a 1-byte operation name, a 1-byte operation mode, a 1-byte
|
|
3266
|
+
// context, and a 6-byte parameters encapsulation). Reject a count larger than the
|
|
3267
|
+
// remaining message data could possibly hold. The message size is already capped
|
|
3268
|
+
// at Ice.MessageSizeMax (<= INT32_MAX bytes), so this also keeps requestCount well
|
|
3269
|
+
// within range when it is accumulated into the dispatch counters below.
|
|
3270
|
+
constexpr int32_t minBatchRequestSize = 12;
|
|
3271
|
+
if (requestCount > (stream.b.end() - stream.i) / minBatchRequestSize)
|
|
3272
|
+
{
|
|
3273
|
+
throw MarshalException{
|
|
3274
|
+
__FILE__,
|
|
3275
|
+
__LINE__,
|
|
3276
|
+
"received batch request with " + to_string(requestCount) +
|
|
3277
|
+
" batches, more than the message can contain"};
|
|
3278
|
+
}
|
|
3279
|
+
|
|
3264
3280
|
upcall = [self = shared_from_this(), requestCount, adapter, compress](InputStream& messageStream)
|
|
3265
3281
|
{
|
|
3266
3282
|
self->dispatchAll(messageStream, requestCount, requestId, compress, adapter);
|
|
@@ -3298,7 +3314,7 @@ Ice::ConnectionI::parseMessage(int32_t& upcallCount, function<bool(InputStream&)
|
|
|
3298
3314
|
|
|
3299
3315
|
if (q != _asyncRequests.end())
|
|
3300
3316
|
{
|
|
3301
|
-
auto outAsync = q->second;
|
|
3317
|
+
auto outAsync = std::move(q->second);
|
|
3302
3318
|
|
|
3303
3319
|
if (q == _asyncRequestsHint)
|
|
3304
3320
|
{
|
|
@@ -3438,9 +3454,10 @@ Ice::ConnectionI::dispatchAll(
|
|
|
3438
3454
|
{
|
|
3439
3455
|
// Received request on a connection without an object adapter.
|
|
3440
3456
|
sendResponse(
|
|
3441
|
-
|
|
3457
|
+
makeOutgoingResponseCore(
|
|
3442
3458
|
make_exception_ptr(ObjectNotExistException{__FILE__, __LINE__}),
|
|
3443
|
-
request.current()
|
|
3459
|
+
request.current(),
|
|
3460
|
+
_instance.get()),
|
|
3444
3461
|
0);
|
|
3445
3462
|
}
|
|
3446
3463
|
|
|
@@ -72,7 +72,7 @@ namespace Ice
|
|
|
72
72
|
public:
|
|
73
73
|
std::shared_ptr<ConnectionI> shared_from_this()
|
|
74
74
|
{
|
|
75
|
-
return std::
|
|
75
|
+
return std::static_pointer_cast<ConnectionI>(IceInternal::EventHandler::shared_from_this());
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
struct OutgoingMessage
|
|
@@ -195,34 +195,6 @@ IceInternal::mkdir(const string& path, int)
|
|
|
195
195
|
return ::_wmkdir(stringToWstring(path, Ice::getProcessStringConverter()).c_str());
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
-
FILE*
|
|
199
|
-
IceInternal::fopen(const string& path, const string& mode)
|
|
200
|
-
{
|
|
201
|
-
//
|
|
202
|
-
// Don't need to use a wide string converter, the wide strings are directly passed
|
|
203
|
-
// to Windows API.
|
|
204
|
-
//
|
|
205
|
-
const Ice::StringConverterPtr converter = Ice::getProcessStringConverter();
|
|
206
|
-
return ::_wfopen(stringToWstring(path, converter).c_str(), stringToWstring(mode, converter).c_str());
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
int
|
|
210
|
-
IceInternal::open(const string& path, int flags)
|
|
211
|
-
{
|
|
212
|
-
//
|
|
213
|
-
// Don't need to use a wide string converter, the wide string is directly passed
|
|
214
|
-
// to Windows API.
|
|
215
|
-
//
|
|
216
|
-
if (flags & _O_CREAT)
|
|
217
|
-
{
|
|
218
|
-
return ::_wopen(stringToWstring(path, Ice::getProcessStringConverter()).c_str(), flags, _S_IREAD | _S_IWRITE);
|
|
219
|
-
}
|
|
220
|
-
else
|
|
221
|
-
{
|
|
222
|
-
return ::_wopen(stringToWstring(path, Ice::getProcessStringConverter()).c_str(), flags);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
|
|
226
198
|
int
|
|
227
199
|
IceInternal::getcwd(string& cwd)
|
|
228
200
|
{
|
|
@@ -249,16 +221,6 @@ IceInternal::unlink(const string& path)
|
|
|
249
221
|
return _wunlink(stringToWstring(path, Ice::getProcessStringConverter()).c_str());
|
|
250
222
|
}
|
|
251
223
|
|
|
252
|
-
int
|
|
253
|
-
IceInternal::close(int fd)
|
|
254
|
-
{
|
|
255
|
-
# ifdef _WIN32
|
|
256
|
-
return _close(fd);
|
|
257
|
-
# else
|
|
258
|
-
return ::close(fd);
|
|
259
|
-
# endif
|
|
260
|
-
}
|
|
261
|
-
|
|
262
224
|
IceInternal::FileLock::FileLock(const std::string& path) : _path(path)
|
|
263
225
|
{
|
|
264
226
|
//
|
|
@@ -351,26 +313,6 @@ IceInternal::mkdir(const string& path, int perm)
|
|
|
351
313
|
return ::mkdir(path.c_str(), static_cast<mode_t>(perm));
|
|
352
314
|
}
|
|
353
315
|
|
|
354
|
-
FILE*
|
|
355
|
-
IceInternal::fopen(const string& path, const string& mode)
|
|
356
|
-
{
|
|
357
|
-
return ::fopen(path.c_str(), mode.c_str());
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
int
|
|
361
|
-
IceInternal::open(const string& path, int flags)
|
|
362
|
-
{
|
|
363
|
-
if (flags & O_CREAT)
|
|
364
|
-
{
|
|
365
|
-
// By default, create with rw-rw-rw- modified by the user's umask (same as fopen).
|
|
366
|
-
return ::open(path.c_str(), flags, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
|
|
367
|
-
}
|
|
368
|
-
else
|
|
369
|
-
{
|
|
370
|
-
return ::open(path.c_str(), flags);
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
|
|
374
316
|
int
|
|
375
317
|
IceInternal::getcwd(string& cwd)
|
|
376
318
|
{
|
|
@@ -389,15 +331,9 @@ IceInternal::unlink(const string& path)
|
|
|
389
331
|
return ::unlink(path.c_str());
|
|
390
332
|
}
|
|
391
333
|
|
|
392
|
-
int
|
|
393
|
-
IceInternal::close(int fd)
|
|
394
|
-
{
|
|
395
|
-
return ::close(fd);
|
|
396
|
-
}
|
|
397
|
-
|
|
398
334
|
IceInternal::FileLock::FileLock(const std::string& path) : _path(path)
|
|
399
335
|
{
|
|
400
|
-
_fd = ::open(path.c_str(), O_RDWR | O_CREAT, S_IRUSR | S_IWUSR
|
|
336
|
+
_fd = ::open(path.c_str(), O_RDWR | O_CREAT | O_NOFOLLOW, S_IRUSR | S_IWUSR);
|
|
401
337
|
if (_fd < 0)
|
|
402
338
|
{
|
|
403
339
|
throw FileLockException(__FILE__, __LINE__, errno, _path);
|
|
@@ -417,7 +353,7 @@ IceInternal::FileLock::FileLock(const std::string& path) : _path(path)
|
|
|
417
353
|
if (::fcntl(_fd, F_SETLK, &lock) == -1)
|
|
418
354
|
{
|
|
419
355
|
int err = errno;
|
|
420
|
-
close(_fd);
|
|
356
|
+
::close(_fd);
|
|
421
357
|
throw FileLockException(__FILE__, __LINE__, err, _path);
|
|
422
358
|
}
|
|
423
359
|
|
|
@@ -436,7 +372,7 @@ IceInternal::FileLock::FileLock(const std::string& path) : _path(path)
|
|
|
436
372
|
if (write(_fd, os.str().c_str(), os.str().size()) == -1)
|
|
437
373
|
{
|
|
438
374
|
int err = errno;
|
|
439
|
-
close(_fd);
|
|
375
|
+
::close(_fd);
|
|
440
376
|
throw FileLockException(__FILE__, __LINE__, err, _path);
|
|
441
377
|
}
|
|
442
378
|
}
|
|
@@ -84,13 +84,10 @@ namespace IceInternal
|
|
|
84
84
|
ICE_API int rmdir(const std::string&);
|
|
85
85
|
|
|
86
86
|
ICE_API int mkdir(const std::string&, int);
|
|
87
|
-
ICE_API FILE* fopen(const std::string&, const std::string&);
|
|
88
87
|
ICE_API FILE* freopen(const std::string&, const std::string&, FILE*);
|
|
89
|
-
ICE_API int open(const std::string&, int);
|
|
90
88
|
ICE_API int getcwd(std::string&);
|
|
91
89
|
|
|
92
90
|
ICE_API int unlink(const std::string&);
|
|
93
|
-
ICE_API int close(int);
|
|
94
91
|
|
|
95
92
|
//
|
|
96
93
|
// This class is used to implement process file locking. This class
|
|
@@ -419,6 +419,10 @@ IceInternal::IPEndpointI::IPEndpointI(ProtocolInstancePtr instance, InputStream*
|
|
|
419
419
|
s->read(const_cast<string&>(_host), false);
|
|
420
420
|
const_cast<string&>(_normalizedHost) = normalizeIPv6Address(_host);
|
|
421
421
|
s->read(const_cast<int32_t&>(_port));
|
|
422
|
+
if (_port < 0 || _port > 65535)
|
|
423
|
+
{
|
|
424
|
+
throw MarshalException{__FILE__, __LINE__, "port value '" + to_string(_port) + "' is out of range"};
|
|
425
|
+
}
|
|
422
426
|
}
|
|
423
427
|
|
|
424
428
|
IceInternal::EndpointHostResolver::EndpointHostResolver(const InstancePtr& instance)
|