int smttst1_init (void) { AGENT *agent; /* Handle for our agent */ THREAD *thread; /* Handle to console thread */ # include "smttst1.i" /* Include dialog interpreter */ /* Shutdown event comes from Kernel */ declare_smtlib_shutdown (shutdown_event, SMT_PRIORITY_MAX); /* Alarm event sent by kernel to this agent */ declare_smttime_reply (alarm_event, 0); declare_smttime_error (error_event, 0); /* Create initial thread - all threads are unnamed */ thread_create (AGENT_NAME, ""); /* Ensure that operator console is running, else start it up */ smtoper_init (); if ((thread = thread_lookup (SMT_OPERATOR, "")) != NULL) console = thread-> queue-> qid; else return (-1); /* Ensure that timer is running, else start it up */ if (smttime_init ()) return (-1); /* Signal okay to caller that we initialised okay */ return (0); }
int smtrdns_init (void) { AGENT *agent; /* Handle for our agent */ THREAD *thread; /* Handle to various threads */ # include "smtrdns.i" /* Include dialog interpreter */ /* Shutdown event comes from Kernel */ declare_smtlib_shutdown (shutdown_event, SMT_PRIORITY_MAX); /* Reply events from socket agent */ declare_smtsock_ok (ok_event, 0); declare_smtsock_connect_ok (ok_event, 0); declare_smtsock_closed (sock_closed_event, 0); declare_smtsock_error (sock_error_event, 0); declare_smtsock_timeout (sock_timeout_event, 0); /* Public methods supported by this agent */ declare_smtrdns_get_host_name (get_host_event, 0); declare_smtrdns_get_host_ip (get_ip_event, 0); /* Reply events from timer agent */ declare_smttime_reply (timer_event, SMT_PRIORITY_LOW); /* Private methods used to pass initial thread events */ method_declare (agent, "_MASTER", master_event, 0); method_declare (agent, "_CLIENT", client_event, 0); /* Ensure that operator console is running, else start it up */ smtoper_init (); if ((thread = thread_lookup (SMT_OPERATOR, "")) != NULL) operq = thread-> queue-> qid; else return (-1); /* Ensure that socket i/o agent is running, else start it up */ smtsock_init (); if ((thread = thread_lookup (SMT_SOCKET, "")) != NULL) sockq = thread-> queue-> qid; else return (-1); /* Ensure that timer agent is running, else start it up */ if (smttime_init ()) return (-1); /* Create initial thread to manage master port */ if ((thread = thread_create (AGENT_NAME, "")) != NULL) { SEND (&thread-> queue-> qid, "_MASTER", ""); ((TCB *) thread-> tcb)-> thread_type = master_event; } else return (-1); /* Signal okay to caller that we initialised okay */ return (0); }
int xiddns_init (void) { AGENT *agent; /* Handle for our agent */ THREAD *thread; /* Handle to console thread */ # include "xiddns.i" /* Include dialog interpreter */ /* Method name Event value Priority */ /* Shutdown event comes from Kernel */ method_declare (agent, "SHUTDOWN", shutdown_event, SMT_PRIORITY_MAX); /* Public methods supported by this agent */ method_declare (agent, "SIGNON", signon_event, 0); method_declare (agent, "SIGNOFF", signoff_event, 0); /* Reply events from socket agent */ method_declare (agent, "SOCK_INPUT_OK", ok_event, 0); method_declare (agent, "SOCK_OUTPUT_OK", ok_event, 0); method_declare (agent, "SOCK_READ_OK", ok_event, 0); method_declare (agent, "SOCK_WRITE_OK", ok_event, 0); method_declare (agent, "SOCK_CLOSED", ok_event, 0); method_declare (agent, "SOCK_ERROR", sock_error_event, 0); method_declare (agent, "SOCK_TIMEOUT", sock_timeout_event, 0); /* Reply events from timer agent */ method_declare (agent, "TIME_ALARM", signon_event, 0); /* Ensure that operator console is running, else start it up */ smtoper_init (); if ((thread = thread_lookup (SMT_OPERATOR, "")) != NULL) operq = thread-> queue-> qid; else return (-1); /* Ensure that timer agent is running, else start it up */ smttime_init (); if ((thread = thread_lookup (SMT_TIMER, "")) != NULL) timeq = thread-> queue-> qid; else return (-1); /* Ensure that socket i/o agent is running, else start it up */ smtsock_init (); if ((thread = thread_lookup (SMT_SOCKET, "")) != NULL) sockq = thread-> queue-> qid; else return (-1); /* Create single master thread */ thread_create (AGENT_NAME, "main"); /* Signal okay to caller that we initialised okay */ return (0); }
int smttst3_init (int argc, char *argv []) { AGENT *agent; /* Handle for our agent */ THREAD *thread; /* Handle to various threads */ # include "smttst3.i" /* Include dialog interpreter */ /* Method name Event value Priority */ /* Shutdown event comes from Kernel */ method_declare (agent, "SHUTDOWN", shutdown_event, SMT_PRIORITY_MAX); /* Reply events from reverse DNS agent */ method_declare (agent, "HOST_NAME", host_event, 0); method_declare (agent, "HOST_IP", ip_event, 0); method_declare (agent, "HOST_ERROR", error_event, 0); method_declare (agent, "HOST_END", end_event, 0); method_declare (agent, "HOST_TIMEOUT", timeout_event, 0); /* Ensure that operator console is running, else start it up */ smtoper_init (); if ((thread = thread_lookup (SMT_OPERATOR, "")) != NULL) operq = thread-> queue-> qid; else return (-1); /* Ensure that socket i/o agent is running, else start it up */ smtrdns_init (); if ((thread = thread_lookup ("smtrdns", "main")) != NULL) rdnsq = thread-> queue-> qid; else return (-1); /* Create initial, unnamed thread */ if ((thread = thread_create (AGENT_NAME, "")) != NULL) { ((TCB *) thread-> tcb)-> argc = argc; ((TCB *) thread-> tcb)-> argv = argv; } /* Signal okay to caller that we initialised okay */ return (0); }
int smttst3_init (int argc, char *argv []) { AGENT *agent; /* Handle for our agent */ THREAD *thread; /* Handle to various threads */ # include "smttst3.i" /* Include dialog interpreter */ /* Shutdown event comes from Kernel */ declare_smtlib_shutdown (shutdown_event, SMT_PRIORITY_MAX); /* Reply events from reverse DNS agent */ declare_smtrdns_host_name (host_event, 0); declare_smtrdns_host_ip (ip_event, 0); declare_smtrdns_host_error (error_event, 0); declare_smtrdns_host_end (end_event, 0); declare_smtrdns_host_timeout (timeout_event, 0); /* Ensure that operator console is running, else start it up */ smtoper_init (); if ((thread = thread_lookup (SMT_OPERATOR, "")) != NULL) operq = thread-> queue-> qid; else return (-1); /* Ensure that socket i/o agent is running, else start it up */ smtrdns_init (); if ((thread = thread_lookup ("smtrdns", "main")) != NULL) rdnsq = thread-> queue-> qid; else return (-1); /* Create initial, unnamed thread */ if ((thread = thread_create (AGENT_NAME, "")) != NULL) { ((TCB *) thread-> tcb)-> argc = argc; ((TCB *) thread-> tcb)-> argv = argv; } /* Signal okay to caller that we initialised okay */ return (0); }
int smtpipe_init (char *p_filename) { AGENT *agent; /* Handle for our agent */ THREAD *thread; /* Handle for initial thread */ # include "smtpipe.i" /* Include dialog interpreter */ /* Shutdown event comes from Kernel */ declare_smtlib_shutdown (shutdown_event, SMT_PRIORITY_MAX); /* Reply events from timer agent */ declare_smttime_reply (timer_event, SMT_PRIORITY_LOW); /* Ensure that operator console is running, else start it up */ smtoper_init (); if ((thread = thread_lookup (SMT_OPERATOR, "")) != NULL) operq = thread-> queue-> qid; else return (-1); /* Ensure that transfer agent is running, else start it up */ smttran_init (); if ((thread = thread_lookup (SMT_TRANSFER, "")) != NULL) tranq = thread-> queue-> qid; else return (-1); /* Ensure that timer agent is running, else start it up */ if (smttime_init ()) return (-1); /* Create initial, unnamed thread */ thread = thread_create (AGENT_NAME, ""); filename = p_filename; /* Get name of pipe definition */ /* Signal okay to caller that we initialised okay */ return (0); }
int smtftpd_init (void) { AGENT *agent; /* Handle for our agent */ THREAD *thread; /* Handle to various threads */ # include "smtftpd.i" /* Include dialog interpreter */ /* Method name Event value Priority */ /* Shutdown event comes from Kernel */ method_declare (agent, "SHUTDOWN", shutdown_event, SMT_PRIORITY_MAX); /* Reply events from socket agent */ method_declare (agent, "SOCK_INPUT_OK", ok_event, 0); method_declare (agent, "SOCK_OUTPUT_OK", ok_event, 0); method_declare (agent, "SOCK_READ_OK", ok_event, 0); method_declare (agent, "SOCK_WRITE_OK", ok_event, 0); method_declare (agent, "SOCK_CLOSED", sock_closed_event, 0); method_declare (agent, "SOCK_ERROR", sock_error_event, 0); method_declare (agent, "SOCK_TIMEOUT", sock_timeout_event, 0); /* Reply events from transfer agent */ method_declare (agent, "TRAN_PUTF_OK", finished_event, SMT_PRIORITY_HIGH); method_declare (agent, "TRAN_GETF_OK", finished_event, SMT_PRIORITY_HIGH); method_declare (agent, "TRAN_CLOSED", sock_closed_event, SMT_PRIORITY_HIGH); method_declare (agent, "TRAN_ERROR", sock_error_event, SMT_PRIORITY_HIGH); /* Public methods supported by this agent */ method_declare (agent, "FTPD_PASSIVE", passive_event, SMT_PRIORITY_LOW); method_declare (agent, "FTPD_PUT_FILE", put_file_event, SMT_PRIORITY_NORMAL); method_declare (agent, "FTPD_GET_FILE", get_file_event, SMT_PRIORITY_NORMAL); method_declare (agent, "FTPD_APPEND_FILE", append_file_event, SMT_PRIORITY_NORMAL); method_declare (agent, "FTPD_ABORT", abort_event, SMT_PRIORITY_HIGH); method_declare (agent, "FTPD_CLOSECTRL", close_control_event, SMT_PRIORITY_HIGH); /* Private method used to pass initial thread events */ method_declare (agent, "_MASTER", master_event, 0); /* Ensure that operator console is running, else start it up */ smtoper_init (); if ((thread = thread_lookup (SMT_OPERATOR, "")) != NULL) operq = thread-> queue-> qid; else return (-1); /* Ensure that socket i/o agent is running, else start it up */ smtsock_init (); if ((thread = thread_lookup (SMT_SOCKET, "")) != NULL) sockq = thread-> queue-> qid; else return (-1); /* Ensure that timer agent is running, else start it up */ smttime_init (); if ((thread = thread_lookup (SMT_TIMER, "")) != NULL) timeq = thread-> queue-> qid; else return (-1); /* Ensure that transfer agent is running, else start it up */ smttran_init (); if ((thread = thread_lookup (SMT_TRANSFER, "")) != NULL) tranq = thread-> queue-> qid; else return (-1); /* Create initial thread to manage master port */ if ((thread = thread_create (AGENT_NAME, "")) != NULL) { SEND (&thread-> queue-> qid, "_MASTER", ""); ((TCB *) thread-> tcb)-> thread_type = master_event; } else return (-1); pasv_port = sym_create_table (); /* Signal okay to caller that we initialised okay */ return (0); }
int smtrdns_init (void) { AGENT *agent; /* Handle for our agent */ THREAD *thread; /* Handle to various threads */ # include "smtrdns.i" /* Include dialog interpreter */ /* Method name Event value Priority */ /* Shutdown event comes from Kernel */ method_declare (agent, "SHUTDOWN", shutdown_event, SMT_PRIORITY_MAX); /* Reply events from socket agent */ method_declare (agent, "SOCK_INPUT_OK", input_ok_event, 0); method_declare (agent, "SOCK_OUTPUT_OK", ok_event, 0); method_declare (agent, "SOCK_READ_OK", ok_event, 0); method_declare (agent, "SOCK_WRITE_OK", ok_event, 0); method_declare (agent, "SOCK_CLOSED", sock_closed_event, 0); method_declare (agent, "SOCK_ERROR", sock_error_event, 0); method_declare (agent, "SOCK_TIMEOUT", sock_timeout_event, 0); /* Public methods supported by this agent */ method_declare (agent, "GET_HOST_NAME", get_host_event, 0); method_declare (agent, "GET_HOST_IP", get_ip_event, 0); /* Reply events from timer agent */ method_declare (agent, "TIME_ALARM", timer_event, SMT_PRIORITY_LOW); /* Private methods used to pass initial thread events */ method_declare (agent, "_MASTER", master_event, 0); method_declare (agent, "_CLIENT", client_event, 0); /* Ensure that operator console is running, else start it up */ smtoper_init (); if ((thread = thread_lookup (SMT_OPERATOR, "")) != NULL) operq = thread-> queue-> qid; else return (-1); /* Ensure that socket i/o agent is running, else start it up */ smtsock_init (); if ((thread = thread_lookup (SMT_SOCKET, "")) != NULL) sockq = thread-> queue-> qid; else return (-1); /* Ensure that timer agent is running, else start it up */ smttime_init (); if ((thread = thread_lookup (SMT_TIMER, "")) != NULL) timeq = thread-> queue-> qid; else return (-1); /* Create initial thread to manage master port */ if ((thread = thread_create (AGENT_NAME, "")) != NULL) { SEND (&thread-> queue-> qid, "_MASTER", ""); ((TCB *) thread-> tcb)-> thread_type = master_event; } else return (-1); /* Signal okay to caller that we initialised okay */ return (0); }