• Christopher James Halse Rogers's avatar
    proto, server: Add internal server error message. (v2) · d3251402
    Christopher James Halse Rogers authored
    Many languages such as C++ or Rust have an unwinding error-reporting
    mechanism. Code in these languages can (and must!) wrap request handling
    callbacks in unwind guards to avoid undefined behaviour.
    
    As a consequence such code will detect internal server errors, but have
    no way to communicate such failures to the client.
    
    This adds a WL_DISPLAY_ERROR_IMPLEMENTATION error to wl_display so that
    such code can notify (and disconnect) clients which hit internal bugs.
    While servers can currently abuse other wl_display errors for the same
    effect, adding an explicit error code allows clients to tell the
    difference between errors which are their fault and errors which are the
    server's fault. This is particularly interesting for automated bug
    reporting.
    
    v2: Rename error from "internal" to "implementation", in sympathy with
        X11's BadImplementation error.
        Add more justification in the commit message.
    Signed-off-by: 's avatarChristopher James Halse Rogers <christopher.halse.rogers@canonical.com>
    Acked-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.co.uk>
    Reviewed-by: Pekka Paalanen's avatarPekka Paalanen <pekka.paalanen@collabora.com>
    d3251402
wayland-server.c 58.1 KB