#include "../../jlib/log2.h"
#include "../../jlib/net/resolve_fastest_ip.h"


int main(int argc, char** argv)
{
	std::string domain = "baidu.com";
	int ping_times = 4;
	if (argc > 1) { domain = argv[1]; }
	if (argc > 2) { ping_times = std::stoi(argv[2]); }
	if (argc < 1) { printf("Usage: %s [domain] [ping times]\n", argv[0]); return 1; }

	jlib::init_logger();

#ifndef _DEBUG
	spdlog::get(jlib::g_logger_name)->set_level(spdlog::level::err);
#endif

	std::string res;
	int n = 0;
	bool ret = jlib::net::get_domain_ip(domain, ping_times, res, [&n]() {
		if (++n == 4) { n = 0; }
		std::string msg = "waiting";
		for (int i = 0; i < n; i++) { msg.push_back('.'); }
		JLOG_INFO(msg);
	});

	if (ret) {
		JLOG_INFO("get_domain_ip of [{}] ok: {}", domain, res);
		printf("%s\n", res.data());
		return 0;
	} else {
		JLOG_ERRO("get_domain_ip failed: {}", res);
		printf("");
		return 1;
	}
}