wayland-server: Improve error messages for bad globals

A bug in Weston's toytoolkit gave me an hour of debugging headaches.
Improve the error messages that we send if a client requests an invalid
global, either by name or by version.
This commit is contained in:
Jasper St. Pierre 2013-11-12 21:44:37 -05:00 committed by Kristian Høgsberg
parent 148478323f
commit 40d057f2c9

View file

@ -701,11 +701,15 @@ registry_bind(struct wl_client *client,
if (global->name == name) if (global->name == name)
break; break;
if (&global->link == &display->global_list || if (&global->link == &display->global_list)
global->version < version)
wl_resource_post_error(resource, wl_resource_post_error(resource,
WL_DISPLAY_ERROR_INVALID_OBJECT, WL_DISPLAY_ERROR_INVALID_OBJECT,
"invalid global %d", name); "invalid global %s (%d)", interface, name);
else if (global->version < version)
wl_resource_post_error(resource,
WL_DISPLAY_ERROR_INVALID_OBJECT,
"invalid version for global %s (%d): have %d, wanted %d",
interface, name, global->version, version);
else else
global->bind(client, global->data, version, id); global->bind(client, global->data, version, id);
} }