[racket-dev] tcp_listen error handling
Hi. I've successfully started Racket 5.3.4.7 with Geiser server through JNI + SDL2 on Android (and this combination mostly works with small hacks), but got some issues due to racket's implementation. This is last one I'm trying to understand. What should be here instead of the "address" expression?
2349 } else {
2350 scheme_raise_exn(MZEXN_FAIL_NETWORK,
2351 "tcp-listen: host not found\n"
2352 " address: %s\n"
2353 " system error: %N",
2354 address, 1, err);
2355 return NULL;
2356 }
2357 }
https://github.com/plt/racket/blob/master/src/racket/src/network.c#L2354
It looks like there should be (but i'm not sure)
address ? address : "#f" // as i see at another place, because it's possible to have NULL according to the:
https://github.com/plt/racket/blob/master/src/racket/src/network.c#L2147
Without such change I got segfault because sch_vsprintf tried to process NULL pointer, when i forgot to grant internet permissions for my application and tried to call start-geiser function (getaddrinfo returns fail in this situation and this `else` block is called).
--
Alex Moiseenko