Skip to content

Commit b04ac8a

Browse files
committed
ensure connections aren't implicitly partitioned
1 parent 36cfc39 commit b04ac8a

File tree

1 file changed

+46
-22
lines changed

1 file changed

+46
-22
lines changed

src/core/api.c

Lines changed: 46 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -33,31 +33,12 @@
3333
_IRQL_requires_max_(DISPATCH_LEVEL)
3434
QUIC_STATUS
3535
QUIC_API
36-
MsQuicConnectionOpen(
37-
_In_ _Pre_defensive_ HQUIC RegistrationHandle,
38-
_In_ _Pre_defensive_ QUIC_CONNECTION_CALLBACK_HANDLER Handler,
39-
_In_opt_ void* Context,
40-
_Outptr_ _At_(*NewConnection, __drv_allocatesMem(Mem)) _Pre_defensive_
41-
HQUIC *NewConnection
42-
)
43-
{
44-
return
45-
MsQuicConnectionOpenInPartition(
46-
RegistrationHandle,
47-
QuicLibraryGetCurrentPartition()->Index,
48-
Handler,
49-
Context,
50-
NewConnection);
51-
}
52-
53-
_IRQL_requires_max_(DISPATCH_LEVEL)
54-
QUIC_STATUS
55-
QUIC_API
56-
MsQuicConnectionOpenInPartition(
36+
QuicConnectionOpenInPartition(
5737
_In_ _Pre_defensive_ HQUIC RegistrationHandle,
5838
_In_ uint16_t PartitionIndex,
5939
_In_ _Pre_defensive_ QUIC_CONNECTION_CALLBACK_HANDLER Handler,
6040
_In_opt_ void* Context,
41+
_In_ BOOLEAN Partitioned,
6142
_Outptr_ _At_(*NewConnection, __drv_allocatesMem(Mem)) _Pre_defensive_
6243
HQUIC *NewConnection
6344
)
@@ -98,7 +79,7 @@ MsQuicConnectionOpenInPartition(
9879
goto Error;
9980
}
10081

101-
Connection->State.Partitioned = TRUE;
82+
Connection->State.Partitioned = Partitioned;
10283
Connection->ClientCallbackHandler = Handler;
10384
Connection->ClientContext = Context;
10485

@@ -115,6 +96,49 @@ MsQuicConnectionOpenInPartition(
11596
return Status;
11697
}
11798

99+
_IRQL_requires_max_(DISPATCH_LEVEL)
100+
QUIC_STATUS
101+
QUIC_API
102+
MsQuicConnectionOpen(
103+
_In_ _Pre_defensive_ HQUIC RegistrationHandle,
104+
_In_ _Pre_defensive_ QUIC_CONNECTION_CALLBACK_HANDLER Handler,
105+
_In_opt_ void* Context,
106+
_Outptr_ _At_(*NewConnection, __drv_allocatesMem(Mem)) _Pre_defensive_
107+
HQUIC *NewConnection
108+
)
109+
{
110+
return
111+
QuicConnectionOpenInPartition(
112+
RegistrationHandle,
113+
QuicLibraryGetCurrentPartition()->Index,
114+
Handler,
115+
Context,
116+
FALSE,
117+
NewConnection);
118+
}
119+
120+
_IRQL_requires_max_(DISPATCH_LEVEL)
121+
QUIC_STATUS
122+
QUIC_API
123+
MsQuicConnectionOpenInPartition(
124+
_In_ _Pre_defensive_ HQUIC RegistrationHandle,
125+
_In_ uint16_t PartitionIndex,
126+
_In_ _Pre_defensive_ QUIC_CONNECTION_CALLBACK_HANDLER Handler,
127+
_In_opt_ void* Context,
128+
_Outptr_ _At_(*NewConnection, __drv_allocatesMem(Mem)) _Pre_defensive_
129+
HQUIC *NewConnection
130+
)
131+
{
132+
return
133+
QuicConnectionOpenInPartition(
134+
RegistrationHandle,
135+
PartitionIndex,
136+
Handler,
137+
Context,
138+
TRUE,
139+
NewConnection);
140+
}
141+
118142
#pragma warning(push)
119143
#pragma warning(disable:6014) // SAL doesn't understand the free happens on the worker
120144
_IRQL_requires_max_(PASSIVE_LEVEL)

0 commit comments

Comments
 (0)