+ if (errno == ENOTCONN) /* seen for TFO on FreeBSD */
+ {
+ struct timeval tv = { .tv_sec = 0, .tv_usec = 500*1000 };
+ fd_set s;
+
+ FD_ZERO(&s); FD_SET(sock, &s);
+ (void) select(sock+1, NULL, (SELECT_ARG2_TYPE *)&s, (SELECT_ARG2_TYPE *)&s, &tv);
+ if (send(sock, buffer, qlen, 0) < 0)
+ {
+ DEBUG(D_ident) debug_printf("ident re-send failed: %s\n", strerror(errno));
+ goto END_OFF;
+ }
+ }
+ else
+ {
+ DEBUG(D_ident) debug_printf("ident send failed: %s\n", strerror(errno));
+ goto END_OFF;
+ }