static int raw_receive (Socket skt, int urgent, char *data, int len) {
if (urgent==3) {
/* A socket error has occurred. */
+ sk_close(s);
s = NULL;
connection_fatal(data);
len = 0;
- }
- if (!len) {
+ return 0;
+ } else if (!len) {
/* Connection has closed. */
sk_close(s);
s = NULL;
/*
* Open socket.
*/
- s = sk_new(addr, port, 0, raw_receive);
+ s = sk_new(addr, port, 0, 1, raw_receive);
if ( (err = sk_socket_error(s)) )
return err;