Print this page
NEX-13374 NDMP should be able to backup unmounted ZFS filesystems
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
NEX-5801 Snapshots left over after failed backups
Reviewed by: Rick Mesta <rick.mesta@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
Reviewed by: Yuri Pankov <yuri.pankov@nexenta.com>
Revert "NEX-5801 Snapshots left over after failed backups"
This reverts commit f182fb95f09036db71fbfc6f0a6b90469b761f21.
NEX-5801 Snapshots left over after failed backups
Reviewed by: Rick Mesta <rick.mesta@nexenta.com>
Reviewed by: Evan Layton <evan.layton@nexenta.com>
Reviewed by: Sanjay Nadkarni <sanjay.nadkarni@nexenta.com>
NEX-2911 NDMP logging should use syslog and is too chatty
NEX-894 Default location of NDMP log file should be under /var/log
NEX-727 Netbackup Catalog verification hangs waiting for NDMP server

*** 1,8 **** /* * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright 2014 Nexenta Systems, Inc. All rights reserved. */ /* * BSD 3 Clause License * --- 1,8 ---- /* * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. ! * Copyright 2017 Nexenta Systems, Inc. All rights reserved. */ /* * BSD 3 Clause License *
*** 41,50 **** --- 41,51 ---- #include <sys/types.h> #include <sys/socket.h> #include <sys/time.h> #include <sys/uio.h> + #include <syslog.h> #include <unistd.h> #include <string.h> #include <stdlib.h> #include <errno.h> #include <netdb.h>
*** 82,91 **** --- 83,102 ---- * Do we support Direct Access Restore? */ int ndmp_dar_support = 0; /* + * Is autosync enabled? + */ + int ndmp_autosync_support = 0; + + /* + * Is HPR snapshot enabled? + */ + int ndmp_hpr_support = 0; + + /* * ndmp_connection_t handler function */ static ndmpd_file_handler_func_t connection_file_handler; extern ndmp_handler_t ndmp_msghdl_tab[];
*** 152,162 **** xdrrec_create(&connection->conn_xdrs, 0, 0, (caddr_t)connection, ndmp_readit, ndmp_writeit); if (connection->conn_xdrs.x_ops == 0) { ! NDMP_LOG(LOG_DEBUG, "xdrrec_create failed"); (void) mutex_destroy(&connection->conn_lock); (void) close(connection->conn_sock); free(connection); return (0); } --- 163,173 ---- xdrrec_create(&connection->conn_xdrs, 0, 0, (caddr_t)connection, ndmp_readit, ndmp_writeit); if (connection->conn_xdrs.x_ops == 0) { ! syslog(LOG_ERR, "xdrrec_create failed"); (void) mutex_destroy(&connection->conn_lock); (void) close(connection->conn_sock); free(connection); return (0); }
*** 276,311 **** sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = htons(port); if ((server_socket = socket(AF_INET, SOCK_STREAM, 0)) < 0) { ! NDMP_LOG(LOG_DEBUG, "Socket error: %m"); return (-1); } on = 1; (void) setsockopt(server_socket, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof (on)); if (bind(server_socket, (struct sockaddr *)&sin, sizeof (sin)) < 0) { ! NDMP_LOG(LOG_DEBUG, "bind error: %m"); (void) close(server_socket); return (-1); } if (listen(server_socket, 5) < 0) { ! NDMP_LOG(LOG_DEBUG, "listen error: %m"); (void) close(server_socket); return (-1); } for (; ; ) { if ((ns = tcp_accept(server_socket, &ipaddr)) < 0) { ! NDMP_LOG(LOG_DEBUG, "tcp_accept error: %m"); continue; } - NDMP_LOG(LOG_DEBUG, "connection fd: %d", ns); set_socket_options(ns); if ((argp = ndmp_malloc(sizeof (ndmpd_worker_arg_t))) != NULL) { argp->nw_sock = ns; argp->nw_ipaddr = ipaddr; --- 287,321 ---- sin.sin_family = AF_INET; sin.sin_addr.s_addr = INADDR_ANY; sin.sin_port = htons(port); if ((server_socket = socket(AF_INET, SOCK_STREAM, 0)) < 0) { ! syslog(LOG_ERR, "Socket error: %m"); return (-1); } on = 1; (void) setsockopt(server_socket, SOL_SOCKET, SO_REUSEADDR, (char *)&on, sizeof (on)); if (bind(server_socket, (struct sockaddr *)&sin, sizeof (sin)) < 0) { ! syslog(LOG_ERR, "bind error: %m"); (void) close(server_socket); return (-1); } if (listen(server_socket, 5) < 0) { ! syslog(LOG_ERR, "listen error: %m"); (void) close(server_socket); return (-1); } for (; ; ) { if ((ns = tcp_accept(server_socket, &ipaddr)) < 0) { ! syslog(LOG_ERR, "tcp_accept error: %m"); continue; } set_socket_options(ns); if ((argp = ndmp_malloc(sizeof (ndmpd_worker_arg_t))) != NULL) { argp->nw_sock = ns; argp->nw_ipaddr = ipaddr;
*** 420,430 **** int r; struct timeval time; /* Lookup info necessary for processing this request. */ if (!(handler = ndmp_get_handler(connection, message))) { ! NDMP_LOG(LOG_DEBUG, "Sending message 0x%x: not supported", message); return (-1); } (void) gettimeofday(&time, 0); --- 430,440 ---- int r; struct timeval time; /* Lookup info necessary for processing this request. */ if (!(handler = ndmp_get_handler(connection, message))) { ! syslog(LOG_ERR, "Sending message 0x%x: not supported", message); return (-1); } (void) gettimeofday(&time, 0);
*** 435,463 **** header.reply_sequence = 0; header.error = err; connection->conn_xdrs.x_op = XDR_ENCODE; if (!xdr_ndmp_header(&connection->conn_xdrs, &header)) { ! NDMP_LOG(LOG_DEBUG, "Sending message 0x%x: encoding request header", message); (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); return (-1); } if (err == NDMP_NO_ERR && handler->mh_xdr_request && request_data) { if (!(*handler->mh_xdr_request)(&connection->conn_xdrs, request_data)) { ! NDMP_LOG(LOG_DEBUG, "Sending message 0x%x: encoding request body", message); (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); return (-1); } } (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); if (handler->mh_xdr_reply == 0) { - NDMP_LOG(LOG_DEBUG, "handler->mh_xdr_reply == 0"); return (0); } /* * Process messages until the reply to this request has been --- 445,472 ---- header.reply_sequence = 0; header.error = err; connection->conn_xdrs.x_op = XDR_ENCODE; if (!xdr_ndmp_header(&connection->conn_xdrs, &header)) { ! syslog(LOG_ERR, "Sending message 0x%x: encoding request header", message); (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); return (-1); } if (err == NDMP_NO_ERR && handler->mh_xdr_request && request_data) { if (!(*handler->mh_xdr_request)(&connection->conn_xdrs, request_data)) { ! syslog(LOG_ERR, "Sending message 0x%x: encoding request body", message); (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); return (-1); } } (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); if (handler->mh_xdr_reply == 0) { return (0); } /* * Process messages until the reply to this request has been
*** 476,486 **** /* reply received? */ if (r == 1) { if (message != connection->conn_msginfo.mi_hdr.message) { ! NDMP_LOG(LOG_DEBUG, "Received unexpected reply 0x%x", connection->conn_msginfo.mi_hdr.message); ndmp_free_message(connection_handle); return (-1); } --- 485,495 ---- /* reply received? */ if (r == 1) { if (message != connection->conn_msginfo.mi_hdr.message) { ! syslog(LOG_ERR, "Received unexpected reply 0x%x", connection->conn_msginfo.mi_hdr.message); ndmp_free_message(connection_handle); return (-1); }
*** 569,579 **** header.reply_sequence = connection->conn_msginfo.mi_hdr.sequence; header.error = err; connection->conn_xdrs.x_op = XDR_ENCODE; if (!xdr_ndmp_header(&connection->conn_xdrs, &header)) { ! NDMP_LOG(LOG_DEBUG, "Sending message 0x%x: " "encoding reply header", header.message); (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); return (-1); } --- 578,588 ---- header.reply_sequence = connection->conn_msginfo.mi_hdr.sequence; header.error = err; connection->conn_xdrs.x_op = XDR_ENCODE; if (!xdr_ndmp_header(&connection->conn_xdrs, &header)) { ! syslog(LOG_ERR, "Sending message 0x%x: " "encoding reply header", header.message); (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); return (-1); }
*** 580,590 **** if (err == NDMP_NO_ERR && connection->conn_msginfo.mi_handler->mh_xdr_reply && reply) { if (!(*connection->conn_msginfo.mi_handler->mh_xdr_reply)( &connection->conn_xdrs, reply)) { ! NDMP_LOG(LOG_DEBUG, "Sending message 0x%x: encoding reply body", header.message); (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); return (-1); } --- 589,599 ---- if (err == NDMP_NO_ERR && connection->conn_msginfo.mi_handler->mh_xdr_reply && reply) { if (!(*connection->conn_msginfo.mi_handler->mh_xdr_reply)( &connection->conn_xdrs, reply)) { ! syslog(LOG_ERR, "Sending message 0x%x: encoding reply body", header.message); (void) xdrrec_endofrecord(&connection->conn_xdrs, 1); return (-1); }
*** 856,886 **** req.protocol_version = ndmp_ver; req.text_reason = ""; if (ndmp_send_request_lock(connection, NDMP_NOTIFY_CONNECTION_STATUS, NDMP_NO_ERR, (void *)&req, 0) < 0) { ! NDMP_LOG(LOG_DEBUG, "Connection terminated"); return; } connection_fd = ndmp_get_fd(connection); - NDMP_LOG(LOG_DEBUG, "connection_fd: %d", connection_fd); - /* * Add the handler function for the connection to the DMA. */ if (ndmpd_add_file_handler(&session, (void *)&session, connection_fd, NDMPD_SELECT_MODE_READ, HC_CLIENT, connection_file_handler) != 0) { ! NDMP_LOG(LOG_DEBUG, "Could not register session handler."); return; } /* * Register the connection in the list of active connections. */ if (ndmp_connect_list_add(connection, &conn_id) != 0) { ! NDMP_LOG(LOG_ERR, "Could not register the session to the server."); (void) ndmpd_remove_file_handler(&session, connection_fd); return; } --- 865,893 ---- req.protocol_version = ndmp_ver; req.text_reason = ""; if (ndmp_send_request_lock(connection, NDMP_NOTIFY_CONNECTION_STATUS, NDMP_NO_ERR, (void *)&req, 0) < 0) { ! syslog(LOG_DEBUG, "Send CONNECTION STATUS failed"); return; } connection_fd = ndmp_get_fd(connection); /* * Add the handler function for the connection to the DMA. */ if (ndmpd_add_file_handler(&session, (void *)&session, connection_fd, NDMPD_SELECT_MODE_READ, HC_CLIENT, connection_file_handler) != 0) { ! syslog(LOG_ERR, "Could not register session handler."); return; } /* * Register the connection in the list of active connections. */ if (ndmp_connect_list_add(connection, &conn_id) != 0) { ! syslog(LOG_ERR, "Could not register the session to the server."); (void) ndmpd_remove_file_handler(&session, connection_fd); return; }
*** 889,910 **** while (session.ns_eof == FALSE) (void) ndmpd_select(&session, TRUE, HC_ALL); hardlink_q_cleanup(session.hardlink_q); - NDMP_LOG(LOG_DEBUG, "Connection terminated"); - (void) ndmpd_remove_file_handler(&session, connection_fd); if (session.ns_scsi.sd_is_open != -1) { ! NDMP_LOG(LOG_DEBUG, "scsi.is_open: %d", session.ns_scsi.sd_is_open); (void) ndmp_open_list_del(session.ns_scsi.sd_adapter_name, session.ns_scsi.sd_sid, session.ns_scsi.sd_lun); } if (session.ns_tape.td_fd != -1) { ! NDMP_LOG(LOG_DEBUG, "tape.fd: %d", session.ns_tape.td_fd); (void) close(session.ns_tape.td_fd); (void) ndmp_open_list_del(session.ns_tape.td_adapter_name, session.ns_tape.td_sid, session.ns_tape.td_lun); } ndmpd_mover_shut_down(&session); --- 896,915 ---- while (session.ns_eof == FALSE) (void) ndmpd_select(&session, TRUE, HC_ALL); hardlink_q_cleanup(session.hardlink_q); (void) ndmpd_remove_file_handler(&session, connection_fd); if (session.ns_scsi.sd_is_open != -1) { ! syslog(LOG_ERR, "scsi.is_open: %d", session.ns_scsi.sd_is_open); (void) ndmp_open_list_del(session.ns_scsi.sd_adapter_name, session.ns_scsi.sd_sid, session.ns_scsi.sd_lun); } if (session.ns_tape.td_fd != -1) { ! syslog(LOG_ERR, "tape.fd: %d", session.ns_tape.td_fd); (void) close(session.ns_tape.td_fd); (void) ndmp_open_list_del(session.ns_tape.td_adapter_name, session.ns_tape.td_sid, session.ns_tape.td_lun); } ndmpd_mover_shut_down(&session);
*** 1032,1042 **** return (-1); /* Lookup info necessary for processing this message. */ if ((connection->conn_msginfo.mi_handler = ndmp_get_handler(connection, connection->conn_msginfo.mi_hdr.message)) == 0) { ! NDMP_LOG(LOG_DEBUG, "Message 0x%x not supported", connection->conn_msginfo.mi_hdr.message); return (NDMP_NOT_SUPPORTED_ERR); } connection->conn_msginfo.mi_body = 0; --- 1037,1047 ---- return (-1); /* Lookup info necessary for processing this message. */ if ((connection->conn_msginfo.mi_handler = ndmp_get_handler(connection, connection->conn_msginfo.mi_hdr.message)) == 0) { ! syslog(LOG_DEBUG, "Message 0x%x not supported", connection->conn_msginfo.mi_hdr.message); return (NDMP_NOT_SUPPORTED_ERR); } connection->conn_msginfo.mi_body = 0;
*** 1047,1067 **** if (connection->conn_msginfo.mi_hdr.message_type == NDMP_MESSAGE_REQUEST) { if (ndmp_check_auth_required( connection->conn_msginfo.mi_hdr.message) && !connection->conn_authorized) { ! NDMP_LOG(LOG_DEBUG, "Processing request 0x%x:connection not authorized", connection->conn_msginfo.mi_hdr.message); return (NDMP_NOT_AUTHORIZED_ERR); } if (connection->conn_msginfo.mi_handler->mh_sizeof_request > 0) { xdr_func = connection->conn_msginfo.mi_handler->mh_xdr_request; if (xdr_func == NULL) { ! NDMP_LOG(LOG_DEBUG, "Processing request 0x%x: no xdr function " "in handler table", connection->conn_msginfo.mi_hdr.message); return (NDMP_NOT_SUPPORTED_ERR); } --- 1052,1072 ---- if (connection->conn_msginfo.mi_hdr.message_type == NDMP_MESSAGE_REQUEST) { if (ndmp_check_auth_required( connection->conn_msginfo.mi_hdr.message) && !connection->conn_authorized) { ! syslog(LOG_ERR, "Processing request 0x%x:connection not authorized", connection->conn_msginfo.mi_hdr.message); return (NDMP_NOT_AUTHORIZED_ERR); } if (connection->conn_msginfo.mi_handler->mh_sizeof_request > 0) { xdr_func = connection->conn_msginfo.mi_handler->mh_xdr_request; if (xdr_func == NULL) { ! syslog(LOG_ERR, "Processing request 0x%x: no xdr function " "in handler table", connection->conn_msginfo.mi_hdr.message); return (NDMP_NOT_SUPPORTED_ERR); }
*** 1078,1088 **** } else { if (connection->conn_msginfo.mi_handler->mh_sizeof_reply > 0) { xdr_func = connection->conn_msginfo.mi_handler->mh_xdr_reply; if (xdr_func == NULL) { ! NDMP_LOG(LOG_DEBUG, "Processing reply 0x%x: no xdr function " "in handler table", connection->conn_msginfo.mi_hdr.message); return (NDMP_NOT_SUPPORTED_ERR); } --- 1083,1093 ---- } else { if (connection->conn_msginfo.mi_handler->mh_sizeof_reply > 0) { xdr_func = connection->conn_msginfo.mi_handler->mh_xdr_reply; if (xdr_func == NULL) { ! syslog(LOG_ERR, "Processing reply 0x%x: no xdr function " "in handler table", connection->conn_msginfo.mi_hdr.message); return (NDMP_NOT_SUPPORTED_ERR); }
*** 1100,1111 **** /* Decode message arguments if needed */ if (xdr_func) { if (!(*xdr_func)(&connection->conn_xdrs, connection->conn_msginfo.mi_body)) { ! NDMP_LOG(LOG_DEBUG, ! "Processing message 0x%x: error decoding arguments", connection->conn_msginfo.mi_hdr.message); free(connection->conn_msginfo.mi_body); connection->conn_msginfo.mi_body = 0; return (NDMP_XDR_DECODE_ERR); } --- 1105,1120 ---- /* Decode message arguments if needed */ if (xdr_func) { if (!(*xdr_func)(&connection->conn_xdrs, connection->conn_msginfo.mi_body)) { ! syslog(LOG_ERR, ! "Processing %s message 0x%x: " ! "error decoding arguments", ! connection->conn_msginfo.mi_hdr.message_type == ! NDMP_MESSAGE_REQUEST ? ! "Request" : "Reply", connection->conn_msginfo.mi_hdr.message); free(connection->conn_msginfo.mi_body); connection->conn_msginfo.mi_body = 0; return (NDMP_XDR_DECODE_ERR); }
*** 1166,1191 **** msg_info_t reply_msginfo; boolean_t reply_read = FALSE; boolean_t reply_error = FALSE; int err; - NDMP_LOG(LOG_DEBUG, "reply_expected: %s", - reply_expected == TRUE ? "TRUE" : "FALSE"); - (void) memset((void *)&reply_msginfo, 0, sizeof (msg_info_t)); do { (void) memset((void *)&connection->conn_msginfo, 0, sizeof (msg_info_t)); if ((err = ndmp_recv_msg(connection)) != NDMP_NO_ERR) { if (connection->conn_eof) { - NDMP_LOG(LOG_DEBUG, "detected eof"); return (NDMP_PROC_ERR); } if (err < 1) { ! NDMP_LOG(LOG_DEBUG, "error decoding header"); /* * Error occurred decoding the header. * Don't send a reply since we don't know * the message or if the message was even --- 1175,1196 ---- msg_info_t reply_msginfo; boolean_t reply_read = FALSE; boolean_t reply_error = FALSE; int err; (void) memset((void *)&reply_msginfo, 0, sizeof (msg_info_t)); do { (void) memset((void *)&connection->conn_msginfo, 0, sizeof (msg_info_t)); if ((err = ndmp_recv_msg(connection)) != NDMP_NO_ERR) { if (connection->conn_eof) { return (NDMP_PROC_ERR); } if (err < 1) { ! syslog(LOG_ERR, "error decoding header"); /* * Error occurred decoding the header. * Don't send a reply since we don't know * the message or if the message was even
*** 1202,1217 **** continue; } if (connection->conn_msginfo.mi_hdr.message_type != NDMP_MESSAGE_REQUEST) { ! NDMP_LOG(LOG_DEBUG, "received reply: 0x%x", connection->conn_msginfo.mi_hdr.message); if (reply_expected == FALSE || reply_read == TRUE) ! NDMP_LOG(LOG_DEBUG, "Unexpected reply message: 0x%x", connection->conn_msginfo.mi_hdr. message); ndmp_free_message((ndmp_connection_t *) --- 1207,1222 ---- continue; } if (connection->conn_msginfo.mi_hdr.message_type != NDMP_MESSAGE_REQUEST) { ! syslog(LOG_DEBUG, "received reply: 0x%x", connection->conn_msginfo.mi_hdr.message); if (reply_expected == FALSE || reply_read == TRUE) ! syslog(LOG_DEBUG, "Unexpected reply message: 0x%x", connection->conn_msginfo.mi_hdr. message); ndmp_free_message((ndmp_connection_t *)
*** 1221,1245 **** reply_read = TRUE; reply_error = TRUE; } continue; } - NDMP_LOG(LOG_DEBUG, "received request: 0x%x", - connection->conn_msginfo.mi_hdr.message); (void) ndmp_send_response((ndmp_connection_t *) connection, err, NULL); ndmp_free_message((ndmp_connection_t *)connection); continue; } if (connection->conn_msginfo.mi_hdr.message_type != NDMP_MESSAGE_REQUEST) { ! NDMP_LOG(LOG_DEBUG, "received reply: 0x%x", connection->conn_msginfo.mi_hdr.message); if (reply_expected == FALSE || reply_read == TRUE) { ! NDMP_LOG(LOG_DEBUG, "Unexpected reply message: 0x%x", connection->conn_msginfo.mi_hdr.message); ndmp_free_message((ndmp_connection_t *) connection); continue; --- 1226,1248 ---- reply_read = TRUE; reply_error = TRUE; } continue; } (void) ndmp_send_response((ndmp_connection_t *) connection, err, NULL); ndmp_free_message((ndmp_connection_t *)connection); continue; } if (connection->conn_msginfo.mi_hdr.message_type != NDMP_MESSAGE_REQUEST) { ! syslog(LOG_DEBUG, "received reply: 0x%x", connection->conn_msginfo.mi_hdr.message); if (reply_expected == FALSE || reply_read == TRUE) { ! syslog(LOG_DEBUG, "Unexpected reply message: 0x%x", connection->conn_msginfo.mi_hdr.message); ndmp_free_message((ndmp_connection_t *) connection); continue;
*** 1246,1265 **** } reply_read = TRUE; reply_msginfo = connection->conn_msginfo; continue; } - NDMP_LOG(LOG_DEBUG, "received request: 0x%x", - connection->conn_msginfo.mi_hdr.message); - /* * The following is needed to catch an improperly constructed * handler table or to deal with an NDMP client that is not * conforming to the negotiated protocol version. */ if (connection->conn_msginfo.mi_handler->mh_func == NULL) { ! NDMP_LOG(LOG_DEBUG, "No handler for message 0x%x", connection->conn_msginfo.mi_hdr.message); (void) ndmp_send_response((ndmp_connection_t *) connection, NDMP_NOT_SUPPORTED_ERR, NULL); ndmp_free_message((ndmp_connection_t *)connection); --- 1249,1265 ---- } reply_read = TRUE; reply_msginfo = connection->conn_msginfo; continue; } /* * The following is needed to catch an improperly constructed * handler table or to deal with an NDMP client that is not * conforming to the negotiated protocol version. */ if (connection->conn_msginfo.mi_handler->mh_func == NULL) { ! syslog(LOG_DEBUG, "No handler for message 0x%x", connection->conn_msginfo.mi_hdr.message); (void) ndmp_send_response((ndmp_connection_t *) connection, NDMP_NOT_SUPPORTED_ERR, NULL); ndmp_free_message((ndmp_connection_t *)connection);
*** 1275,1286 **** ndmp_free_message((ndmp_connection_t *)connection); } while (xdrrec_eof(&connection->conn_xdrs) == FALSE && connection->conn_eof == FALSE); - NDMP_LOG(LOG_DEBUG, "no more messages in stream buffer"); - if (connection->conn_eof == TRUE) { if (reply_msginfo.mi_body) free(reply_msginfo.mi_body); return (NDMP_PROC_ERR); } --- 1275,1284 ----
*** 1513,1523 **** char *path, int dest, char *local_path, int result) { adt_event_data_t *event; if ((event = adt_alloc_event(conn->conn_ah, ADT_ndmp_backup)) == NULL) { ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); return; } event->adt_ndmp_backup.source = path; if (dest == NDMP_ADDR_LOCAL) { --- 1511,1521 ---- char *path, int dest, char *local_path, int result) { adt_event_data_t *event; if ((event = adt_alloc_event(conn->conn_ah, ADT_ndmp_backup)) == NULL) { ! syslog(LOG_ERR, "Audit failure: %m."); return; } event->adt_ndmp_backup.source = path; if (dest == NDMP_ADDR_LOCAL) {
*** 1526,1539 **** event->adt_ndmp_backup.remote_dest = conn->conn_sock; } if (result == 0) { if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); } else { if (adt_put_event(event, ADT_FAILURE, result) != 0) ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); } adt_free_event(event); } --- 1524,1537 ---- event->adt_ndmp_backup.remote_dest = conn->conn_sock; } if (result == 0) { if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) ! syslog(LOG_ERR, "Audit failure: %m."); } else { if (adt_put_event(event, ADT_FAILURE, result) != 0) ! syslog(LOG_ERR, "Audit failure: %m."); } adt_free_event(event); }
*** 1550,1560 **** { adt_event_data_t *event; if ((event = adt_alloc_event(conn->conn_ah, ADT_ndmp_restore)) == NULL) { ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); return; } event->adt_ndmp_restore.destination = path; if (dest == NDMP_ADDR_LOCAL) { --- 1548,1558 ---- { adt_event_data_t *event; if ((event = adt_alloc_event(conn->conn_ah, ADT_ndmp_restore)) == NULL) { ! syslog(LOG_ERR, "Audit failure: %m."); return; } event->adt_ndmp_restore.destination = path; if (dest == NDMP_ADDR_LOCAL) {
*** 1563,1576 **** event->adt_ndmp_restore.remote_source = conn->conn_sock; } if (result == 0) { if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); } else { if (adt_put_event(event, ADT_FAILURE, result) != 0) ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); } adt_free_event(event); } --- 1561,1574 ---- event->adt_ndmp_restore.remote_source = conn->conn_sock; } if (result == 0) { if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) ! syslog(LOG_ERR, "Audit failure: %m."); } else { if (adt_put_event(event, ADT_FAILURE, result) != 0) ! syslog(LOG_ERR, "Audit failure: %m."); } adt_free_event(event); }
*** 1586,1619 **** { adt_event_data_t *event; adt_termid_t *termid; if (adt_load_termid(conn->conn_sock, &termid) != 0) { ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); return; } if (adt_set_user(conn->conn_ah, ADT_NO_ATTRIB, ADT_NO_ATTRIB, ADT_NO_ATTRIB, ADT_NO_ATTRIB, termid, ADT_NEW) != 0) { ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); free(termid); return; } free(termid); if ((event = adt_alloc_event(conn->conn_ah, ADT_ndmp_connect)) == NULL) { ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); return; } if (result == 0) { if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); } else { if (adt_put_event(event, ADT_FAILURE, result) != 0) ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); } adt_free_event(event); } --- 1584,1617 ---- { adt_event_data_t *event; adt_termid_t *termid; if (adt_load_termid(conn->conn_sock, &termid) != 0) { ! syslog(LOG_ERR, "Audit failure: %m."); return; } if (adt_set_user(conn->conn_ah, ADT_NO_ATTRIB, ADT_NO_ATTRIB, ADT_NO_ATTRIB, ADT_NO_ATTRIB, termid, ADT_NEW) != 0) { ! syslog(LOG_ERR, "Audit failure: %m."); free(termid); return; } free(termid); if ((event = adt_alloc_event(conn->conn_ah, ADT_ndmp_connect)) == NULL) { ! syslog(LOG_ERR, "Audit failure: %m."); return; } if (result == 0) { if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) ! syslog(LOG_ERR, "Audit failure: %m."); } else { if (adt_put_event(event, ADT_FAILURE, result) != 0) ! syslog(LOG_ERR, "Audit failure: %m."); } adt_free_event(event); }
*** 1629,1643 **** { adt_event_data_t *event; if ((event = adt_alloc_event(conn->conn_ah, ADT_ndmp_disconnect)) == NULL) { ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); return; } if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) ! NDMP_LOG(LOG_ERR, "Audit failure: %m."); adt_free_event(event); } void * --- 1627,1641 ---- { adt_event_data_t *event; if ((event = adt_alloc_event(conn->conn_ah, ADT_ndmp_disconnect)) == NULL) { ! syslog(LOG_ERR, "Audit failure: %m."); return; } if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) ! syslog(LOG_ERR, "Audit failure: %m."); adt_free_event(event); } void *
*** 1644,1654 **** ndmp_malloc(size_t size) { void *data; if ((data = calloc(1, size)) == NULL) { ! NDMP_LOG(LOG_ERR, "Out of memory."); } return (data); } --- 1642,1652 ---- ndmp_malloc(size_t size) { void *data; if ((data = calloc(1, size)) == NULL) { ! syslog(LOG_ERR, "Out of memory."); } return (data); }
*** 1676,1686 **** if (!bkpath) { MOD_LOGV3(params, NDMP_LOG_ERROR, "Backup path not defined.\n"); } else { ! NDMP_LOG(LOG_DEBUG, "bkpath: \"%s\"", bkpath); } return (bkpath); } --- 1674,1684 ---- if (!bkpath) { MOD_LOGV3(params, NDMP_LOG_ERROR, "Backup path not defined.\n"); } else { ! syslog(LOG_DEBUG, "bkpath: \"%s\"", bkpath); } return (bkpath); }