From 59cf66834836f1d5ab24b68b97446e2b4def951c Mon Sep 17 00:00:00 2001 From: Nicholas Dudfield Date: Tue, 5 Nov 2013 17:16:33 +0700 Subject: [PATCH] Fix IPAddress::V4::Proxy --- src/beast/beast/net/IPAddress.h | 2 +- src/beast/beast/net/impl/IPAddress.cpp | 23 ++++++++++++++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/beast/beast/net/IPAddress.h b/src/beast/beast/net/IPAddress.h index 1903f89f4..fb91f82e9 100644 --- a/src/beast/beast/net/IPAddress.h +++ b/src/beast/beast/net/IPAddress.h @@ -120,7 +120,7 @@ public: Proxy& operator= (IntegralType v) { (*m_value)= - (*m_value)&(!((0xff)<> (std::istream &is, IPAddress& ep) { ep = IPAddress (v4); } - + return is; } @@ -668,6 +668,26 @@ public: shouldFail ("1.2.3:80"); } + void testV4Proxy () + { + beginTestCase("v4 proxy"); + + IPAddress::V4 v4 (10, 0, 0, 1); + expect (v4[0]==10); + expect (v4[1]==0); + expect (v4[2]==0); + expect (v4[3]==1); + + expect((!((0xff)<<16)) == 0x00000000); + expect((~((0xff)<<16)) == 0xff00ffff); + + v4[1] = 10; + expect (v4[0]==10); + expect (v4[1]==10); + expect (v4[2]==0); + expect (v4[3]==1); + } + void testPrint () { beginTestCase ("addresses"); @@ -704,6 +724,7 @@ public: { testPrint(); testParse(); + testV4Proxy(); } IPAddressTests () : UnitTest ("IPAddress", "beast")