void dhcpClientTimeoutCallback(DhcpClientCtx *context, NetInterface *interface) { uint_t i; Ipv4Addr ipv4Addr; //Stop DHCP client dhcpClientStop(context); //Set IPv4 host address ipv4SetHostAddr(interface, appSettings.lan.hostAddr); //Set subnet mask ipv4SetSubnetMask(interface, appSettings.lan.subnetMask); //Set default gateway ipv4SetDefaultGateway(interface, appSettings.lan.defaultGateway); //Set primary and secondary DNS servers ipv4SetDnsServer(interface, 0, appSettings.lan.primaryDns); ipv4SetDnsServer(interface, 1, appSettings.lan.secondaryDns); //Debug message TRACE_INFO("\r\nStatic configuration:\r\n"); //Host address ipv4GetHostAddr(interface, &ipv4Addr); TRACE_INFO(" IPv4 Address = %s\r\n", ipv4AddrToString(ipv4Addr, NULL)); //Subnet mask ipv4GetSubnetMask(interface, &ipv4Addr); TRACE_INFO(" Subnet Mask = %s\r\n", ipv4AddrToString(ipv4Addr, NULL)); //Default gateway ipv4GetDefaultGateway(interface, &ipv4Addr); TRACE_INFO(" Default Gateway = %s\r\n", ipv4AddrToString(ipv4Addr, NULL)); //DNS servers for(i = 0; i < IPV4_MAX_DNS_SERVERS; i++) { ipv4GetDnsServer(interface, i, &ipv4Addr); TRACE_INFO(" DNS Server %u = %s\r\n", i + 1, ipv4AddrToString(ipv4Addr, NULL)); } }
error_t httpServerCgiCallback(HttpConnection *connection, const char_t *param) { static uint_t pageCounter = 0; uint_t length; MacAddr macAddr; #if (IPV4_SUPPORT == ENABLED) Ipv4Addr ipv4Addr; #endif #if (IPV6_SUPPORT == ENABLED) uint_t n; Ipv6Addr ipv6Addr; #endif //Underlying network interface NetInterface *interface = connection->socket->interface; //Check parameter name if(!strcasecmp(param, "PAGE_COUNTER")) { pageCounter++; sprintf(connection->buffer, "%u time%s", pageCounter, (pageCounter >= 2) ? "s" : ""); } else if(!strcasecmp(param, "BOARD_NAME")) { strcpy(connection->buffer, "SAM7SE-EK"); } else if(!strcasecmp(param, "SYSTEM_TIME")) { systime_t time = osGetSystemTime(); formatSystemTime(time, connection->buffer); } else if(!strcasecmp(param, "MAC_ADDR")) { netGetMacAddr(interface, &macAddr); macAddrToString(&macAddr, connection->buffer); } else if(!strcasecmp(param, "IPV4_ADDR")) { ipv4GetHostAddr(interface, &ipv4Addr); ipv4AddrToString(ipv4Addr, connection->buffer); } else if(!strcasecmp(param, "SUBNET_MASK")) { ipv4GetSubnetMask(interface, &ipv4Addr); ipv4AddrToString(ipv4Addr, connection->buffer); } else if(!strcasecmp(param, "DEFAULT_GATEWAY")) { ipv4GetDefaultGateway(interface, &ipv4Addr); ipv4AddrToString(ipv4Addr, connection->buffer); } else if(!strcasecmp(param, "IPV4_PRIMARY_DNS")) { ipv4GetDnsServer(interface, 0, &ipv4Addr); ipv4AddrToString(ipv4Addr, connection->buffer); } else if(!strcasecmp(param, "IPV4_SECONDARY_DNS")) { ipv4GetDnsServer(interface, 1, &ipv4Addr); ipv4AddrToString(ipv4Addr, connection->buffer); } #if (IPV6_SUPPORT == ENABLED) else if(!strcasecmp(param, "LINK_LOCAL_ADDR")) { ipv6GetLinkLocalAddr(interface, &ipv6Addr); ipv6AddrToString(&ipv6Addr, connection->buffer); } else if(!strcasecmp(param, "GLOBAL_ADDR")) { ipv6GetGlobalAddr(interface, 0, &ipv6Addr); ipv6AddrToString(&ipv6Addr, connection->buffer); } else if(!strcasecmp(param, "IPV6_PREFIX")) { ipv6GetPrefix(interface, 0, &ipv6Addr, &n); ipv6AddrToString(&ipv6Addr, connection->buffer); length = strlen(connection->buffer); sprintf(connection->buffer + length, "/%u", n); } else if(!strcasecmp(param, "ROUTER")) { ipv6GetDefaultRouter(interface, 0, &ipv6Addr); ipv6AddrToString(&ipv6Addr, connection->buffer); } else if(!strcasecmp(param, "IPV6_PRIMARY_DNS")) { ipv6GetDnsServer(interface, 0, &ipv6Addr); ipv6AddrToString(&ipv6Addr, connection->buffer); } else if(!strcasecmp(param, "IPV6_SECONDARY_DNS")) { ipv6GetDnsServer(interface, 1, &ipv6Addr); ipv6AddrToString(&ipv6Addr, connection->buffer); } #endif else { return ERROR_INVALID_TAG; } //Get the length of the resulting string length = strlen(connection->buffer); //Send the contents of the specified environment variable return httpWriteStream(connection, connection->buffer, length); }