Update of /cvsroot/binaryphp/binaryphp/functions/sockets
In directory sc8-pr-cvs1:/tmp/cvs-serv23098/sockets
Added Files:
socket_connect.cpp socket_create.cpp socket_read.cpp
socket_write.cpp
Log Message:
Moved files into their proper subdirectories.
--- NEW FILE: socket_connect.cpp ---
php_var socket_connect(php_var sock, php_var addr, php_var port = 0)
{
in_addr tmp;
php_socket *socket = (php_socket *) sock.res;
int ret;
hostent *host_entry;
sockaddr_in sin;
sin.sin_family = AF_INET;
sin.sin_port = htons((unsigned short int)(int)port);
if(inet_aton(addr, &tmp))
sin.sin_addr.s_addr = tmp.s_addr;
else
{
if(!(host_entry = gethostbyname(addr)))
return (php_var) false;
if(host_entry->h_addrtype != AF_INET)
return (php_var) false;
memcpy(&(sin.sin_addr.s_addr), host_entry->h_addr_list[0], host_entry->h_length);
}
memset(&(sin.sin_zero), '\0', 8);
ret = connect(socket->sock, (sockaddr *)&sin, sizeof(sockaddr));
if(ret < 0)
return (php_var) false;
return (php_var) true;
}
--- NEW FILE: socket_create.cpp ---
typedef struct {
int sock;
int type;
int error;
} php_socket;
php_var socket_create(php_var domain, php_var type, php_var protocol)
{
php_socket sock;
sock.sock = socket((long) domain, (long) type, (long) protocol);
if(sock.sock < 0)
return (php_var) false;
sock.type = type;
php_var ret;
ret.res = (void *) &sock;
return ret;
}
--- NEW FILE: socket_read.cpp ---
#define PHP_BINARY_READ 0
#define PHP_NORMAL_READ 1
php_var socket_read(php_var sock, php_var len, php_var type = PHP_BINARY_READ)
{
php_socket *socket = (php_socket *) sock.res;
int ret;
char *buf = new char[len];
ret = recv(socket->sock, buf, len, 0);
if(ret < 0)
return (php_var) false;
php_var retu = buf;
cout << buf << " -" << endl;
// delete buf;
return retu;
}
--- NEW FILE: socket_write.cpp ---
php_var socket_write(php_var sock, php_var buf, int len = 0)
{
php_socket *socket = (php_socket *) sock.res;
if(len == 0)
len = buf.container.length();
if(write(socket->sock, buf.container.c_str(), (int) len) < 0)
return (php_var) false;
return (php_var) true;
}
|