1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
use std::panic;

pub fn install_sigpipe_hook() {
    let hook = panic::take_hook();
    panic::set_hook(Box::new(move |info| {
        if let Some(res) = info.payload().downcast_ref::<String>() {
            if res.contains("Broken pipe") {
                return;
            }
        }
        hook(info)
    }));
}