示例#1
0
文件: termim.c 项目: buganini/termim
static void
done(int eno)
{

	if (ttyflg)
		(void)tcsetattr(STDIN_FILENO, TCSAFLUSH, &tt);
	term_destroy(term);
	term_destroy(term2);
	(void)close(master);
	(void)close(master2);
	exit(eno);
}
示例#2
0
void telnet_process()
{
	if (sock_telnet.sock_flags & SF_CONNECTED) {
		/* Just connected */
		sock_telnet.sock_flags &= ~SF_CONNECTED;
		sock_telnet.sock_flags |= SF_PUSH;

		telnet_send_opt(&sock_telnet.sbuf, TELNET_DO, TELNET_OPT_GOAHEAD);
		telnet_send_opt(&sock_telnet.sbuf, TELNET_WILL, TELNET_OPT_GOAHEAD);
		telnet_send_opt(&sock_telnet.sbuf, TELNET_WILL, TELNET_OPT_ECHO);

		//bprintf(&sock_telnet.sbuf, "Testing...\r\n");
		telnet_term.in = &sock_telnet.rbuf;
		telnet_term.out = &sock_telnet.sbuf;
		term_create(&telnet_term);
	}

	switch (sock_telnet.sock_state) {
		case TCP_CLOSE_WAIT:
			term_destroy(&telnet_term);
			tcp_sock_close(&sock_telnet);
			break;

		case TCP_CLOSE:
			tcp_sock_listen(&sock_telnet);
			break;
	}
}
示例#3
0
文件: termtree.c 项目: elipp/calc
void termtree_destroy(struct termtree_t *t) {
	int i = 0;
	for (; i < t->num_terms; ++i) 
		term_destroy(&t->terms[i]);

	free(t->terms);
	free(t->ops);
}
示例#4
0
/*
 * Last exit routine...
 * Use global *tty_tmp and terms[]
 */
void 
g00dbye(void)
{
    write_log(0," g00dbye function called from %d\n",(int)pthread_self());
    
    term_delete_all_tty();
    
#ifdef HAS_CURSES
    if (tty_tmp->interactive && (terms->gui_th.id != 0))
       thread_destroy(&terms->gui_th);
#endif

#ifdef HAVE_GTK
    if (tty_tmp->gtk && (terms->gui_gtk_th.id != 0)) {
       thread_destroy(&terms->gui_gtk_th);
    }
#endif

#ifdef HAVE_REMOTE_ADMIN
    if (tty_tmp->daemonize)
       admin_exit();
#endif

   /* Kill Uptime thread... */
   if (terms->uptime_th.id)
      thread_destroy_cancel(terms->uptime_th.id);
    
   if (tty_tmp && tty_tmp->term)
      free(tty_tmp->term);

   /* Destroy interfaces only if they are initialized!! */
   if (terms) 
      interfaces_destroy(&terms->pcap_listen_th);

   protocol_destroy();

   if (terms)
      term_destroy();
   
   if (!tty_tmp->daemonize)
   {
      write_log(0, " Showing MOTD..\n");
      show_vty_motd();
   }

   finish_log();

   if (tty_tmp)
      free(tty_tmp);

   exit(0);
}