@@ -142,25 +142,26 @@ instance ControlMessage IPv6TClass where
142
142
----------------------------------------------------------------
143
143
144
144
-- | Network interface ID and local IPv4 address.
145
- data IPv4PktInfo = IPv4PktInfo Int HostAddress deriving (Eq )
145
+ data IPv4PktInfo = IPv4PktInfo Int HostAddress HostAddress deriving (Eq )
146
146
147
147
instance Show IPv4PktInfo where
148
- show (IPv4PktInfo n ha) = " IPv4PktInfo " ++ show n ++ " " ++ show (hostAddressToTuple ha)
148
+ show (IPv4PktInfo n sa ha) = " IPv4PktInfo " ++ show n ++ " " ++ show (hostAddressToTuple sa) ++ " " ++ show (hostAddressToTuple ha)
149
149
150
150
instance ControlMessage IPv4PktInfo where
151
151
controlMessageId _ = CmsgIdIPv4PktInfo
152
152
153
153
instance Storable IPv4PktInfo where
154
154
sizeOf _ = (# size struct in_pktinfo)
155
155
alignment _ = alignment (undefined :: CInt )
156
- poke p (IPv4PktInfo n ha) = do
156
+ poke p (IPv4PktInfo n sa ha) = do
157
157
(# poke struct in_pktinfo, ipi_ifindex) p (fromIntegral n :: CInt )
158
- (# poke struct in_pktinfo, ipi_spec_dst) p ( 0 :: CInt )
158
+ (# poke struct in_pktinfo, ipi_spec_dst) p sa
159
159
(# poke struct in_pktinfo, ipi_addr) p ha
160
160
peek p = do
161
- n <- (# peek struct in_pktinfo, ipi_ifindex) p
162
- ha <- (# peek struct in_pktinfo, ipi_addr) p
163
- return $ IPv4PktInfo n ha
161
+ n <- (# peek struct in_pktinfo, ipi_ifindex) p
162
+ sa <- (# peek struct in_pktinfo, ipi_spec_dst) p
163
+ ha <- (# peek struct in_pktinfo, ipi_addr) p
164
+ return $ IPv4PktInfo n sa ha
164
165
165
166
----------------------------------------------------------------
166
167
0 commit comments