comparison runtime/net.c @ 152:e9a8269384bb

Add support for opening a new TCP connection and fix bug in Read Delim
author Mike Pavone <pavone@retrodev.com>
date Sun, 05 Dec 2010 18:04:54 -0500
parents 7bbdc034e347
children 47ab97730865
comparison
equal deleted inserted replaced
151:b75ec364cecc 152:e9a8269384bb
35 { 35 {
36 char portstr[6]; 36 char portstr[6];
37 int sockfd,flag=1; 37 int sockfd,flag=1;
38 struct addrinfo hints, *localaddr; 38 struct addrinfo hints, *localaddr;
39 39
40 snprintf(portstr, 6, "%d", port & 0XFFFF); 40 snprintf(portstr, 6, "%d", port & 0xFFFF);
41 41
42 memset(&hints, 0, sizeof(hints)); 42 memset(&hints, 0, sizeof(hints));
43 hints.ai_family = AF_UNSPEC; 43 hints.ai_family = AF_UNSPEC;
44 hints.ai_socktype = SOCK_STREAM; 44 hints.ai_socktype = SOCK_STREAM;
45 hints.ai_flags = AI_PASSIVE; 45 hints.ai_flags = AI_PASSIVE;
61 } 61 }
62 freeaddrinfo(localaddr); 62 freeaddrinfo(localaddr);
63 return sockfd; 63 return sockfd;
64 } 64 }
65 65
66 int _internal_connectnewsocket(char * addr, int32_t port)
67 {
68 char portstr[6];
69 struct addrinfo hints, *res;
70 int sock;
71
72 memset(&hints, 0, sizeof(hints));
73 hints.ai_family = AF_UNSPEC;
74 hints.ai_socktype = SOCK_STREAM;
75
76 snprintf(portstr, 6, "%d", port & 0xFFFF);
77 if(getaddrinfo(addr, portstr, &hints, &res))
78 return -1;
79 if(-1 == (sock = socket(res->ai_family, res->ai_socktype, res->ai_protocol)))
80 return -1;
81
82 if(connect(sock, res->ai_addr, res->ai_addrlen))
83 {
84 close(sock);
85 sock = -1;
86 }
87 freeaddrinfo(res);
88 return sock;
89 }
90