Exemple #1
0
//================================================================
void free_track_scene(int i)
{
    if(!is_track_scene(i)) return;
    free_all_tracks(i);
    delete trackscenevec[i];
    trackscenevec[i] = NULL;
}
Exemple #2
0
/* (1 s pause) +++ (1 s pause) ATH0 <LF>
 * ans Modem schicken und zweimal auf OK warten */
static int
hayes_hangup(int lmodem)
{
	/* returns:
	 * 0: ok
	 * 1: Fehler bei +++
	 * 2: Fehler bei ATH0
	 */
	int t_nocarr;
	int t_ok;
	int t_error;
	int ok;

	free_all_tracks();
	t_nocarr = init_track("NO CARRIER");
	t_ok = init_track("OK");
	t_error = init_track("ERROR");

	alarm(10);
	sleep(1);
	write( lmodem, "+++", 3 );
	sleep(1);
	ok = do_hayes("", lmodem);
	if(ok != t_ok) {
		return 1;
	}
	ok = do_hayes("ATH0", lmodem);
	if(ok != t_ok) {
		return 2;
	}
	return 0;
}
Exemple #3
0
static int
login(int lmodem, int verfahren, const char *myname, const char *passwd)
{
        int     t_ogin, t_ame, t_wort, t_word, t_begin, found,
		t_esc, t_sysname, t_arc, t_verweigert,
		err;
	char	z, pw[40];

	if (verfahren == ZCONNECT)
		strcpy(pw, "0zconnec\r");
	else
		sprintf(pw, "%s\r", passwd);

	free_all_tracks();
        t_esc = init_track(EMSI_REQ);
	t_ogin = init_track("OGIN:");
	if (verfahren == ZCONNECT)
		t_ame = init_track("AME");
	else
		t_ame = init_track("USERNAME:"******"WORT");
	t_word = init_track("WORD");
	t_sysname = -1;
	t_begin = -1;
	t_arc = -1;
	t_verweigert = -1;

        alarm(2*60);
	while (1)
	{
		do { } while (read(lmodem, &z, 1) != 1);
		found = track_char(toupper(z));
		if (!isascii(z) || !iscntrl(z)) {
			putc(z, stderr);
			fflush(stderr);
		} else if (z == '\r')
			putc('\n', stderr);
		if (found == -1) continue;
		if (found == t_esc) {
                        write(lmodem, EMSI_CLI, sizeof(EMSI_CLI));
			flush_modem(lmodem);
                } else if (found == t_ogin || found == t_ame) {
#ifdef SLOW_MODEM
                	sleep(2);	/* fflush auf der Gegenseite? */
#endif
			write(lmodem, logstr[verfahren],
				strlen(logstr[verfahren]));
			flush_modem(lmodem);
			if (verfahren < ZCONNECT && t_sysname == -1)
				t_sysname = init_track("SYSTEMNAME:");
                } else if (found == t_word || found == t_wort) {
			write(lmodem, pw, strlen(pw));
			flush_modem(lmodem);
			if (verfahren == ZCONNECT && t_begin == -1) {
				t_begin = init_track("BEGIN");
			}else {
				t_arc = init_track("ARC");
				t_verweigert = init_track("VERWEIGER");
			}
		} else if (found == t_sysname) {
			write(lmodem, myname, strlen(myname));
			write(lmodem, "\r", 1);
			flush_modem(lmodem);
		} else if (found == t_begin) {
			err = 0;
			break;
		} else if (found == t_arc) {
			err = 0;
			break;
		} else if (found == t_verweigert) {
			err = 1;
			break;
		}
	}
        free_all_tracks();
        alarm(0);

	return err;
}