void setup () { int dgram_fd = inetsocket (SOCK_DGRAM); if (dgram_fd < 0) fatal << "Failed to allocate dgram socket\n"; dgram_xprt = axprt_dgram::alloc (dgram_fd, sizeof(sockaddr), 230000); if (!dgram_xprt) fatal << "Failed to allocate dgram xprt\n"; }
void merkle_disk_server::init_listen (int port) { // listen on unix domain socket for sampled requests int tcp_fd = inetsocket (SOCK_STREAM, port); if (tcp_fd < 0) { fatal << "Error creating client socket (TCP) " << strerror (errno) << "\n"; } client_listen (tcp_fd); }
bool net_acceptor_t::init () { bool ret = true; _fd = inetsocket (SOCK_STREAM, _port, _addr); if (_fd < 0) { str s = addr_s (); warn ("failed to bind to %s: %m\n", s.cstr ()); ret = false; } return ret; }
rpc_manager::rpc_manager (ptr<u_int32_t> _nrcv) : a_lat (0.0), a_var (0.0), c_err (0.0), c_err_rel (0.0), c_var (0.0), nrpc (0), nrpcfailed (0), nsent (0), npending (0), nrcv (_nrcv) { warn << "CREATED RPC MANAGER\n"; int dgram_fd = inetsocket (SOCK_DGRAM); if (dgram_fd < 0) fatal << "Failed to allocate dgram socket\n"; dgram_xprt = axprt_dgram::alloc (dgram_fd, sizeof(sockaddr), 230000); if (!dgram_xprt) fatal << "Failed to allocate dgram xprt\n"; next_xid = &random_getword; }
void afs_init (cbv cb) { tzset (); sfs_hosttab_init (); afsnode::sbp2aid = sbp2aid; afs_root = afsroot::alloc (); afs_root.Xleak (); // Avoid global destruction order worries afs_sfsroot = afsusrdir::alloc (afs_root, sfsaid_sfs); afs_sfsroot.Xleak (); afs_naroot = afsusrroot::alloc (afs_root, sfsaid_nobody); afs_naroot.Xleak (); afs_mnt = afs_root->mkdir (".mnt"); afs_wait = afsdir::alloc (); afs_wait.Xleak (); afs_mnt->mkdir ("wait"); afs_sfsroot->link (afsreg::alloc (), ".root"); afs_root->link (afsreg::alloc (VERSION "\n"), ".version"); afs_root->link (afsreg::alloc (strbuf ("%d\n", int (getpid ()))), ".pid"); #if FIX_MNTPOINT if (opt_fix_mntpoint) afs_linuxbug = afs_root->mkdir (".linuxmnt"); #endif /* FIX_MNTPOINT */ afsfd = inetsocket (SOCK_DGRAM, nomounting ? 2490 : 0, INADDR_LOOPBACK); if (afsfd < 0) fatal ("afs_init: inetsocket: %m\n"); ref<axprt> x (axprt_dgram::alloc (afsfd)); afssrv = asrv::alloc (x, nfs_program_2, wrap (afs_dispatch)); afssrv3 = asrv::alloc (x, nfs_program_3, wrap (afs_dispatch)); sigcb (SIGINT, wrap (afs_shutdown, true)); sigcb (SIGTERM, wrap (afs_shutdown, true)); nfs_fh fh; afs_root->mkfh (&fh); mnt_mount (dup (afsfd), "(sfs)", sfsroot, v3flag | NMOPT_NOAC | NMOPT_SOFT, nfs_fh2tobytes (fh), wrap (afs_init2, cb)); }
bool sfssd_slave_axprt (sfsserv_axprt_cb cb, bool allowstandalone, u_int port) { if (!port) port = SFS_PORT; if (cloneserv (0, wrap (sfs_accept, true, cb))) return true; else if (!allowstandalone) { warn ("No sfssd detected.\n"); return true; } warn ("No sfssd detected, running in standalone mode.\n"); int sfssfd = inetsocket (SOCK_STREAM, port); if (sfssfd < 0) return false; close_on_exec (sfssfd); listen (sfssfd, 5); fdcb (sfssfd, selread, wrap (sfs_accept_standalone, cb, sfssfd)); return true; }
// Listen for connections void net::tcp_listen(int port, cbsb cb) { int ret; int tmp_socket; // Init socket bound to port tmp_socket = inetsocket(SOCK_STREAM, port); check_ret(tmp_socket, "inetsocket()"); // Make fd asynchronous make_async(tmp_socket); // Listen for a connection ret = listen(tmp_socket, LISTEN_BACKLOG); check_ret(ret, "listen()"); // Schedule event to accept incoming connection fdcb(tmp_socket, selread, wrap(this, &net::tcp_accept, tmp_socket, cb)); }
int chord::initxprt (int myp, int type, int *fd) { in_addr my_addr; inet_aton (myname.cstr (), &my_addr); *fd = inetsocket (type, myp, ntohl (my_addr.s_addr)); if (*fd < 0) fatal ("binding %s addr %s port %d: %m\n", (type == SOCK_DGRAM ? "UDP" : "TCP"), myname.cstr (), myp); if (myp == 0) { struct sockaddr_in addr; socklen_t len = sizeof (addr); bzero (&addr, sizeof (addr)); if (getsockname (*fd, (sockaddr *) &addr, &len) < 0) fatal ("getsockname failed %m\n"); myp = ntohs (addr.sin_port); } return myp; }
static void dolisten () { for (sockaddr **sp = listenaddrs.base (); sp < listenaddrs.lim (); sp++) { sockaddr_in *sinp = reinterpret_cast<sockaddr_in *> (*sp); int fd = inetsocket (SOCK_STREAM, ntohs (sinp->sin_port), ntohl (sinp->sin_addr.s_addr)); if (fd < 0) warn ("could not bind TCP port %d: %m\n", ntohs (sinp->sin_port)); else { if (sinp->sin_addr.s_addr == htonl (INADDR_ANY)) warn ("listening on TCP port %d\n", ntohs (sinp->sin_port)); else warn ("listening on %s TCP port %d\n", inet_ntoa (sinp->sin_addr), ntohs (sinp->sin_port)); listeners.push_back (New refcounted<listener> (fd)); } } if (listeners.empty ()) fatal ("no TCP ports to listen on\n"); hup_lock = false; }