aboutsummaryrefslogtreecommitdiff
path: root/src/libjin/3rdparty/tekcos/tekcos.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libjin/3rdparty/tekcos/tekcos.c')
-rw-r--r--src/libjin/3rdparty/tekcos/tekcos.c56
1 files changed, 28 insertions, 28 deletions
diff --git a/src/libjin/3rdparty/tekcos/tekcos.c b/src/libjin/3rdparty/tekcos/tekcos.c
index a1fc94e..0eed75b 100644
--- a/src/libjin/3rdparty/tekcos/tekcos.c
+++ b/src/libjin/3rdparty/tekcos/tekcos.c
@@ -91,12 +91,11 @@ const char* tk_hltostr(uint32 ip)
/* TCP socket */
/********************************************/
-tk_TCPsocket* tk_tcp_open(tk_IPaddress ip)
+tk_TCPsocket tk_tcp_open(tk_IPaddress ip)
{
- tk_TCPsocket* sk;
- sk = (tk_TCPsocket*)malloc(sizeof(tk_TCPsocket));
- sk->id = socket(AF_INET, SOCK_STREAM, 0);
- if (sk->id == INVALID_SOCKET)
+ tk_TCPsocket sk;
+ sk.id = socket(AF_INET, SOCK_STREAM, 0);
+ if (sk.id == INVALID_SOCKET)
{
state = TK_COULDNETCREATESOCKET;
goto error;
@@ -115,36 +114,36 @@ tk_TCPsocket* tk_tcp_open(tk_IPaddress ip)
if (ip.host != INADDR_NONE && ip.host != INADDR_ANY)
{
addr.sin_addr.s_addr = htonl(ip.host);
- if (connect(sk->id, (const struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR)
+ if (connect(sk.id, (const struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR)
{
state = TK_CONNECTFAILED;
goto error;
}
- sk->type = SOCKET_TCLIENT;
+ sk.type = SOCKET_TCLIENT;
}
else
{
addr.sin_addr.s_addr = htonl(INADDR_ANY);
- if (bind(sk->id, (const struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR)
+ if (bind(sk.id, (const struct sockaddr*)&addr, sizeof(addr)) == SOCKET_ERROR)
{
state = TK_BINDSOCKETFAILED;
goto error;
}
- if (listen(sk->id, 8) == SOCKET_ERROR)
+ if (listen(sk.id, 8) == SOCKET_ERROR)
{
state = TK_LISTENSOCKETFAILED;
goto error;
}
- sk->type = SOCKET_TSERVER;
+ sk.type = SOCKET_TSERVER;
}
- sk->remote.host = ntohl(addr.sin_addr.s_addr);
- sk->remote.port = ntohs(addr.sin_port);
+ sk.remote.host = ntohl(addr.sin_addr.s_addr);
+ sk.remote.port = ntohs(addr.sin_port);
return sk;
error:
- return 0;
+ return sk;
}
int tk_tcp_close(tk_TCPsocket* sk)
@@ -217,10 +216,11 @@ error:
return 0;
}
-tk_TCPsocket* tk_tcp_accept(tk_TCPsocket* server)
+tk_TCPsocket tk_tcp_accept(tk_TCPsocket* server)
{
// client socket
- tk_TCPsocket* csk = (tk_TCPsocket*) malloc(sizeof(tk_TCPsocket));
+ tk_TCPsocket csk;
+ memset(&csk, 0, sizeof(csk));
if (server->type != SOCKET_TSERVER)
{
state = TK_WRONGSOCKETTPYE;
@@ -229,21 +229,21 @@ tk_TCPsocket* tk_tcp_accept(tk_TCPsocket* server)
struct sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
int addr_len = sizeof(addr);
- csk->id = accept(server->id, (struct sockaddr *)&addr, &addr_len);
- if (csk->id == INVALID_SOCKET)
+ csk.id = accept(server->id, (struct sockaddr *)&addr, &addr_len);
+ if (csk.id == INVALID_SOCKET)
{
state = TK_INVALIDSOCKET;
goto error;
}
- csk->remote.host = ntohl(addr.sin_addr.s_addr);
- csk->remote.port = ntohs(addr.sin_port);
+ csk.remote.host = ntohl(addr.sin_addr.s_addr);
+ csk.remote.port = ntohs(addr.sin_port);
- csk->type = SOCKET_TCLIENT;
+ csk.type = SOCKET_TCLIENT;
return csk;
error:
- return 0;
+ return csk;
}
int tk_tcp_nonblocking(tk_TCPsocket* sk)
@@ -304,12 +304,12 @@ int tk_tcp_blocking(tk_TCPsocket* sk)
*
***************************************************/
-tk_UDPsocket* tk_udp_open(uint16 portnumber)
+tk_UDPsocket tk_udp_open(uint16 portnumber)
{
- tk_UDPsocket* sk;
- sk = (tk_UDPsocket*)malloc(sizeof(tk_UDPsocket));
- sk->id = socket(AF_INET, SOCK_DGRAM, 0);
- if (sk->id == INVALID_SOCKET)
+ tk_UDPsocket sk;
+ memset(&sk, 0, sizeof(sk));
+ sk.id = socket(AF_INET, SOCK_DGRAM, 0);
+ if (sk.id == INVALID_SOCKET)
{
state = TK_COULDNETCREATESOCKET;
goto error;
@@ -325,12 +325,12 @@ tk_UDPsocket* tk_udp_open(uint16 portnumber)
addr.sin_addr.s_addr = htonl(INADDR_ANY);
addr.sin_port = htons(portnumber);
addr.sin_family = AF_INET;
- bind(sk->id, (const struct sockaddr*)&addr, sizeof(addr));
+ bind(sk.id, (const struct sockaddr*)&addr, sizeof(addr));
return sk;
}
error:
- return 0;
+ return sk;
}
int tk_udp_sendto(tk_UDPsocket* sk, tk_UDPpack* pack)