int server_type::mknod(shared_ptr<fs_entry> file_ent, path_type const& path, mode_t, dev_t) { auto filename = path.filename().string(); auto pos = filename.find_first_of(host_port_delimiter); auto host = filename.substr(0, pos); int port = std::stoi(filename.substr(pos + 1)); BOOST_LOG_TRIVIAL(info) << "server_type::mknod: establishing server host=" << host << " port=" << port; int serverfd = establish_server(host, port); BOOST_LOG_TRIVIAL(info) << "server_type::mknod: established server " << host << ":" << port << " fd=" << serverfd; detail::fdtable.insert(path.string(), serverfd); return 0; }
bool server_type::match_path(path_type const& path, file_type type) { return type == file_type::regular_file && path.parent_path() == "/tcp" && path.filename().string()[0] == '*'; }