@@ -58,8 +58,11 @@ namespace net {
5858 IP4::addr gateway () override
5959 { return gateway_; }
6060
61- IP4::addr dns () override
62- { return dns_server; }
61+ IP4::addr dns_addr () override
62+ { return dns_server_; }
63+
64+ IP4::addr broadcast_addr () override
65+ { return ip4_addr_ | ( ~ netmask_); }
6366
6467 IP4& ip_obj () override
6568 { return ip4_; }
@@ -86,10 +89,11 @@ namespace net {
8689 auto dhclient () { return dhcp_; }
8790
8891 /* *
89- * Error report in accordance with RFC 1122
92+ * Error reporting
93+ * Incl. ICMP error report in accordance with RFC 1122
9094 * An ICMP error message has been received - forward to transport layer (UDP or TCP)
9195 */
92- void error_report (Error_type type, Error_code code , Packet_ptr orig_pckt) override ;
96+ void error_report (Error& err , Packet_ptr orig_pckt) override ;
9397
9498 /* *
9599 * Set the forwarding delegate used by this stack.
@@ -141,7 +145,14 @@ namespace net {
141145 void resolve (const std::string& hostname,
142146 resolve_func<IP4> func) override
143147 {
144- dns_.resolve (this ->dns_server , hostname, func);
148+ dns_.resolve (this ->dns_server_ , hostname, func);
149+ }
150+
151+ void resolve (const std::string& hostname,
152+ IP4::addr server,
153+ resolve_func<IP4> func) override
154+ {
155+ dns_.resolve (server, hostname, func);
145156 }
146157
147158 void set_gateway (IP4::addr gateway) override
@@ -151,7 +162,7 @@ namespace net {
151162
152163 void set_dns_server (IP4::addr server) override
153164 {
154- this ->dns_server = server;
165+ this ->dns_server_ = server;
155166 }
156167
157168 /* *
@@ -181,12 +192,12 @@ namespace net {
181192 this ->ip4_addr_ = addr;
182193 this ->netmask_ = nmask;
183194 this ->gateway_ = gateway;
184- this ->dns_server = (dns == IP4::ADDR_ANY) ? gateway : dns;
195+ this ->dns_server_ = (dns == IP4::ADDR_ANY) ? gateway : dns;
185196 INFO (" Inet4" , " Network configured" );
186197 INFO2 (" IP: \t\t %s" , ip4_addr_.str ().c_str ());
187198 INFO2 (" Netmask: \t %s" , netmask_.str ().c_str ());
188199 INFO2 (" Gateway: \t %s" , gateway_.str ().c_str ());
189- INFO2 (" DNS Server: \t %s" , dns_server .str ().c_str ());
200+ INFO2 (" DNS Server: \t %s" , dns_server_ .str ().c_str ());
190201 }
191202
192203 virtual void
@@ -298,7 +309,7 @@ namespace net {
298309 IP4::addr ip4_addr_;
299310 IP4::addr netmask_;
300311 IP4::addr gateway_;
301- IP4::addr dns_server ;
312+ IP4::addr dns_server_ ;
302313
303314 Vip4_list vip4s_ = {{127 ,0 ,0 ,1 }};
304315
0 commit comments