| 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); |