]> git.decadent.org.uk Git - nfs-utils.git/blobdiff - utils/gssd/svcgssd_proc.c
svcgssd: check the return code from qword_eol() and log failures
[nfs-utils.git] / utils / gssd / svcgssd_proc.c
index f1621529733880c08325a8a2285787dc773e813d..6f2ba61e31edfc62c5b60bf379c80b0631690299 100644 (file)
 
 */
 
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif /* HAVE_CONFIG_H */
+
 #include <sys/param.h>
 #include <sys/stat.h>
 #include <rpc/rpc.h>
@@ -105,10 +109,14 @@ do_svc_downcall(gss_buffer_desc *out_handle, struct svc_cred *cred,
        qword_print(f, fname);
        qword_printhex(f, context_token->value, context_token->length);
        err = qword_eol(f);
+       if (err) {
+               printerr(1, "WARNING: error writing to downcall channel "
+                        "%s: %s\n", SVCGSSD_CONTEXT_CHANNEL, strerror(errno));
+       }
        fclose(f);
        return err;
 out_err:
-       printerr(0, "WARNING: downcall failed\n");
+       printerr(1, "WARNING: downcall failed\n");
        return -1;
 }
 
@@ -247,7 +255,7 @@ get_ids(gss_name_t client_name, gss_OID mech, struct svc_cred *cred)
                        res = 0;
                        goto out_free;
                }
-               printerr(0, "WARNING: get_ids: failed to map name '%s' "
+               printerr(1, "WARNING: get_ids: failed to map name '%s' "
                        "to uid/gid: %s\n", sname, strerror(-res));
                goto out_free;
        }
@@ -380,7 +388,7 @@ handle_nullreq(FILE *f) {
                goto continue_needed;
        }
        else if (maj_stat != GSS_S_COMPLETE) {
-               printerr(0, "WARNING: gss_accept_sec_context failed\n");
+               printerr(1, "WARNING: gss_accept_sec_context failed\n");
                pgsserr("handle_nullreq: gss_accept_sec_context",
                        maj_stat, min_stat, mech);
                goto out_err;