tcp_server_callback_t *start;
void *opaque;
int fd;
- struct sockaddr_in peer;
- struct sockaddr_in self;
+ struct sockaddr_storage peer;
+ struct sockaddr_storage self;
} tcp_server_launch_t;
tsl = malloc(sizeof(tcp_server_launch_t));
tsl->start = ts->start;
tsl->opaque = ts->opaque;
- slen = sizeof(struct sockaddr_in);
+ slen = sizeof(struct sockaddr_storage);
tsl->fd = accept(ts->serverfd,
(struct sockaddr *)&tsl->peer, &slen);
}
- slen = sizeof(struct sockaddr_in);
+ slen = sizeof(struct sockaddr_storage);
if(getsockname(tsl->fd, (struct sockaddr *)&tsl->self, &slen)) {
close(tsl->fd);
free(tsl);
size_t errbufsize, int timeout);
typedef void (tcp_server_callback_t)(int fd, void *opaque,
- struct sockaddr_in *peer,
- struct sockaddr_in *self);
+ struct sockaddr_storage *peer,
+ struct sockaddr_storage *self);
void *tcp_server_create(int port, tcp_server_callback_t *start, void *opaque);