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)))
}
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);
}
#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;
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");
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",
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);
" 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",
" 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",
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);