Esempio n. 1
0
int check_power(int sm_sock_fd, int dev_path)
{
	struct bjst_rback rback;

	rback.dev_handle = dev_path;
	rback.st_buf     = NULL; /* no request status body */
	if(print_system == PRNSYS_LPR)
		rback.rback_handle = sm_sock_fd;
	else
		rback.rback_handle = STAT_PATH; /* stderr */

	status_to_viewer(&rback);

	return rback.fault;
}
Esempio n. 2
0
static int do_prn_com(int sm_sock_fd, lmsm_socket sm_data, int first_start)
{
	int error;
	Prcom_st ptr;
	int count;
	struct bjst_rback rback;

	ptr = &(sm_data.prn_data.com);
#ifdef DEBUG
	write_log("SM message LM_PRN_COM\n");
	write_log(ptr->com_buffer+9);
	write_log("\n");
#endif

	rback.dev_handle   = PRNT_PATH;
	rback.rback_handle = sm_sock_fd;
	rback.st_buf       = NULL; /* no request status body */

	while(1){
		error = write_printer_command(PRNT_PATH, ptr->com_buffer, ptr->com_size);
		count = status_to_viewer(&rback);
		if(error){
			if(check_signal_arrive() == 1)
				return 1; /* SIGINT/SIGTERM detect(abort) */
#ifdef DEBUG
			write_log("PRN_COM error(retry)\n");
#endif
			sleep(2); /* retry */
			continue;
		}

		/* write command until printer respond */
		if(count)
			break;
		else
			sleep(1);
	}

	if(first_start)
		kill(data_pid, SIGUSR2); /* message to output process(restart) */

	return 0;
}