mirror of
https://github.com/ashinn/chibi-scheme.git
synced 2025-05-19 05:39:18 +02:00
(chibi net): sockaddr-name: fix support for IPv6 addresses
The buffer was too small to hold all IPv6 addresses in string form
This commit is contained in:
parent
197894eb87
commit
fd7ff6d33f
1 changed files with 2 additions and 2 deletions
|
@ -92,7 +92,7 @@ sexp sexp_listen (sexp ctx, sexp self, sexp fileno, sexp backlog) {
|
||||||
/* Additional utilities. */
|
/* Additional utilities. */
|
||||||
|
|
||||||
sexp sexp_sockaddr_name (sexp ctx, sexp self, struct sockaddr* addr) {
|
sexp sexp_sockaddr_name (sexp ctx, sexp self, struct sockaddr* addr) {
|
||||||
char buf[24];
|
char buf[INET6_ADDRSTRLEN];
|
||||||
/* struct sockaddr_in *sa = (struct sockaddr_in *)addr; */
|
/* struct sockaddr_in *sa = (struct sockaddr_in *)addr; */
|
||||||
/* unsigned char *ptr = (unsigned char *)&(sa->sin_addr); */
|
/* unsigned char *ptr = (unsigned char *)&(sa->sin_addr); */
|
||||||
/* sprintf(buf, "%d.%d.%d.%d", ptr[0], ptr[1], ptr[2], ptr[3]); */
|
/* sprintf(buf, "%d.%d.%d.%d", ptr[0], ptr[1], ptr[2], ptr[3]); */
|
||||||
|
@ -100,7 +100,7 @@ sexp sexp_sockaddr_name (sexp ctx, sexp self, struct sockaddr* addr) {
|
||||||
(addr->sa_family == AF_INET6 ?
|
(addr->sa_family == AF_INET6 ?
|
||||||
(void*)(&(((struct sockaddr_in6 *)addr)->sin6_addr)) :
|
(void*)(&(((struct sockaddr_in6 *)addr)->sin6_addr)) :
|
||||||
(void*)(&(((struct sockaddr_in *)addr)->sin_addr))),
|
(void*)(&(((struct sockaddr_in *)addr)->sin_addr))),
|
||||||
buf, 24);
|
buf, INET6_ADDRSTRLEN);
|
||||||
return sexp_c_string(ctx, buf, -1);
|
return sexp_c_string(ctx, buf, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue