src/network.c

changeset 123
0f5a1cda8f60
parent 113
5f58df30d422
equal deleted inserted replaced
122:e65d9b5e9324 123:0f5a1cda8f60
137 return connect(server->fd, server->info->ai_addr, server->info->ai_addrlen); 137 return connect(server->fd, server->info->ai_addr, server->info->ai_addrlen);
138 } 138 }
139 139
140 void net_destroy(Server *server) { 140 void net_destroy(Server *server) {
141 if (server->info) { 141 if (server->info) {
142 freeaddrinfo(server->info); 142 if (server->info->ai_family == AF_UNIX) {
143 /* this was allocated by our custom function */
144 free(server->info->ai_addr);
145 free(server->info);
146 server->info = NULL;
147 } else {
148 freeaddrinfo(server->info);
149 }
143 } 150 }
144 if (server->client) { 151 if (server->client) {
145 shutdown(server->client->fd, SHUT_RDWR); 152 shutdown(server->client->fd, SHUT_RDWR);
146 close(server->client->fd); 153 close(server->client->fd);
147 free(server->client); 154 free(server->client);

mercurial