| 203 | } catch (const Xapian::NetworkTimeoutError & e) { |
| 204 | try { |
| 205 | // We've had a timeout, so the client may not be listening, so |
| 206 | // if we can't send the message right away, just exit and the |
| 207 | // client will cope. |
| 208 | RemoteConnection::send_message(REPLY_EXCEPTION, serialise_error(e), OmTime::now()); |
| 209 | } catch (...) { |
| 210 | } |
| 211 | // but this really isn't an 'error' - particularly when an 'idle' |
| 212 | // timeout (maybe making this distinction is worthwhile?). For |
| 213 | // now, just close the connection and silently return - no |
| 214 | // message will be logged. |
| 215 | return; |
| 216 | } catch (const Xapian::NetworkError) { |
| 217 | // All other network errors mean we are fatally confused - we |
| 218 | // can't recover from a single missed byte - so no point trying |
| 219 | // to serialize the error. Let top-level handler log a message |
| 220 | // before closing the connection. |
| 221 | throw; |