Lines Matching defs:session

52 static int ndmpd_data_error_send_v4(ndmpd_session_t *session,
54 static int ndmpd_data_error_send(ndmpd_session_t *session,
57 static int create_listen_socket_v3(ndmpd_session_t *session, ulong_t *addr,
59 static ndmp_error data_connect_sock_v3(ndmpd_session_t *session, ulong_t addr,
61 static int discard_data_v3(ndmpd_session_t *session, ulong_t length);
62 static void nlp_release_job_stat(ndmpd_session_t *session);
63 static u_longlong_t ndmpd_data_get_info(ndmpd_session_t *session);
101 ndmpd_session_t *session = ndmp_get_client_data(connection);
104 reply.operation = session->ns_data.dd_operation;
105 reply.state = session->ns_data.dd_state;
106 reply.halt_reason = session->ns_data.dd_halt_reason;
109 session->ns_data.dd_module.dm_stats.ms_est_time_remaining;
112 session->ns_data.dd_module.dm_stats.ms_est_bytes_remaining);
115 long_long_to_quad(ndmpd_data_get_info(session));
117 reply.mover = session->ns_data.dd_mover;
118 reply.read_offset = long_long_to_quad(session->ns_data.dd_read_offset);
119 reply.read_length = long_long_to_quad(session->ns_data.dd_read_length);
143 ndmpd_session_t *session = ndmp_get_client_data(connection);
149 session->ns_data.dd_mover = request->mover;
151 err = ndmpd_tar_start_backup_v2(session, request->bu_type,
163 ndmpd_data_cleanup(session);
184 ndmpd_session_t *session = ndmp_get_client_data(connection);
188 session->ns_data.dd_mover = request->mover;
190 err = ndmpd_tar_start_recover_v2(session, request->bu_type,
202 ndmpd_data_cleanup(session);
225 ndmpd_session_t *session = ndmp_get_client_data(connection);
228 if (session->ns_data.dd_operation != NDMP_DATA_OP_BACKUP) {
234 reply.env.env_len = session->ns_data.dd_env_len;
235 reply.env.env_val = session->ns_data.dd_env;
259 ndmpd_session_t *session = ndmp_get_client_data(connection);
261 if (session->ns_data.dd_state != NDMP_DATA_STATE_HALTED) {
268 ndmp_waitfor_op(session);
269 ndmpd_data_cleanup(session);
270 ndmpd_file_history_cleanup(session, FALSE);
272 nlp_release_job_stat(session);
275 (void) ndmpd_data_init(session);
276 ndmpd_file_history_init(session);
302 ndmpd_session_t *session = ndmp_get_client_data(connection);
304 if (session->ns_data.dd_state == NDMP_DATA_STATE_IDLE ||
305 session->ns_data.dd_state == NDMP_DATA_STATE_HALTED) {
317 session->ns_data.dd_abort = TRUE;
318 (*session->ns_data.dd_module.dm_abort_func)(
319 session->ns_data.dd_module.dm_module_cookie);
348 ndmpd_session_t *session = ndmp_get_client_data(connection);
355 reply.operation = session->ns_data.dd_operation;
356 reply.state = session->ns_data.dd_state;
357 reply.halt_reason = session->ns_data.dd_halt_reason;
362 session->ns_data.dd_module.dm_stats.ms_bytes_processed);
365 long_long_to_quad(ndmpd_data_get_info(session));
369 if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE)
371 &session->ns_data.dd_data_addr);
372 reply.read_offset = long_long_to_quad(session->ns_data.dd_read_offset);
373 reply.read_length = long_long_to_quad(session->ns_data.dd_read_length);
397 ndmpd_session_t *session = ndmp_get_client_data(connection);
403 if (session->ns_data.dd_state != NDMP_DATA_STATE_CONNECTED) {
412 if (session->ns_data.dd_data_addr.addr_type == NDMP_ADDR_LOCAL) {
413 if (session->ns_tape.td_mode == NDMP_TAPE_READ_MODE) {
421 session->ns_butype = NDMP_BUTYPE_TAR;
423 session->ns_butype = NDMP_BUTYPE_DUMP;
425 session->ns_butype = NDMP_BUTYPE_ZFS;
435 NDMP_APILOG((void *) session, NDMP_LOG_ERROR, ++ndmp_log_msg_id,
437 NDMP_APILOG((void *) session, NDMP_LOG_ERROR, ++ndmp_log_msg_id,
446 if (session->ns_butype == NDMP_BUTYPE_ZFS) {
447 reply.error = ndmpd_zfs_start_op(session, request->env.env_val,
450 reply.error = ndmpd_tar_start_backup_v3(session,
466 ndmpd_data_cleanup(session);
487 ndmpd_session_t *session = ndmp_get_client_data(connection);
493 if (session->ns_data.dd_state != NDMP_DATA_STATE_CONNECTED) {
500 session->ns_butype = NDMP_BUTYPE_TAR;
502 session->ns_butype = NDMP_BUTYPE_DUMP;
504 session->ns_butype = NDMP_BUTYPE_ZFS;
514 NDMP_APILOG((void *) session, NDMP_LOG_ERROR, ++ndmp_log_msg_id,
516 NDMP_APILOG((void *) session, NDMP_LOG_ERROR, ++ndmp_log_msg_id,
525 if (session->ns_butype == NDMP_BUTYPE_ZFS) {
526 reply.error = ndmpd_zfs_start_op(session, request->env.env_val,
530 reply.error = ndmpd_tar_start_recover_v3(session,
546 ndmpd_data_error(session, NDMP_DATA_HALT_INTERNAL_ERROR);
547 ndmpd_data_cleanup(session);
570 ndmpd_session_t *session = ndmp_get_client_data(connection);
572 switch (session->ns_data.dd_state) {
585 session->ns_data.dd_abort = TRUE;
586 if (session->ns_data.dd_module.dm_abort_func)
587 (*session->ns_data.dd_module.dm_abort_func)(
588 session->ns_data.dd_module.dm_module_cookie);
595 session->ns_data.dd_abort = TRUE;
596 ndmpd_data_error(session, NDMP_DATA_HALT_ABORTED);
601 session->ns_data.dd_state);
626 ndmpd_session_t *session = ndmp_get_client_data(connection);
628 if (session->ns_data.dd_state != NDMP_DATA_STATE_HALTED) {
635 ndmp_waitfor_op(session);
636 ndmpd_data_cleanup(session);
637 ndmpd_file_history_cleanup(session, FALSE);
640 (void) ndmpd_data_init(session);
641 ndmpd_file_history_init(session);
667 ndmpd_session_t *session = ndmp_get_client_data(connection);
675 if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
679 } else if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE) {
696 session->ns_data.dd_data_addr.addr_type = NDMP_ADDR_LOCAL;
699 if (create_listen_socket_v3(session, &addr, &port) < 0) {
708 session->ns_data.dd_data_addr.addr_type = NDMP_ADDR_TCP;
709 session->ns_data.dd_data_addr.tcp_ip_v3 = addr;
710 session->ns_data.dd_data_addr.tcp_port_v3 = ntohs(port);
712 session->ns_data.dd_listen_sock);
723 session->ns_data.dd_state = NDMP_DATA_STATE_LISTEN;
748 ndmpd_session_t *session = ndmp_get_client_data(connection);
758 } else if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
777 if (session->ns_mover.md_state != NDMP_MOVER_STATE_LISTEN ||
778 session->ns_mover.md_listen_sock != -1) {
783 session->ns_mover.md_state = NDMP_MOVER_STATE_ACTIVE;
788 reply.error = data_connect_sock_v3(session,
799 session->ns_data.dd_state = NDMP_DATA_STATE_CONNECTED;
831 ndmpd_session_t *session = ndmp_get_client_data(connection);
835 if (session->ns_data.dd_state != NDMP_DATA_STATE_ACTIVE &&
836 session->ns_data.dd_state != NDMP_DATA_STATE_HALTED) {
840 } else if (session->ns_data.dd_operation != NDMP_DATA_OP_BACKUP) {
846 reply.env.env_len = session->ns_data.dd_env_len;
847 reply.env.env_val = session->ns_data.dd_env;
870 ndmpd_session_t *session = ndmp_get_client_data(connection);
877 reply.operation = session->ns_data.dd_operation;
878 reply.state = session->ns_data.dd_state;
879 reply.halt_reason = session->ns_data.dd_halt_reason;
883 session->ns_data.dd_module.dm_stats.ms_bytes_processed);
886 long_long_to_quad(ndmpd_data_get_info(session));
890 if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE)
892 &session->ns_data.dd_data_addr_v4);
894 reply.read_offset = long_long_to_quad(session->ns_data.dd_read_offset);
895 reply.read_length = long_long_to_quad(session->ns_data.dd_read_length);
921 ndmpd_session_t *session = ndmp_get_client_data(connection);
931 } else if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
950 if (session->ns_mover.md_state != NDMP_MOVER_STATE_LISTEN ||
951 session->ns_mover.md_listen_sock != -1) {
956 session->ns_mover.md_state = NDMP_MOVER_STATE_ACTIVE;
961 reply.error = data_connect_sock_v3(session,
972 session->ns_data.dd_state = NDMP_DATA_STATE_CONNECTED;
996 ndmpd_session_t *session = ndmp_get_client_data(connection);
1004 if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
1008 } else if (session->ns_mover.md_state != NDMP_MOVER_STATE_IDLE) {
1025 session->ns_data.dd_data_addr.addr_type = NDMP_ADDR_LOCAL;
1028 if (create_listen_socket_v3(session, &addr, &port) < 0) {
1042 session->ns_data.dd_data_addr_v4.addr_type = NDMP_ADDR_TCP;
1043 session->ns_data.dd_data_addr_v4.tcp_addr_v4 =
1046 session->ns_data.dd_data_addr_v4.tcp_ip_v4(0) = addr;
1047 session->ns_data.dd_data_addr_v4.tcp_port_v4(0) = ntohs(port);
1048 session->ns_data.dd_data_addr_v4.tcp_len_v4 = 1;
1051 session->ns_data.dd_data_addr.addr_type = NDMP_ADDR_TCP;
1052 session->ns_data.dd_data_addr.tcp_ip_v3 = addr;
1053 session->ns_data.dd_data_addr.tcp_port_v3 = ntohs(port);
1055 session->ns_data.dd_listen_sock);
1066 session->ns_data.dd_state = NDMP_DATA_STATE_LISTEN;
1111 * session (input) - session pointer.
1119 ndmpd_data_error_send(ndmpd_session_t *session, ndmp_data_halt_reason reason)
1123 req.reason = session->ns_data.dd_halt_reason;
1126 return (ndmp_send_request(session->ns_connection,
1137 * session (input) - session pointer.
1145 ndmpd_data_error_send_v4(ndmpd_session_t *session, ndmp_data_halt_reason reason)
1149 req.reason = session->ns_data.dd_halt_reason;
1151 return ndmp_send_request(session->ns_connection,
1164 * session (input) - session pointer.
1171 ndmpd_data_error(ndmpd_session_t *session, ndmp_data_halt_reason reason)
1173 if (session->ns_data.dd_state == NDMP_DATA_STATE_IDLE ||
1174 session->ns_data.dd_state == NDMP_DATA_STATE_HALTED)
1177 if (session->ns_data.dd_operation == NDMP_DATA_OP_BACKUP) {
1181 ndmpd_file_history_cleanup(session,
1188 if (session->ns_data.dd_data_addr.addr_type
1190 (void) ndmpd_local_write_v3(session, 0, 0);
1193 session->ns_data.dd_state = NDMP_DATA_STATE_HALTED;
1194 session->ns_data.dd_halt_reason = reason;
1196 if (session->ns_protocol_version == NDMPV4) {
1197 if (ndmpd_data_error_send_v4(session, reason) < 0)
1201 if (ndmpd_data_error_send(session, reason) < 0)
1206 if (session->ns_data.dd_data_addr.addr_type == NDMP_ADDR_TCP) {
1207 if (session->ns_data.dd_sock != -1) {
1208 (void) ndmpd_remove_file_handler(session,
1209 session->ns_data.dd_sock);
1214 if (session->ns_data.dd_sock !=
1215 session->ns_mover.md_sock)
1216 (void) close(session->ns_data.dd_sock);
1218 session->ns_data.dd_sock = -1;
1220 if (session->ns_data.dd_listen_sock != -1) {
1221 (void) ndmpd_remove_file_handler(session,
1222 session->ns_data.dd_listen_sock);
1224 (void) close(session->ns_data.dd_listen_sock);
1225 session->ns_data.dd_listen_sock = -1;
1228 ndmpd_mover_error(session, NDMP_MOVER_HALT_CONNECT_CLOSED);
1241 * cookie (input) - session pointer.
1252 ndmpd_session_t *session = (ndmpd_session_t *)cookie;
1257 session->ns_data.dd_sock = accept(fd, (struct sockaddr *)&from,
1261 session->ns_data.dd_sock);
1266 (void) ndmpd_remove_file_handler(session, fd);
1267 (void) close(session->ns_data.dd_listen_sock);
1268 session->ns_data.dd_listen_sock = -1;
1270 if (session->ns_data.dd_sock < 0) {
1272 ndmpd_data_error(session, NDMP_DATA_HALT_CONNECT_ERROR);
1279 session->ns_data.dd_data_addr.tcp_ip_v3 = from.sin_addr.s_addr;
1280 session->ns_data.dd_data_addr.tcp_port_v3 = ntohs(from.sin_port);
1283 set_socket_options(session->ns_data.dd_sock);
1285 session->ns_data.dd_state = NDMP_DATA_STATE_CONNECTED;
1296 create_listen_socket_v3(ndmpd_session_t *session, ulong_t *addr, ushort_t *port)
1298 session->ns_data.dd_listen_sock = ndmp_create_socket(addr, port);
1299 if (session->ns_data.dd_listen_sock < 0)
1307 if (ndmpd_add_file_handler(session, (void*)session,
1308 session->ns_data.dd_listen_sock, NDMPD_SELECT_MODE_READ, HC_MOVER,
1310 (void) close(session->ns_data.dd_listen_sock);
1311 session->ns_data.dd_listen_sock = -1;
1327 * session (input) - session pointer.
1336 data_connect_sock_v3(ndmpd_session_t *session, ulong_t addr, ushort_t port)
1344 session->ns_data.dd_sock = sock;
1345 session->ns_data.dd_data_addr.addr_type = NDMP_ADDR_TCP;
1346 session->ns_data.dd_data_addr.tcp_ip_v3 = ntohl(addr);
1347 session->ns_data.dd_data_addr.tcp_port_v3 = port;
1359 * session (input) - session pointer.
1369 ndmpd_tar_start_backup_v3(ndmpd_session_t *session, char *bu_type,
1379 err = ndmpd_save_env(session, env_val, env_len);
1383 nlp = ndmp_get_nlp(session);
1389 params->mp_daemon_cookie = (void *)session;
1390 params->mp_module_cookie = &session->ns_data.dd_module.dm_module_cookie;
1391 params->mp_protocol_version = session->ns_protocol_version;
1399 if (session->ns_protocol_version == NDMPV4)
1409 params->mp_stats = &session->ns_data.dd_module.dm_stats;
1410 session->ns_data.dd_module.dm_module_cookie = 0;
1430 session->ns_data.dd_module.dm_start_func = ndmpd_tar_backup_starter_v3;
1431 session->ns_data.dd_module.dm_abort_func = ndmpd_tar_backup_abort_v3;
1433 session->ns_data.dd_module.dm_stats.ms_est_bytes_remaining = 0;
1434 session->ns_data.dd_module.dm_stats.ms_est_time_remaining = 0;
1435 session->ns_data.dd_nlist_v3 = 0;
1436 session->ns_data.dd_nlist_len = 0;
1437 session->ns_data.dd_bytes_left_to_read = 0;
1438 session->ns_data.dd_position = 0;
1439 session->ns_data.dd_discard_length = 0;
1440 session->ns_data.dd_read_offset = 0;
1441 session->ns_data.dd_read_length = 0;
1443 reply.error = ndmp_backup_get_params_v3(session, params);
1451 if (ndmp_send_response(session->ns_connection, NDMP_NO_ERR,
1458 session->ns_data.dd_state = NDMP_DATA_STATE_ACTIVE;
1459 session->ns_data.dd_operation = NDMP_DATA_OP_BACKUP;
1460 session->ns_data.dd_abort = FALSE;
1469 (funct_t)session->ns_data.dd_module.dm_start_func,
1472 NDMP_LOG(LOG_ERR, "Can't start backup session.");
1485 * session (input) - session pointer.
1497 ndmpd_tar_start_recover_v3(ndmpd_session_t *session,
1508 nlp = ndmp_get_nlp(session);
1515 reply.error = ndmpd_save_env(session, env_val, env_len);
1521 reply.error = ndmpd_save_nlist_v3(session, nlist_val, nlist_len);
1530 params->mp_daemon_cookie = (void *)session;
1531 params->mp_module_cookie = &session->ns_data.dd_module.dm_module_cookie;
1532 params->mp_protocol_version = session->ns_protocol_version;
1540 if (session->ns_protocol_version == NDMPV4) {
1556 params->mp_stats = &session->ns_data.dd_module.dm_stats;
1558 session->ns_data.dd_module.dm_module_cookie = 0;
1559 session->ns_data.dd_module.dm_start_func = ndmpd_tar_restore_starter_v3;
1560 session->ns_data.dd_module.dm_abort_func = ndmpd_tar_restore_abort_v3;
1561 session->ns_data.dd_module.dm_stats.ms_est_bytes_remaining = 0;
1562 session->ns_data.dd_module.dm_stats.ms_est_time_remaining = 0;
1563 session->ns_data.dd_bytes_left_to_read = 0;
1564 session->ns_data.dd_position = 0;
1565 session->ns_data.dd_discard_length = 0;
1566 session->ns_data.dd_read_offset = 0;
1567 session->ns_data.dd_read_length = 0;
1569 err = ndmp_restore_get_params_v3(session, params);
1576 if (ndmp_send_response(session->ns_connection, NDMP_NO_ERR,
1579 ndmpd_free_nlist_v3(session);
1582 ndmpd_data_error(session, NDMP_DATA_HALT_CONNECT_ERROR);
1587 session->ns_data.dd_state = NDMP_DATA_STATE_ACTIVE;
1588 session->ns_data.dd_operation = NDMP_DATA_OP_RECOVER;
1589 session->ns_data.dd_abort = FALSE;
1598 (funct_t)session->ns_data.dd_module.dm_start_func,
1602 NDMP_LOG(LOG_ERR, "Can't start recover session.");
1609 ndmpd_zfs_start_op(ndmpd_session_t *session, ndmp_pval *env_val,
1613 ndmpd_zfs_args_t *ndmpd_zfs_args = &session->ns_ndmpd_zfs_args;
1621 if (ndmpd_zfs_init(session) != 0)
1624 err = ndmpd_save_env(session, env_val, env_len);
1642 session->ns_data.dd_module.dm_start_func =
1647 err = ndmpd_save_nlist_v3(session, nlist_val, nlist_len);
1663 session->ns_data.dd_module.dm_start_func =
1670 session->ns_data.dd_operation = op;
1671 session->ns_data.dd_module.dm_abort_func = ndmpd_zfs_abort;
1672 session->ns_data.dd_state = NDMP_DATA_STATE_ACTIVE;
1673 session->ns_data.dd_abort = FALSE;
1685 if (ndmp_send_response(session->ns_connection, NDMP_NO_ERR,
1689 ndmpd_data_error(session, NDMP_DATA_HALT_CONNECT_ERROR);
1695 (funct_t)session->ns_data.dd_module.dm_start_func, ndmpd_zfs_args);
1698 NDMP_LOG(LOG_ERR, "Can't start %s session (errno %d)",
1726 * session (input) - session pointer.
1733 discard_data_v3(ndmpd_session_t *session, ulong_t length)
1742 n = read(session->ns_data.dd_sock, buf, toread);
1758 * session (input) - session pointer.
1767 ndmpd_remote_read_v3(ndmpd_session_t *session, char *data, ulong_t length)
1777 session->ns_data.dd_bytes_left_to_read,
1778 session->ns_data.dd_read_offset,
1779 session->ns_data.dd_read_length,
1780 session->ns_data.dd_position,
1781 session->ns_data.dd_discard_length);
1797 if (session->ns_data.dd_bytes_left_to_read == 0) {
1799 if (session->ns_data.dd_read_length == 0) {
1800 session->ns_data.dd_bytes_left_to_read = ~0LL;
1801 session->ns_data.dd_read_offset = 0LL;
1802 session->ns_data.dd_read_length = ~0LL;
1810 jstat = session->ns_ndmp_lbr_params->nlp_jstat;
1823 session->ns_data.dd_bytes_left_to_read = fsize;
1824 session->ns_data.dd_read_offset =
1825 session->ns_data.dd_position;
1826 session->ns_data.dd_read_length = fsize;
1830 long_long_to_quad(session->ns_data.dd_read_offset);
1832 long_long_to_quad(session->ns_data.dd_read_length);
1835 session->ns_data.dd_read_offset,
1836 session->ns_data.dd_read_length);
1838 if (ndmp_send_request_lock(session->ns_connection,
1852 if (session->ns_data.dd_discard_length != 0) {
1853 n = discard_data_v3(session,
1854 (ulong_t)session->ns_data.dd_discard_length);
1858 session->ns_data.dd_discard_length -= n;
1865 if (len > session->ns_data.dd_bytes_left_to_read)
1866 len = session->ns_data.dd_bytes_left_to_read;
1868 if ((n = read(session->ns_data.dd_sock, &data[count],
1882 session->ns_data.dd_bytes_left_to_read -= n;
1883 session->ns_data.dd_position += n;
1894 * session (input) - session pointer.
1900 nlp_release_job_stat(ndmpd_session_t *session)
1904 if ((nlp = ndmp_get_nlp(session)) == NULL) {
1923 * Initializes data specific session variables.
1926 * session (input) - session pointer.
1932 ndmpd_data_init(ndmpd_session_t *session)
1934 session->ns_data.dd_operation = NDMP_DATA_OP_NOACTION;
1935 session->ns_data.dd_state = NDMP_DATA_STATE_IDLE;
1936 session->ns_data.dd_halt_reason = NDMP_DATA_HALT_NA;
1937 session->ns_data.dd_abort = FALSE;
1938 session->ns_data.dd_env = 0;
1939 session->ns_data.dd_env_len = 0;
1940 session->ns_data.dd_nlist = 0;
1941 session->ns_data.dd_nlist_len = 0;
1942 session->ns_data.dd_mover.addr_type = NDMP_ADDR_LOCAL;
1943 session->ns_data.dd_sock = -1;
1944 session->ns_data.dd_read_offset = 0;
1945 session->ns_data.dd_read_length = 0;
1946 session->ns_data.dd_module.dm_stats.ms_est_bytes_remaining = 0;
1947 session->ns_data.dd_module.dm_stats.ms_est_time_remaining = 0;
1951 session->ns_data.dd_state = NDMP_DATA_STATE_IDLE;
1952 session->ns_data.dd_nlist_v3 = 0;
1953 session->ns_data.dd_data_addr.addr_type = NDMP_ADDR_LOCAL;
1954 session->ns_data.dd_listen_sock = -1;
1955 session->ns_data.dd_bytes_left_to_read = 0LL;
1956 session->ns_data.dd_position = 0LL;
1957 session->ns_data.dd_discard_length = 0LL;
1969 * session (input) - session pointer.
1975 ndmpd_data_cleanup(ndmpd_session_t *session)
1977 if (session->ns_data.dd_listen_sock != -1) {
1979 session->ns_data.dd_listen_sock);
1980 (void) ndmpd_remove_file_handler(session,
1981 session->ns_data.dd_listen_sock);
1982 (void) close(session->ns_data.dd_listen_sock);
1983 session->ns_data.dd_listen_sock = -1;
1985 if (session->ns_data.dd_sock != -1) {
1987 session->ns_data.dd_sock);
1993 if (session->ns_data.dd_sock != session->ns_mover.md_sock)
1994 (void) close(session->ns_data.dd_sock);
1996 session->ns_data.dd_sock = -1;
1999 ndmpd_free_env(session);
2000 ndmpd_free_nlist(session);
2010 * session (input) - session pointer.
2017 ndmp_data_get_mover_mode(ndmpd_session_t *session)
2021 switch (session->ns_protocol_version) {
2023 rv = ((session->ns_data.dd_mover.addr_type == NDMP_ADDR_TCP)
2027 rv = ((session->ns_data.dd_data_addr.addr_type == NDMP_ADDR_TCP)
2031 rv = ((session->ns_data.dd_data_addr.addr_type ==
2033 (session->ns_data.dd_data_addr_v4.addr_type ==
2039 session->ns_protocol_version);
2054 * session (input) - session pointer.
2064 ndmpd_tar_start_backup_v2(ndmpd_session_t *session, char *bu_type,
2072 if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
2082 if ((err = ndmpd_save_env(session, env_val, env_len)) != NDMP_NO_ERR)
2085 nlp = ndmp_get_nlp(session);
2091 params->mp_daemon_cookie = (void *)session;
2092 params->mp_module_cookie = &session->ns_data.dd_module.dm_module_cookie;
2093 params->mp_protocol_version = session->ns_protocol_version;
2106 params->mp_stats = &session->ns_data.dd_module.dm_stats;
2108 session->ns_data.dd_module.dm_module_cookie = 0;
2128 session->ns_data.dd_module.dm_start_func = ndmpd_tar_backup_starter;
2129 session->ns_data.dd_module.dm_abort_func = ndmpd_tar_backup_abort;
2131 session->ns_data.dd_module.dm_stats.ms_est_bytes_remaining = 0;
2132 session->ns_data.dd_module.dm_stats.ms_est_time_remaining = 0;
2133 session->ns_data.dd_nlist = 0;
2134 session->ns_data.dd_nlist_len = 0;
2135 session->ns_data.dd_read_offset = 0;
2136 session->ns_data.dd_read_length = 0;
2138 if ((err = ndmp_backup_extract_params(session,
2145 err = ndmpd_mover_connect(session, NDMP_MOVER_MODE_READ);
2153 session->ns_data.dd_state = NDMP_DATA_STATE_ACTIVE;
2155 session->ns_data.dd_operation = NDMP_DATA_OP_BACKUP;
2156 session->ns_data.dd_abort = FALSE;
2161 if (ndmp_send_response(session->ns_connection, NDMP_NO_ERR,
2165 if (session->ns_data.dd_mover.addr_type == NDMP_ADDR_TCP) {
2170 if (session->ns_data.dd_sock !=
2171 session->ns_mover.md_sock)
2172 (void) close(session->ns_data.dd_sock);
2174 session->ns_data.dd_sock = -1;
2176 ndmpd_mover_error(session,
2188 (funct_t)session->ns_data.dd_module.dm_start_func,
2200 * session (input) - session pointer.
2212 ndmpd_tar_start_recover_v2(ndmpd_session_t *session, char *bu_type,
2221 if (session->ns_data.dd_state != NDMP_DATA_STATE_IDLE) {
2233 reply.error = ndmpd_save_env(session, env_val, env_len);
2237 reply.error = ndmpd_save_nlist_v2(session, nlist_val, nlist_len);
2241 nlp = ndmp_get_nlp(session);
2250 params->mp_daemon_cookie = (void *)session;
2251 params->mp_module_cookie = &session->ns_data.dd_module.dm_module_cookie;
2252 params->mp_protocol_version = session->ns_protocol_version;
2269 params->mp_stats = &session->ns_data.dd_module.dm_stats;
2271 session->ns_data.dd_module.dm_module_cookie = 0;
2272 session->ns_data.dd_module.dm_start_func = ndmpd_tar_restore_starter;
2273 session->ns_data.dd_module.dm_abort_func = ndmpd_tar_restore_abort;
2274 session->ns_data.dd_module.dm_stats.ms_est_bytes_remaining = 0;
2275 session->ns_data.dd_module.dm_stats.ms_est_time_remaining = 0;
2276 session->ns_data.dd_read_offset = 0;
2277 session->ns_data.dd_read_length = 0;
2279 if ((err = ndmp_restore_extract_params(session,
2285 err = ndmpd_mover_connect(session, NDMP_MOVER_MODE_WRITE);
2291 session->ns_data.dd_state = NDMP_DATA_STATE_ACTIVE;
2292 session->ns_data.dd_operation = NDMP_DATA_OP_RECOVER;
2293 session->ns_data.dd_abort = FALSE;
2296 if (ndmp_send_response(session->ns_connection, NDMP_NO_ERR,
2300 if (session->ns_data.dd_mover.addr_type == NDMP_ADDR_TCP) {
2305 if (session->ns_data.dd_sock !=
2306 session->ns_mover.md_sock)
2307 (void) close(session->ns_data.dd_sock);
2309 session->ns_data.dd_sock = -1;
2311 ndmpd_mover_error(session,
2325 (funct_t)session->ns_data.dd_module.dm_start_func,
2337 * session (input) - session pointer.
2343 ndmpd_data_get_info(ndmpd_session_t *session)
2347 nlp = ndmp_get_nlp(session);