<term><constant>-ENXIO</constant></term>
<listitem><para>Returned by <function>sd_id128_get_invocation()</function> if no invocation ID is
- set.</para>
+ set. Also returned by <function>sd_id128_get_app_specific()</function>,
+ <function>sd_id128_get_machine_app_specific()</function>, and
+ <function>sd_id128_get_boot_app_specific()</function> when the <parameter>app_id</parameter>
+ parameter is all zeros.</para>
<xi:include href="version-info.xml" xpointer="v242"/></listitem>
</varlistentry>
break;
case 'a':
- r = sd_id128_from_string(optarg, &arg_app);
+ r = id128_from_string_nonzero(optarg, &arg_app);
+ if (r == -ENXIO)
+ return log_error_errno(r, "Application ID cannot be all zeros.");
if (r < 0)
return log_error_errno(r, "Failed to parse \"%s\" as application-ID: %m", optarg);
break;
} buf;
assert_return(ret, -EINVAL);
+ assert_return(!sd_id128_is_null(app_id), -ENXIO);
hmac_sha256(&base, sizeof(base), &app_id, sizeof(app_id), buf.hmac);
assert_se(sd_id128_get_machine_app_specific(SD_ID128_MAKE(51,df,0b,4b,c3,b0,4c,97,80,e2,99,b9,8c,a3,73,b8), &id2) >= 0);
assert_se(!sd_id128_equal(id, id2));
}
+
+ /* Check return values */
+ assert_se(sd_id128_get_app_specific(SD_ID128_ALLF, SD_ID128_NULL, &id) == -ENXIO);
+ assert_se(sd_id128_get_app_specific(SD_ID128_NULL, SD_ID128_ALLF, &id) == 0);
}
TEST(sd_id128_get_invocation) {