]> andersk Git - moira.git/commitdiff
Do a better job with returning error codes: add ERROR_TABLE_BASE_krb
authordanw <danw>
Tue, 2 Sep 1997 22:23:01 +0000 (22:23 +0000)
committerdanw <danw>
Tue, 2 Sep 1997 22:23:01 +0000 (22:23 +0000)
to error codes returned by krb functions, and use
connection_errno(conn) for the error value from send_object and
receive_object (not their return value, which is a non-useful GDB
error number).

update/auth_002.c
update/exec_002.c
update/send_file.c
update/ticket.c

index ca621350198cc0481610aeb7db1f45fb99e5f5e3..1d817ab502e0baef5c0929277ffe7c5bd8e6de90 100644 (file)
@@ -125,6 +125,10 @@ auth_002(str)
     if (send_object(conn, (char *)&data, STRING_T))
        lose("sending nonce");
     code = receive_object(conn, (char *)&data, STRING_T);
+    if (code) {
+       code = connection_errno(conn);
+       goto auth_failed;
+    }
     des_key_sched(&ad.session, &sched);
     des_ecb_encrypt(STRING_DATA(data), nonce2, sched, 0);
     if (memcmp(nonce, nonce2, sizeof(nonce)))
index c9239a519e6b82d19717f31ad33574282999f893..fcf0d96ff1437003f3b94aada4c684f686e65d80 100644 (file)
@@ -54,7 +54,7 @@ exec_002(str)
     }
     if (config_lookup("noexec")) {
        code = EPERM;
-       code = send_object(conn, (char *)&code, INTEGER_T);
+       send_object(conn, (char *)&code, INTEGER_T);
        com_err(whoami, code, "Not allowed to execute");
        return(0);
     }
@@ -115,16 +115,16 @@ exec_002(str)
 #endif
 #ifdef POSIX
        if ( (WIFEXITED(waitb) && (WEXITSTATUS(waitb)!=0)) || WIFSIGNALED(waitb)  ) {
-           /* This is not really correct.  It will cause teh moira server to
-              report a bogus error message if the script died on a signal.
-              However this is the same thing that occurs in the non-POSIX
-              case, and I don't know how to come up with a useful error based
-              on the signal recieved.
-           */
-           n = WEXITSTATUS(waitb) + ERROR_TABLE_BASE_sms;
            log_priority = log_ERROR;
-           com_err(whoami, n, " child exited with status %d",
-                   WEXITSTATUS(waitb));
+           if (WIFSIGNALED(waitb)) {
+               n = MR_COREDUMP;
+               com_err(whoami, n, " child exited on signal %d",
+                       WTERMSIG(waitb));
+           } else {
+               n = WEXITSTATUS(waitb) + ERROR_TABLE_BASE_sms;
+               com_err(whoami, n, " child exited with status %d",
+                       WEXITSTATUS(waitb));
+           }
 #else
        if (waitb.w_status) {
            n = waitb.w_retcode + ERROR_TABLE_BASE_sms;
index 317bc2d9f4754d788df2fdef775651d1cbc6c224..dc2699915109c94fdea57c84da476031525337aa 100644 (file)
@@ -79,15 +79,16 @@ int  encrypt;
            checksum_file(pathname), target_path);
     code = send_object(conn, (char *)&data, STRING_T);
     if (code) {
-       com_err(whoami, code, " sending XFER request");
+       com_err(whoami, connection_errno(conn), " sending XFER request");
        close(fd);
-       return(code);
+       return(connection_errno(conn));
     }
     code = receive_object(conn, (char *)&n, INTEGER_T);
     if (code) {
-       com_err(whoami, code, " getting reply from XFER request");
+       com_err(whoami, connection_errno(conn),
+               " getting reply from XFER request");
        close(fd);
-       return(code);
+       return(connection_errno(conn));
     }
     if (n) {
        com_err(whoami, n, " transfer request (XFER) rejected");
@@ -99,7 +100,7 @@ int  encrypt;
     if (code) {
        com_err(whoami, connection_errno(conn), ": lost connection");
        close(fd);
-       return(code);
+       return(connection_errno(conn));
     }
     if (n) {
        com_err(whoami, n, " from remote server: can't update %s",
@@ -154,7 +155,7 @@ int  encrypt;
            com_err(whoami, connection_errno(conn), " transmitting file %s",
                    pathname);
            close(fd);
-           return(code);
+           return(connection_errno(conn));
        }
        n_to_send -= n;
        code = receive_object(conn, (char *)&n, INTEGER_T);
@@ -163,7 +164,7 @@ int  encrypt;
                    " awaiting ACK remote server during transmission of %s",
                    pathname);
            close(fd);
-           return(code);
+           return(connection_errno(conn));
        }
        if (n) {
            com_err(whoami, n, " from remote server during transmission of %s",
@@ -179,7 +180,7 @@ int  encrypt;
                    " awaiting ACK remote server after transmission of %s",
                    pathname);
            close(fd);
-           return(code);
+           return(connection_errno(conn));
        }
        if (n) {
            com_err(whoami, n, " from remote server after transmission of %s",
index 6e5f6d1d50cb0bcde880153b9121e59615f26727..29b909e6bb49d17695dbacb191676a11557a07ba 100644 (file)
@@ -68,9 +68,11 @@ get_mr_update_ticket(host, ticket)
             pass++;
             goto try_it;
         }
+        code += ERROR_TABLE_BASE_krb;
         com_err(whoami, code, "in krb_mk_req");
      } else {
         code = krb_get_cred(service, phost, realm, &cr);
+        if (code) code += ERROR_TABLE_BASE_krb;
         memcpy(session, cr.session, sizeof(session));
      }
      return(code);
This page took 0.049575 seconds and 5 git commands to generate.