@@ -104,6 +104,9 @@ data Context = Context {
104104 -- this requirement.
105105 , continued :: IORef (Maybe StreamId)
106106 , currentStreamId :: IORef StreamId
107+ -- ^ Last client-initiated stream ID we've handled.
108+ , nextPushStreamId :: IORef StreamId
109+ -- ^ Next available server-initiated stream ID.
107110 , inputQ :: TQueue Input
108111 , outputQ :: PriorityTree Output
109112 , encodeDynamicTable :: IORef DynamicTable
@@ -119,6 +122,7 @@ newContext = Context <$> newIORef defaultSettings
119122 <*> newIORef 0
120123 <*> newIORef Nothing
121124 <*> newIORef 0
125+ <*> newIORef 2 -- first server push stream; 0 is reserved
122126 <*> newTQueueIO
123127 <*> newPriorityTree
124128 <*> (newDynamicTableForEncoding defaultDynamicTableSize >>= newIORef)