If an event or request have a "since" attribute that is larger than
the version of the interface it is in, fail with an explaining error
message.
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Marek Chalupa <mchqwerty@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
if (since != NULL) {
version = strtouint(since);
- if (version == -1)
+ if (version == -1) {
fail(&ctx->loc, "invalid integer (%s)\n", since);
+ } else if (version > ctx->interface->version) {
+ fail(&ctx->loc, "since (%u) larger than version (%u)\n",
+ version, ctx->interface->version);
+ }
} else {
version = 1;
}