亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dial.c

?? minicom2.0源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * dial.c	Functions to dial, retry etc. Als contains the dialing *		directory code, _and_ the famous tu-di-di music. * *		This file is part of the minicom communications package, *		Copyright 1991-1995 Miquel van Smoorenburg. * *		This program is free software; you can redistribute it and/or *		modify it under the terms of the GNU General Public License *		as published by the Free Software Foundation; either version *		2 of the License, or (at your option) any later version. * *   jl 22.06.97  Logging connects and disconnects. *   jl 23.06.97  Adjustable DTR droptime *   jl 21.09.97  Conversion table filenames in dialdir *   jl 05.10.97  Line speed changed to long in dial() *   jl 26.01.98  last login date & time added to dialing window *   jl 16.04.98  start searching for dialing tags from the highlighted entry *   jl 12.06.98  save the old dialdir if it was an old version *   er 18-Apr-99 When calling a multiline BBS *		  tagged entries with same name are untagged *   jl 01.09.99  Move entry up/down in directory *   jl 10.02.2000 Stopbits field added */#ifdef HAVE_CONFIG_H#include <config.h>#endif#include "rcsid.h"RCSID("$Id: dial.c,v 1.12 2001/07/04 14:43:25 kloczek Exp $")#include "port.h"#include "minicom.h"#include "intl.h"#if VC_MUSIC#  if defined(__linux__)#    include <sys/ioctl.h>#    include <sys/kd.h>#    include <sys/time.h>#  endif#  if defined(_COH42) || defined(_SCO)#    include <sys/vtkd.h>#  endif#endif/* We want the ANSI offsetof macro to do some dirty stuff. */#ifndef offsetof#  define offsetof(type, member) ((int) &((type *)0)->member)#endif/* Values for the "flags". */#define FL_ECHO		0x01	/* Local echo on/off. */#define FL_DEL		0x02	/* Backspace or DEL */#define FL_WRAP		0x04	/* Use autowrap. */#define FL_ANSI		0x08	/* Type of term emulation */#define FL_TAG		0x80	/* This entry is tagged. */#define FL_SAVE		0x0f	/* Which portions of flags to save. *//* Dialing directory. */struct v1_dialent {  char name[32];  char number[16];  char script[16];  char username[32];  char password[32];  char term;  char baud[8];  char parity[2];  char dialtype;  char flags; /* Localecho in v0 */  char bits[2];  struct dialent *next;};struct v3_dialent {  char name[32];  char number[32];  char script[32];  char username[32];  char password[32];  char term;  char baud[8];  char parity[2];  char dialtype;  char flags;  char bits[2];  struct dialent *next;};struct dialent {  char name[32];  char number[32];  char script[32];  char username[32];  char password[32];  char term;  char baud[8];  char parity[2];  char dialtype;  char flags;  char bits[2];  char lastdate[9];	/* jl 22.06.97 */  char lasttime[9];	/* jl 22.06.97 */  int  count;		/* jl 22.06.97 */  char convfile[16];	/* jl 21.09.97 */  char stopb[2]; 	/* jl 10.02.2000 */  struct dialent *next;};/* Version info. */#define DIALMAGIC 0x55AAstruct dver {  short magic;  short version;  short size;  short res1;  short res2;  short res3;  short res4;};/* Forward declaration */static void writedialdir();#define dialentno(di, no) ((struct dialent *)((char *)(di) + ((no) * sizeof(struct dialent))))  static struct dialent *dialents;static struct dialent *d_man;static int nrents = 1;static int newtype;/* Access to ".dialdir" denied? */static int dendd = 0;static char *tagged;char *dial_user;char *dial_pass;/* * Functions to talk to the modem. */ /* * Send a string to the modem. * If how == 0, '~'  sleeps 1 second. * If how == 1, "^~" sleeps 1 second. */void mputs(s, how)char *s;int how;{  char c;  while(*s) {  	if (*s == '^' && (*(s + 1))) {  		s++;  		if (*s == '^')  			c = *s;  		else if (how == 1 && *s == '~') {			sleep(1);			s++;			continue;		} else  			c = (*s) & 31;	} else if (*s == '\\' && (*(s + 1))) {		s++;		switch (toupper (*s)) {			case '\\':			  c = *s;			  break;			case 'U':			  if (dial_user && *dial_user) 			    mputs (dial_user, how);			  s++;			  continue;			case 'P':			  if (dial_pass && *dial_pass)			    mputs (dial_pass, how);			  s++;			  continue;			default:			  s++;			  continue;		}  	} else  		c = *s;	if (how == 0 && c == '~')  		sleep(1);  	else	  		write(portfd, &c, 1);  	s++;  }}  /* * Initialize the modem. */ void modeminit(){  WIN *w;  if (P_MINIT[0] == '\0') return;  w = mc_tell(_("Initializing Modem"));  m_dtrtoggle(portfd, 1);         /* jl 23.06.97 */  mputs(P_MINIT, 0);  wclose(w, 1);}/* * Reset the modem. */void modemreset(){  WIN *w;  if (P_MRESET[0] == '\0') return;  w = mc_tell(_("Resetting Modem"));  mputs(P_MRESET, 0);  sleep(1);  wclose(w, 1);}/* * Hang the line up. */void hangup(){  WIN *w;  int sec=1;  extern time_t old_online;  w = mc_tell(_("Hanging up"));  timer_update();  if (P_LOGCONN[0] == 'Y')    do_log(_("Hangup (%ld:%02ld:%02ld)"),	   online / 3600, (online / 60) % 60, online>0 ? online % 60 : 0);  online = -1;  old_online = -1;  if (isdigit(P_MDROPDTR[0]))    sscanf(P_MDROPDTR,"%2d",&sec);  if (P_MDROPDTR[0] == 'Y' || (isdigit(P_MDROPDTR[0]) && sec>0)) {  	m_dtrtoggle(portfd, sec);   /* jl 23.06.97 */  } else {  	mputs(P_MHANGUP, 0);  	sleep(1);  }#if _DCDFLOW  /* DCD has dropped, turn off hw flow control. */  m_sethwf(portfd, 0);#endif  /* If we don't have DCD support fake DCD dropped */  bogus_dcd = 0;  wclose(w, 1);  if (st)    time_status();}/* * This seemed to fit best in this file * Send a break signal. */void sendbreak(){  WIN *w;    w = mc_tell(_("Sending BREAK"));  wcursor(w, CNONE);  m_break(portfd);  wclose(w, 1);}  WIN *dialwin;int dialtime;#if VC_MUSIC/* * Play music until key is pressed. */void music(){  int x, i, k;  int consolefd = 0;  char *disp;  /* If we're in X, we have to explicitly use the console */  if (strncmp(getenv("TERM"), "xterm", 5) == 0 &&	(disp = getenv("DISPLAY")) != NULL &&	(strcmp(disp, ":0.0") == 0 ||	(strcmp(disp, ":0") == 0))) {	consolefd = open("/dev/console", O_WRONLY);	if (consolefd < 0) consolefd = 0;  }  /* Tell keyboard handler what we want. */  keyboard(KSIGIO, 0);  /* And loop forever :-) */  for(i = 0; i < 9; i++) {	k = 2000 - 200 * (i % 3);	(void) ioctl(consolefd, KIOCSOUND, k);	/* Check keypress with timeout 160 ms */	x = check_io(-1, 0, 160, NULL, NULL);	if (x & 2) break;  }  (void) ioctl(consolefd, KIOCSOUND, 0);  if (consolefd) close(consolefd);  /* Wait for keypress and absorb it */  while((x & 2) == 0) {    x = check_io(-1, 0, 10000, NULL, NULL);    timer_update();  }  (void) keyboard(KGETKEY, 0);}#endif/* * The dial has failed. Tell user. * Count down until retrytime and return. */static int dialfailed(s, rtime)char *s;int rtime;{  int f, x;  int ret = 0;  wlocate(dialwin, 1, 5);  wprintf(dialwin, _("    No connection: %s.      \n"), s);  if (rtime < 0) {  	wprintf(dialwin, _("   Press any key to continue..    "));	if (check_io(-1, 0, 10000, NULL, NULL) & 2) 		(void) keyboard(KGETKEY, 0);  	return(0);  }  wprintf(dialwin, _("     Retry in %2d seconds             "), rtime);    for(f = rtime - 1; f >= 0; f--) {	x = check_io(-1, 0, 1000, NULL, NULL);	if (x & 2) {		/* Key pressed - absorb it. */		x = keyboard(KGETKEY, 0);		if (x != ' ') ret = -1;		break;	}  	wlocate(dialwin, 0, 6);	wprintf(dialwin, _("     Retry in %2d seconds             "), f);  }#ifdef HAVE_USLEEP  /* MARK updated 02/17/94 - Min dial delay set to 0.35 sec instead of 1 sec */  if (f < 0) usleep(350000); /* Allow modem time to hangup if redial time == 0 */#else  if (f < 0) sleep(1);#endif  wlocate(dialwin, 1, 5);  wprintf(dialwin, "                                       \n");  wprintf(dialwin, "                                             ");  return(ret);}/* * Dial a number, and display the name. */long dial(d, d2)struct dialent *d;struct dialent **d2;{  char *s = 0, *t = 0;  int f, x = 0;  int modidx, retries = 0;  int maxretries = 1, rdelay = 45;  long nb, retst = -1;  char *reason = _("Max retries");  time_t now, last;  struct tm *ptime;  char buf[128];  char modbuf[128];  /*  char logline[128]; */  timer_update(); /* Statusline may still show 'Online' / jl 16.08.97 */  /* don't do anything if already online! jl 07.07.98 */  if (P_HASDCD[0]=='Y' && online >= 0) {    werror(_("You are already online! Hang up first."));    return(retst);  }  dialwin = wopen(18, 9, 62, 16, BSINGLE, stdattr, mfcolor, mbcolor, 0, 0, 1);  wtitle(dialwin, TMID, _("Autodial"));  wcursor(dialwin, CNONE);  wputs(dialwin, "\n");  wprintf(dialwin, " %s : %s\n", _("Dialing"), d->name);  wprintf(dialwin, _("      At : %s\n"), d->number);  if (d->lastdate[0] && d->lasttime[0])		/* jl 26.01.98 */    wprintf(dialwin, _(" Last on : %s at %s\n"), d->lastdate, d->lasttime);  else    wprintf(dialwin, "\n");  wredraw(dialwin, 1);  /* Tell keyboard routines we need them. */  keyboard(KSIGIO, 0);  maxretries = atoi(P_MRETRIES);  if (maxretries <= 0) maxretries = 1;  rdelay = atoi(P_MRDELAY);  if (rdelay < 0) rdelay = 0;  /* Main retry loop of dial() */MainLoop:  while(++retries <= maxretries) {	/* See if we need to try the next tagged entry. */	if (retries > 1 && (d->flags & FL_TAG)) {		do {			d = d->next;			if (d == (struct dialent *)NULL) d = dialents;		} while(!(d->flags & FL_TAG));		wlocate(dialwin, 0, 1);		wprintf(dialwin, _(" Dialing : %s"), d->name);		wclreol(dialwin);		wprintf(dialwin, _("\n      At : %s"), d->number);		wclreol(dialwin);		if (d->lastdate[0] && d->lasttime[0]) {		  wprintf(dialwin, _("\n Last on : %s at %s"),			  d->lastdate, d->lasttime);		  wclreol(dialwin);		}	}	/* Calculate dial time */	dialtime = atoi(P_MDIALTIME);	if (dialtime == 0) dialtime = 45;	time(&now);	last = now;  	/* Show used time */	wlocate(dialwin, 0, 4);	wprintf(dialwin, _("    Time : %-3d"), dialtime);	if (maxretries > 1) wprintf(dialwin, _("     Attempt #%d"), retries);	wputs(dialwin, _("\n\n\n Escape to cancel, space to retry."));		/* Start the dial */	m_flush(portfd);	switch(d->dialtype) {		case 0:			mputs(P_MDIALPRE, 0);			mputs(d->number, 0);			mputs(P_MDIALSUF, 0);			break;		case 1:			mputs(P_MDIALPRE2, 0);			mputs(d->number, 0);			mputs(P_MDIALSUF2, 0);			break;		case 2:			mputs(P_MDIALPRE3, 0);			mputs(d->number, 0);			mputs(P_MDIALSUF3, 0);			break;	}	/* Wait 'till the modem says something */	modbuf[0] = 0;	modidx = 0;	s = buf;	buf[0] = 0;	while(dialtime > 0) {	    if (*s == 0) {		x = check_io(portfd, 0, 1000, buf, NULL);		s = buf;	    }	    if (x & 2) {		f = keyboard(KGETKEY, 0);		/* Cancel if escape was pressed. */		if (f == K_ESC) mputs(P_MDIALCAN, 0);		/* On space retry. */		if (f == ' ') {			mputs(P_MDIALCAN, 0);			dialfailed(_("Cancelled"), 4);			m_flush(portfd);			break;		}		(void) keyboard(KSTOP, 0);		wclose(dialwin, 1);		return(retst);	    }	    if (x & 1) {		/* Data available from the modem. Put in buffer. */		if (*s == '\r' || *s == '\n') {			/* We look for [\r\n]STRING[\r\n] */			modbuf[modidx] = 0;			modidx = 0;		} else if (modidx < 127) {			/* Normal character. Add. */			modbuf[modidx++] = *s;			modbuf[modidx] = 0;		}		/* Skip to next received char */		if (*s) s++;		/* Only look when we got a whole line. */		if (modidx == 0 &&		    !strncmp(modbuf, P_MCONNECT, strlen(P_MCONNECT))) {			timer_update(); /* the login scipt may take long.. */			retst = 0;			/* Try to do auto-bauding */			if (sscanf(modbuf + strlen(P_MCONNECT), "%ld", &nb) == 1)				retst = nb;			linespd = retst;			/* Try to figure out if this system supports DCD */			f = m_getdcd(portfd);			bogus_dcd = 1;			/* jl 22.05.97, 22.09.97, 05.04.99 */			if (P_LOGCONN[0] == 'Y')			  do_log("%s %s, %s",modbuf, d->name, d->number);			ptime=localtime(&now);			sprintf(d->lastdate,"%4.4d%2.2d%2.2d",				(ptime->tm_year)+1900,(ptime->tm_mon)+1,				ptime->tm_mday);			sprintf(d->lasttime,"%02d:%02d",				ptime->tm_hour,ptime->tm_min);			d->count ++;#if _HAVE_MACROS			if (d->convfile[0]) {			  loadconv(d->convfile);    /* jl 21.09.97 */			  strcpy(P_CONVF, d->convfile);			}#endif			wlocate(dialwin, 1, 7);			if (d->script[0] == 0) {				wputs(dialwin,				    _("Connected. Press any key to continue"));#if VC_MUSIC				if (P_SOUND[0] == 'Y')					music();				else {					x = check_io(-1, 0, 0, NULL, NULL);					if ((x & 2) == 2)						(void) keyboard(KGETKEY, 0);				}#else				/* MARK updated 02/17/94 - If VC_MUSIC is not */				/* defined, then at least make some beeps! */				if (P_SOUND[0] == 'Y') 					wputs(dialwin,"\007\007\007");#endif				x = check_io(-1, 0, 0, NULL, NULL);				if ((x & 2) == 2)					(void) keyboard(KGETKEY, 0);			}			keyboard(KSTOP, 0);			wclose(dialwin, 1);			/* Print out the connect strings. */			wprintf(us, "\r\n%s\r\n", modbuf);			dialwin = NIL_WIN;			/* Un-tag this entry. */			d->flags &= ~FL_TAG;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产清纯美女被跳蛋高潮一区二区久久w | 欧美男生操女生| 欧美二区在线观看| 日韩一区和二区| 国产婷婷色一区二区三区在线| 亚洲丝袜精品丝袜在线| 亚洲电影你懂得| 激情综合网av| 97se亚洲国产综合自在线 | 一区二区三区资源| 日本欧美一区二区在线观看| 国产不卡一区视频| 欧美日本在线观看| 国产日韩欧美综合在线| 一区二区三区日韩| 久久精品国产亚洲a| 99精品偷自拍| 日韩欧美国产不卡| 一区二区三区国产精品| 久久99国产精品久久99| 日本韩国欧美三级| 久久青草国产手机看片福利盒子| 亚洲精品菠萝久久久久久久| 国产乱码精品一区二区三区av | 日韩理论片网站| 日产国产欧美视频一区精品 | 亚洲乱码国产乱码精品精小说| 麻豆成人av在线| 91麻豆免费观看| 久久五月婷婷丁香社区| 丝袜亚洲另类欧美| 91视频免费观看| 久久久高清一区二区三区| 亚洲成人黄色小说| 91麻豆蜜桃一区二区三区| 国产亚洲成年网址在线观看| 日韩中文字幕av电影| 91在线一区二区| 久久免费视频色| 毛片av一区二区| 欧美日韩一卡二卡三卡| 日韩理论在线观看| 东方aⅴ免费观看久久av| 91精品国产丝袜白色高跟鞋| 亚洲激情av在线| 97久久人人超碰| 中文字幕乱码久久午夜不卡| 加勒比av一区二区| 91精品国产乱| 亚洲午夜精品17c| 91视频一区二区| 国产精品剧情在线亚洲| 国产精品自在欧美一区| 日韩一级片在线播放| 午夜精品免费在线| 色8久久精品久久久久久蜜| 亚洲丝袜精品丝袜在线| 成人听书哪个软件好| 精品日韩欧美在线| 青青草国产成人av片免费| 欧美三级韩国三级日本三斤| 亚洲激情在线激情| 99视频热这里只有精品免费| 国产欧美视频一区二区三区| 黑人巨大精品欧美一区| 色综合久久久久网| 国产精品麻豆99久久久久久| 美脚の诱脚舐め脚责91| 在线视频国产一区| 中文字幕+乱码+中文字幕一区| 国产激情一区二区三区四区| 欧美va亚洲va在线观看蝴蝶网| 奇米影视在线99精品| 91精品久久久久久久久99蜜臂| 婷婷丁香激情综合| 欧美一区二区三区免费观看视频 | 日韩写真欧美这视频| 日精品一区二区三区| 欧美精品乱码久久久久久| 日韩精品色哟哟| 日韩一二在线观看| 久久66热re国产| 久久久精品国产免费观看同学| 国产一区二区免费在线| 久久精品欧美一区二区三区麻豆 | 中文字幕在线一区二区三区| caoporn国产一区二区| 亚洲人一二三区| 欧美三级午夜理伦三级中视频| 亚洲r级在线视频| 欧美一区午夜精品| 国精产品一区一区三区mba视频 | 岛国一区二区在线观看| 亚洲欧美怡红院| 欧美吞精做爰啪啪高潮| 日本不卡不码高清免费观看| 日韩你懂的在线播放| 国产乱色国产精品免费视频| 成人欧美一区二区三区白人| 欧美性色欧美a在线播放| 日韩av网站免费在线| 久久久久久亚洲综合| aaa国产一区| 午夜av电影一区| 欧美精品一区二区蜜臀亚洲| 成人精品一区二区三区中文字幕| 亚洲综合一区在线| 欧美一区二区啪啪| 国产成人精品在线看| 亚洲猫色日本管| 日韩女优电影在线观看| 成人av午夜电影| 午夜日韩在线观看| 久久精品亚洲精品国产欧美kt∨| 色婷婷亚洲精品| 韩国v欧美v亚洲v日本v| 亚洲精品免费在线播放| 日韩欧美激情四射| 99久久婷婷国产综合精品电影| 午夜成人免费视频| 中日韩av电影| 欧美一区二区视频网站| 懂色av中文一区二区三区| 亚洲成av人片一区二区| 久久精品亚洲乱码伦伦中文| 欧美天天综合网| 国产精品456| 午夜视频一区二区三区| 国产精品久久久久影院| 日韩一区二区三区在线视频| 99精品视频在线免费观看| 日本午夜一区二区| 亚洲欧美自拍偷拍| 久久嫩草精品久久久久| 欧美日韩不卡在线| 99精品国产一区二区三区不卡| av不卡免费电影| 久久精品国产精品亚洲综合| 亚洲精品成a人| 欧美激情一二三区| 日韩精品中文字幕一区| 欧美午夜在线观看| youjizz久久| 韩日av一区二区| 日韩黄色片在线观看| 自拍偷拍亚洲激情| 久久综合色鬼综合色| 欧美精品自拍偷拍| 91免费小视频| 福利视频网站一区二区三区| 麻豆精品国产传媒mv男同| 亚洲国产视频网站| 亚洲另类春色校园小说| 日本一区二区三区在线不卡| 日韩欧美一二区| 欧美丰满高潮xxxx喷水动漫| 欧美在线不卡一区| 91原创在线视频| 豆国产96在线|亚洲| 国产在线麻豆精品观看| 免费观看30秒视频久久| 图片区小说区区亚洲影院| 一区二区在线电影| 亚洲欧美一区二区三区孕妇| 亚洲国产成人一区二区三区| 久久女同性恋中文字幕| 精品国产91九色蝌蚪| 91精品国产91热久久久做人人| 欧美日韩综合在线| 在线观看免费亚洲| 色综合天天视频在线观看 | 亚洲欧美偷拍三级| 国产精品久久久久毛片软件| 国产午夜亚洲精品理论片色戒 | 成人午夜av电影| 成人激情开心网| 成人夜色视频网站在线观看| 国产精品一区不卡| 国产麻豆视频精品| 国产一区二区三区在线观看免费视频| 精品一区二区三区久久| 看电视剧不卡顿的网站| 精品一二三四在线| 久久精品国产澳门| 国产伦精品一区二区三区免费 | 国产丝袜欧美中文另类| 久久日韩精品一区二区五区| 国产亚洲欧美在线| 国产欧美视频在线观看| 中文字幕一区三区| 亚洲欧美精品午睡沙发| 一区二区三区精品在线观看| 一区二区三区在线不卡| 午夜一区二区三区视频| 丝袜诱惑制服诱惑色一区在线观看 | 成人av小说网| 日本高清不卡在线观看| 欧美无乱码久久久免费午夜一区 | 久久国产精品一区二区| 国产真实乱偷精品视频免|