flowopt_cleanup(fo);
if (src == NULL && dst == NULL) {
+ rc = errno;
PARA_ERROR_LOG("can not create %s socket %s#%s.\n",
layer4_name(l4type), host? host : (passive?
"[loopback]" : "[localhost]"), port);
- return -ERRNO_TO_PARA_ERROR(errno);
+ return -ERRNO_TO_PARA_ERROR(rc);
}
return sockfd;
}
if (fd > 0) {
ret = listen(fd, BACKLOG);
if (ret < 0) {
+ ret = errno;
close(fd);
- return -ERRNO_TO_PARA_ERROR(errno);
+ return -ERRNO_TO_PARA_ERROR(ret);
}
PARA_INFO_LOG("listening on %s port %u, fd %d\n",
layer4_name(l4type), port, fd);