Variant f_socket_create(int domain, int type, int protocol) { check_socket_parameters(domain, type); int socketId = socket(domain, type, protocol); if (socketId == -1) { Socket dummySock; // for setting last socket error SOCKET_ERROR((&dummySock), "Unable to create socket", errno); return false; } Socket *sock = new Socket(socketId, domain); Object ret(sock); return ret; }
Variant f_socket_create(int domain, int type, int protocol) { check_socket_parameters(domain, type); Socket *sock = new Socket(socket(domain, type, protocol), domain); Object ret(sock); if (!sock->valid()) { raise_warning("Unable to create socket [%d]: %s", errno, Util::safe_strerror(errno).c_str()); return false; } return ret; }
Variant HHVM_FUNCTION(socket_create, int domain, int type, int protocol) { check_socket_parameters(domain, type); int socketId = socket(domain, type, protocol); if (socketId == -1) { SOCKET_ERROR(makeSmartPtr<Socket>(), "Unable to create socket", errno); return false; } return Variant(makeSmartPtr<Socket>(socketId, domain)); }
bool f_socket_create_pair(int domain, int type, int protocol, VRefParam fd) { check_socket_parameters(domain, type); int fds_array[2]; if (socketpair(domain, type, protocol, fds_array) != 0) { Socket dummySock; // for setting last socket error SOCKET_ERROR((&dummySock), "unable to create socket pair", errno); return false; } Array ret; ret.set(0, Object(new Socket(fds_array[0], domain))); ret.set(1, Object(new Socket(fds_array[1], domain))); fd = ret; return true; }
bool f_socket_create_pair(int domain, int type, int protocol, Variant fd) { check_socket_parameters(domain, type); int fds_array[2]; if (socketpair(domain, type, protocol, fds_array) != 0) { raise_warning("unable to create socket pair [%d]: %s", errno, Util::safe_strerror(errno).c_str()); return false; } Array ret; ret.set(0, Object(new Socket(fds_array[0], domain))); ret.set(1, Object(new Socket(fds_array[1], domain))); fd = ret; return true; }
bool HHVM_FUNCTION(socket_create_pair, int domain, int type, int protocol, VRefParam fd) { check_socket_parameters(domain, type); int fds_array[2]; if (socketpair(domain, type, protocol, fds_array) != 0) { Socket dummySock; // for setting last socket error SOCKET_ERROR((&dummySock), "unable to create socket pair", errno); return false; } fd = make_packed_array( Resource(new Socket(fds_array[0], domain, nullptr, 0, 0.0, s_socktype_generic)), Resource(new Socket(fds_array[1], domain, nullptr, 0, 0.0, s_socktype_generic)) ); return true; }
bool HHVM_FUNCTION(socket_create_pair, int domain, int type, int protocol, VRefParam fd) { check_socket_parameters(domain, type); int fds_array[2]; if (socketpair(domain, type, protocol, fds_array) != 0) { SOCKET_ERROR(makeSmartPtr<Socket>(), "unable to create socket pair", errno); return false; } fd = make_packed_array( Variant(makeSmartPtr<Socket>(fds_array[0], domain, nullptr, 0, 0.0, s_socktype_generic)), Variant(makeSmartPtr<Socket>(fds_array[1], domain, nullptr, 0, 0.0, s_socktype_generic)) ); return true; }