+ void TryBindPorts()
+ {
+ FailedPortList pl;
+ ServerInstance->BindPorts(pl);
+
+ if (!pl.empty())
+ {
+ std::cout << con_red << "Warning!" << con_reset << " Some of your listener" << (pl.size() == 1 ? "s" : "") << " failed to bind:" << std::endl
+ << std::endl;
+
+ for (FailedPortList::const_iterator iter = pl.begin(); iter != pl.end(); ++iter)
+ {
+ const FailedPort& fp = *iter;
+ std::cout << " " << con_bright << fp.sa.str() << con_reset << ": " << strerror(fp.error) << '.' << std::endl
+ << " " << "Created from <bind> tag at " << fp.tag->getTagLocation() << std::endl
+ << std::endl;
+ }
+
+ std::cout << con_bright << "Hints:" << con_reset << std::endl
+ << "- For TCP/IP listeners try using a public IP address in <bind:address> instead" << std::endl
+ << " of * of leaving it blank." << std::endl
+ << "- For UNIX socket listeners try enabling <bind:rewrite> to replace old sockets." << std::endl;
+ }
+ }
+