| 260 | } |
| 261 | |
| 262 | int |
| 263 | IPCSocketServer::accept(std::error_code &ec) const |
| 264 | { |
| 265 | int ret{-1}; |
| 266 | |
| 267 | for (int retries = 0; retries < _conf.maxRetriesOnTransientErrors; retries++) { |
| 268 | ret = ::accept(_socket, 0, 0); |
| 269 | if (ret >= 0) { |
| 270 | return ret; |
| 271 | } |
| 272 | if (!check_for_transient_errors()) { |
| 273 | ec = std::make_error_code(static_cast<std::errc>(errno)); |
| 274 | return ret; |
| 275 | } |
| 276 | } |
| 277 | |
| 278 | if (ret < 0) { |
| 279 | // seems that we have reached the max retries. |
| 280 | ec = InternalError::MAX_TRANSIENT_ERRORS_HANDLED; |
| 281 | } |
| 282 | |
| 283 | return ret; |
| 284 | } |
| 285 | |
| 286 | void |
| 287 | IPCSocketServer::bind(std::error_code &ec) |
no test coverage detected