Skip to content

Commit

Permalink
Moves message network checking to message parser
Browse files Browse the repository at this point in the history
  • Loading branch information
brunophilipe committed Nov 1, 2015
1 parent 8756a45 commit b27fd23
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 10 deletions.
10 changes: 7 additions & 3 deletions BitcoinSwift/MessageParser.swift
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,14 @@ public class MessageParser {
}
let payloadData = NSData(bytes: receivedBytes, length: payloadLength)
let message = Message(header: receivedHeader!, payloadData: payloadData)
if message.isChecksumValid() {
delegate?.didParseMessage(message)
if message.header.network == network {
if message.isChecksumValid() {
delegate?.didParseMessage(message)
} else {
Logger.warn("Dropping \(message.command.rawValue) message with invalid checksum")
}
} else {
Logger.warn("Dropping \(message.command.rawValue) message with invalid checksum")
Logger.warn("Dropping \(message.command.rawValue) message with invalid network header: \(message.header.network) != \(network)")
}
receivedBytes.removeRange(0..<payloadLength)
receivedHeader = nil
Expand Down
7 changes: 1 addition & 6 deletions BitcoinSwift/Models/MessageHeader.swift
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,6 @@ extension Message.Header: BitcoinSerializable {
Logger.warn("Failed to parse network magic value in message header")
return nil
}
let network = Message.Network(rawValue: NetworkMagicNumber(networkRaw!))
if network == nil {
Logger.warn("Unsupported network \(networkRaw!) in message header")
return nil
}
let commandRaw = stream.readASCIIStringWithLength(Message.Command.encodedLength)
if commandRaw == nil {
Logger.warn("Failed to parse command in message header")
Expand All @@ -83,7 +78,7 @@ extension Message.Header: BitcoinSerializable {
Logger.warn("Failed to parse payload checksum in message header")
return nil
}
return Message.Header(network: network!.rawValue,
return Message.Header(network: NetworkMagicNumber(networkRaw!),
command: command!,
payloadLength: payloadLength!,
payloadChecksum: payloadChecksum!)
Expand Down
2 changes: 1 addition & 1 deletion BitcoinSwiftLiveTests/PeerConnectionLiveTest.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class PeerConnectionLiveTest: XCTestCase, PeerConnectionDelegate {
}

func testConnect() {
let conn = PeerConnection(hostname: "anduck.net",
let conn = PeerConnection(hostname: "localhost",
port: 8333,
network: Message.Network.MainNet.rawValue,
delegate: self)
Expand Down

0 comments on commit b27fd23

Please sign in to comment.