@@ -62,29 +62,37 @@ arduino::IPAddress arduino::MbedSocketClass::dnsIP(int n) {
6262}
6363
6464void arduino::MbedSocketClass::config (arduino::IPAddress local_ip) {
65- nsapi_addr_t convertedIP = { NSAPI_IPv4, { local_ip[0 ], local_ip[1 ], local_ip[2 ], local_ip[3 ] } };
66- _ip = SocketAddress (convertedIP);
65+ IPAddress dns = local_ip;
66+ dns[3 ] = 1 ;
67+ config (local_ip, dns);
6768}
6869
6970void arduino::MbedSocketClass::config (const char * local_ip) {
7071 _ip = SocketAddress (local_ip);
7172}
7273
7374void arduino::MbedSocketClass::config (IPAddress local_ip, IPAddress dns_server) {
74- config (local_ip);
75- setDNS (dns_server);
75+ IPAddress gw = local_ip;
76+ gw[3 ] = 1 ;
77+ config (local_ip, dns_server, gw);
7678}
7779
7880void arduino::MbedSocketClass::config (IPAddress local_ip, IPAddress dns_server, IPAddress gateway) {
79- config (local_ip, dns_server);
80- nsapi_addr_t convertedGatewayIP = { NSAPI_IPv4, { gateway[0 ], gateway[1 ], gateway[2 ], gateway[3 ] } };
81- _gateway = SocketAddress (convertedGatewayIP);
81+ IPAddress nm (255 , 255 , 255 , 0 );
82+ config (local_ip, dns_server, gateway, nm);
8283}
8384
8485void arduino::MbedSocketClass::config (IPAddress local_ip, IPAddress dns_server, IPAddress gateway, IPAddress subnet) {
85- config (local_ip, dns_server, gateway);
86+ _useStaticIP = (local_ip != INADDR_NONE);
87+ if (!_useStaticIP)
88+ return ;
89+ nsapi_addr_t convertedIP = { NSAPI_IPv4, { local_ip[0 ], local_ip[1 ], local_ip[2 ], local_ip[3 ] } };
90+ _ip = SocketAddress (convertedIP);
91+ nsapi_addr_t convertedGatewayIP = { NSAPI_IPv4, { gateway[0 ], gateway[1 ], gateway[2 ], gateway[3 ] } };
92+ _gateway = SocketAddress (convertedGatewayIP);
8693 nsapi_addr_t convertedSubnetMask = { NSAPI_IPv4, { subnet[0 ], subnet[1 ], subnet[2 ], subnet[3 ] } };
8794 _netmask = SocketAddress (convertedSubnetMask);
95+ setDNS (dns_server);
8896}
8997
9098void arduino::MbedSocketClass::setDNS (IPAddress dns_server1) {
0 commit comments