Door Return Failure
Occasionally server procedures expect their calls to door_return to be
fallible. For example in
usr/src/cmd/fs.d/autofs/ns_files.c:
if (rc != 0) {
door_return((char *)&rc, sizeof (rc), NULL, 0);
} else {
door_return((char *)line, LINESZ, NULL, 0);
}
/* how does this even happen */
trace_prt(1, "automountd_do_exec_map, door return failed %s, %s\n",
command->file, strerror(errno));
door_return(NULL, 0, NULL, 0);
in usr/src/lib/libsysevent/libsysevent.c:
return_from_door:
(void) door_return((void *)&ret, sizeof (ret), NULL, 0);
(void) door_return(NULL, 0, NULL, 0);
}
and other examples in automountd.