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

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

?? smtp_client.c

?? 在freescale 的ne64上開發的源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
	/* On that function we can send data when called by main loop	*/

	if( smtpc_init_done == 0 )
		return;

	if( smtp_client.state < SMTP_OPEN_REQUESTED)
		return;

	/* Is there timeout of some sort?	*/

	if(check_timer(smtp_client.tmrhandle) == 0) {
		/* Yep	*/
		(void)tcp_abort(smtp_client.sochandle);
		smtpc_changestate(SMTP_CLOSED);

		/* Make user callback	*/
		smtpc_error();
		return;

	}

	if( smtp_client.state == SMTP_OPEN_REQUESTED) {
		/* We are on this state because user has requested connection	*/
		/* but connection is not yet opened.							*/
		/* Try to get TCP stack to accept our connection request		*/

		(void)tcp_abort(smtp_client.sochandle);	/* Release old connection	*/
		if(tcp_connect(smtp_client.sochandle, smtp_client.remip, smtp_client.remport, 0) >= 0)
			smtpc_changestate(SMTP_CONNECTIONOPEN_SENT);

		return;
	}



	if( tcp_getstate(smtp_client.sochandle) != TCP_STATE_CONNECTED ) {
		return;
	}

	if( tcp_checksend(smtp_client.sochandle) < 0 )
		return;

	/* It's connected and no unacked data so try to send	*/


	if(smtp_client.state == SMTP_SERVER_READY) {
		/* Send HELO	*/
		smtpc_sendhelo();
		smtpc_changestate(SMTP_HELO_SENT);
		DEBUGOUT("SMTP HELO packet sent\r\n");
		return;
	}

	if(smtp_client.state == SMTP_HELO_ACKED) {
		/* Send MAIL FROM	*/
		smtpc_sendmailfrom();
		smtpc_changestate(SMTP_MAILFROM_SENT);
		DEBUGOUT("SMTP MAIL FROM packet sent\r\n");
		return;
	}

	if(smtp_client.state == SMTP_MAILFROM_ACKED) {
		/* Send RCPT TO	*/
		smtpc_sendrcptto();
		smtpc_changestate(SMTP_RCPTTO_SENT);
		DEBUGOUT("SMTP RCPT TO packet sent\r\n");
		return;
	}

	if(smtp_client.state == SMTP_RCPTTO_ACKED) {
		/* Send DATA	*/
		smtpc_senddatareq();
		smtpc_changestate(SMTP_DATAREQ_SENT);
		DEBUGOUT("SMTP DATA packet sent\r\n");
		return;
	}

	if(smtp_client.state == SMTP_DATAREQ_ACKED)	{
		/* Send BODY	*/
		smtpc_sendbody();
		smtpc_changestate(SMTP_BODY_SENT);
		DEBUGOUT("SMTP BODY packet sent\r\n");
		return;
	}


	/* Body is part of plain text so we just make internal state change	*/
	/* when TCP has acked the body packet. This pseudo-state just helps */
	/* us to regenerate the body when needed							*/

	if(smtp_client.state == SMTP_BODY_SENT)
		smtpc_changestate(SMTP_SENDING_DATA);

	if(smtp_client.state == SMTP_SENDING_DATA) {
		/* Inform user app that old data is acked now	*/

		smtpc_dataacked();

		if (smtpc_senddata() < 0) {
			/* End of data, send CRLF.CRLF	*/

			DEBUGOUT("SMTP End of data reached\r\n");
			smtpc_senddataend();
			smtpc_changestate(SMTP_DATAEND_SENT);

		}
		return;
	}


	if(smtp_client.state == SMTP_DATAEND_ACKED) {
		/* Send QUIT	*/
		smtpc_sendquit();
		smtpc_changestate(SMTP_QUIT_SENT);
		DEBUGOUT("SMTP QUIT packet sent\r\n");
		return;
	}


	if(smtp_client.state == SMTP_QUIT_ACKED) {

		/* Inform application that data is sent OK	*/

		smtpc_allok();

		/* Try to close TCP	*/

		if(tcp_close(smtp_client.sochandle) >= 0) {
			smtpc_changestate(SMTP_CLOSED);
			DEBUGOUT("SMTP connection closed OK\r\n");
			return;
		}

		/* Close is not accepted by TCP. See if timeout	*/

		if(check_timer(smtp_client.tmrhandle) == 0) {
			/* Use brute force		*/

			(void)tcp_abort(smtp_client.sochandle);
			smtpc_changestate(SMTP_CLOSED);
			DEBUGOUT("SMTP connection closed by ABORT\r\n");
			return;
		}

		/* Keep trying untill timeout	*/

		return;

	}

	return;

}


void smtpc_sendhelo (void)
{
	INT8 i;
	UINT8* buf;

	/* Fill TCP Tx buffer with "HELO " and use callback function	*/
	/* smtp_getdomain in order to get domain from systems and send	*/
	/* that combined "HELO domainnname" to SMTP server				*/

	buf = &net_buf[TCP_APP_OFFSET];

	*buf++ = 'H';
	*buf++ = 'E';
	*buf++ = 'L';
	*buf++ = 'O';
	*buf++ = ' ';

	i = smtpc_getdomain(buf);

	if(i < 0)
		return;

	buf += i;

	/* Insert CRLF	*/

	*buf++ = '\r';
	*buf = '\n';


	(void)tcp_send(smtp_client.sochandle, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, i + 7);

}



void smtpc_sendmailfrom (void)
{
	INT8 i;
	UINT8* buf;

	/* Fill TCP Tx buffer with "MAIL FROM: <" and use callback function				*/
	/* smtp_getsender in order to get local e-mail address from user and send		*/
	/* that combined "MAIL FROM: <myadr>" to SMTP server							*/

	buf = &net_buf[TCP_APP_OFFSET];

	*buf++ = 'M';
	*buf++ = 'A';
	*buf++ = 'I';
	*buf++ = 'L';
	*buf++ = ' ';
	*buf++ = 'F';
	*buf++ = 'R';
	*buf++ = 'O';
	*buf++ = 'M';
	*buf++ = ':';
	*buf++ = ' ';
	*buf++ = '<';

	i = smtpc_getsender(buf);

	if(i < 0)
		return;

	buf += i;

	/* Insert >CRLF	*/

	*buf++ = '>';
	*buf++ = '\r';
	*buf = '\n';


	(void)tcp_send(smtp_client.sochandle, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, i + 15);

}



void smtpc_sendrcptto (void)
{
	INT8 i;
	UINT8* buf;

	/* Fill TCP Tx buffer with "RCPT TO: <" and use callback function			*/
	/* smtp_getreceiver in order to get receiver address from user and send		*/
	/* that combined "RCPT To: <rcvadr>" to SMTP server							*/

	buf = &net_buf[TCP_APP_OFFSET];

	*buf++ = 'R';
	*buf++ = 'C';
	*buf++ = 'P';
	*buf++ = 'T';
	*buf++ = ' ';
	*buf++ = 'T';
	*buf++ = 'O';
	*buf++ = ':';
	*buf++ = ' ';
	*buf++ = '<';

	i = smtpc_getreceiver(buf);

	if(i < 0)
		return;

	buf += i;

	/* Insert >CRLF	*/

	*buf++ = '>';
	*buf++ = '\r';
	*buf = '\n';


	(void)tcp_send(smtp_client.sochandle, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, i + 13);

}

void smtpc_senddatareq (void)
{
	UINT8* buf;

	/* Fill TCP Tx buffer with "DATA" and send to SMTP server	*/

	buf = &net_buf[TCP_APP_OFFSET];

	*buf++ = 'D';
	*buf++ = 'A';
	*buf++ = 'T';
	*buf++ = 'A';

	/* Insert CRLF	*/

	*buf++ = '\r';
	*buf = '\n';

	(void)tcp_send(smtp_client.sochandle, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, 6);

}

void smtpc_sendbody (void)
{
	UINT8* buf;
	INT8 i;
	UINT8 j;

	/* Fill TCP Tx buffer with RFC 822 body and send to SMTP server	*/

	j = 0;
	buf = &net_buf[TCP_APP_OFFSET];

	*buf++ = 'T';
	*buf++ = 'o';
	*buf++ = ':';
	*buf++ = ' ';

	i = smtpc_getreceiver(buf);

	if(i < 0)
		return;

	buf += i;

	j += i;

	/* Insert CRLF	*/

	*buf++ = '\r';
	*buf++ = '\n';

	*buf++ = 'S';
	*buf++ = 'u';
	*buf++ = 'b';
	*buf++ = 'j';
	*buf++ = 'e';
	*buf++ = 'c';
	*buf++ = 't';
	*buf++ = ':';
	*buf++ = ' ';

	i = smtpc_getsubject(buf);

	if(i < 0)
		return;

	buf += i;

	j += i;

	/* Insert CRLF	*/

	*buf++ = '\r';
	*buf++ = '\n';

	*buf++ = 'F';
	*buf++ = 'r';
	*buf++ = 'o';
	*buf++ = 'm';
	*buf++ = ':';
	*buf++ = ' ';

	i = smtpc_getsender(buf);

	if(i < 0)
		return;

	buf += i;

	j += i;

	/* Insert CRLF	*/

	*buf++ = '\r';
	*buf++ = '\n';

	/* Insert emty row	*/

	*buf++ = '\r';
	*buf = '\n';

	(void)tcp_send(smtp_client.sochandle, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, j + 27);

}


void smtpc_senddataend (void)
{
	UINT8* buf;

	/* Fill TCP Tx buffer with CRLF.CRLF and send to SMTP server	*/

	buf = &net_buf[TCP_APP_OFFSET];

	*buf++ = '\r';
	*buf++ = '\n';
	*buf++ = '.';
	*buf++ = '\r';
	*buf = '\n';

	(void)tcp_send(smtp_client.sochandle, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, 5);

}


void smtpc_sendquit (void)
{
	UINT8* buf;

	/* Fill TCP Tx buffer with "QUIT" and send to SMTP server	*/

	buf = &net_buf[TCP_APP_OFFSET];

	*buf++ = 'Q';
	*buf++ = 'U';
	*buf++ = 'I';
	*buf++ = 'T';

	/* Insert CRLF	*/

	*buf++ = '\r';
	*buf = '\n';

	(void)tcp_send(smtp_client.sochandle, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, 6);

}


INT16 smtpc_senddata (void)
{

	INT16 len;

	/* Use callback smtpc_getdata in order to fill Tx buffer with user data	*/
	/* Normally user callback should return number of bytes assembled but	*/
	/* when end of data is reached no bytes are written but (-1) returned	*/

	len = smtpc_getdata(&net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET);

	if(len < 0)
		return(-1);

	if(len > 0)
		tcp_send(smtp_client.sochandle, &net_buf[TCP_APP_OFFSET], NETWORK_TX_BUFFER_SIZE - TCP_APP_OFFSET, (UINT16)len);

	return(len);

}

void smtpc_changestate (UINT8 nstate)
{

	init_timer(smtp_client.tmrhandle, SMTPC_TOUT*TIMERTIC);
	smtp_client.state = nstate;

}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产全国免费观看 | 国产亚洲精品bt天堂精选| 亚洲第一搞黄网站| 高清不卡一二三区| 日韩黄色小视频| 国产精品第13页| 狠狠久久亚洲欧美| 精品精品欲导航| 亚洲天堂免费看| 看电视剧不卡顿的网站| 国产视频在线观看一区二区三区| 国产福利不卡视频| 久久精品水蜜桃av综合天堂| 亚洲一区二区免费视频| 日日嗨av一区二区三区四区| 午夜视频一区二区三区| 亚洲综合偷拍欧美一区色| 青青草国产精品亚洲专区无| 国产传媒日韩欧美成人| 成人av电影在线播放| 亚洲靠逼com| 91精品国产色综合久久久蜜香臀| 奇米一区二区三区av| 久久精品夜色噜噜亚洲a∨| 国产精品网站一区| 天堂一区二区在线| 99久久精品国产精品久久 | 国产高清在线精品| 91精品国产乱码| 中文字幕在线一区免费| 久久精品国产网站| 国产日韩欧美a| 久久亚洲精品小早川怜子| 美女精品自拍一二三四| 91香蕉视频污在线| 亚洲欧美日韩系列| 国产成人精品影视| 欧美一级视频精品观看| 亚洲激情图片小说视频| 成人夜色视频网站在线观看| 亚洲精品欧美综合四区| 亚洲欧洲日产国码二区| 精品1区2区3区| 麻豆成人91精品二区三区| 日韩久久久精品| 日韩 欧美一区二区三区| 一区二区三区免费| 日韩小视频在线观看专区| 国产精品一区三区| 中文字幕一区二区视频| 精品国产网站在线观看| 6080国产精品一区二区| 粉嫩绯色av一区二区在线观看| 亚洲午夜激情av| 一区二区三区免费看视频| 伊人一区二区三区| 亚洲最色的网站| 亚洲色图欧美偷拍| 亚洲品质自拍视频| 一区二区三区在线影院| 亚洲精品免费播放| 亚洲精品免费在线| 午夜电影网亚洲视频| 五月天欧美精品| 男女男精品视频| 美美哒免费高清在线观看视频一区二区| 日韩精品电影一区亚洲| 天堂在线一区二区| 亚洲一区二区三区美女| 亚洲美女偷拍久久| 视频在线观看国产精品| 亚洲国产日韩在线一区模特| 日韩综合一区二区| 久久精品国产亚洲5555| 亚洲成在线观看| 韩国精品主播一区二区在线观看 | 91精品综合久久久久久| 欧美成人精品二区三区99精品| 精品国产免费一区二区三区香蕉| 久久久99精品免费观看不卡| 亚洲免费高清视频在线| 日韩av中文字幕一区二区三区 | aaa国产一区| 欧美在线不卡一区| 精品国产3级a| 中文字幕不卡在线观看| 又紧又大又爽精品一区二区| 国产真实乱对白精彩久久| 成人国产在线观看| 欧美一级xxx| 国产精品免费看片| 日韩精品免费视频人成| 99在线精品观看| 欧美一区二区三区爱爱| 国产精品久久久久久久第一福利| 亚洲国产中文字幕在线视频综合| 国产九九视频一区二区三区| 色伊人久久综合中文字幕| 日韩精品一区在线| 亚洲小说春色综合另类电影| 韩国av一区二区| 欧美精品自拍偷拍| 国产精品国产三级国产aⅴ入口| 亚洲一区二区综合| 丁香一区二区三区| 欧美高清视频不卡网| 亚洲精品中文字幕在线观看| 蜜桃视频在线观看一区二区| 不卡一二三区首页| 2014亚洲片线观看视频免费| 亚洲午夜久久久久久久久电影院 | 久久九九99视频| 亚洲免费观看高清完整版在线观看| 国产真实乱偷精品视频免| 欧美三级中文字幕在线观看| 久久久国际精品| 麻豆一区二区三| 欧美色精品在线视频| 国产精品久久久久久亚洲伦| 久久国产综合精品| 欧美伊人久久大香线蕉综合69| 亚洲欧美怡红院| 国产麻豆成人精品| 日韩精品一区二区三区四区视频| 亚洲欧美激情一区二区| 国产精品99久久久久久似苏梦涵| 日韩欧美中文字幕精品| 亚洲小说欧美激情另类| 色成年激情久久综合| 国产精品免费久久久久| 国产综合色产在线精品| 26uuu精品一区二区在线观看| 亚洲一区二区三区中文字幕 | 精品一区二区三区久久久| 欧美熟乱第一页| 国产精品乱码人人做人人爱| 亚洲一区二区三区四区五区黄| 国产馆精品极品| 欧美日韩国产一区二区三区地区| 国产精品区一区二区三| 日产欧产美韩系列久久99| 精品视频在线看| 亚洲一区二区三区国产| 欧美在线免费播放| 亚洲综合图片区| 欧美在线视频你懂得| 亚洲精品v日韩精品| thepron国产精品| 曰韩精品一区二区| 色综合中文字幕国产 | 欧美一区二区在线看| 亚洲成a人v欧美综合天堂| 91黄色激情网站| 亚洲精品乱码久久久久久| 色域天天综合网| 亚洲精品高清在线观看| 一本到高清视频免费精品| 中文字幕在线免费不卡| 91伊人久久大香线蕉| 亚洲少妇中出一区| 91色九色蝌蚪| 一区二区理论电影在线观看| 欧美最猛黑人xxxxx猛交| 中文字幕色av一区二区三区| av网站一区二区三区| 一区在线观看视频| 欧美午夜影院一区| 天天综合网 天天综合色| 欧美精品一级二级三级| 免费在线观看精品| 久久综合精品国产一区二区三区| 国产一区二区女| 欧美不卡123| 国产一区二区三区免费在线观看| 久久久国产午夜精品| 激情五月婷婷综合网| 国产精品污www在线观看| 91浏览器入口在线观看| 亚洲一区二区在线观看视频| 欧美一区二区三区在线观看| 精品一区二区在线观看| 国产日产欧美一区| eeuss鲁片一区二区三区在线看| 亚洲欧美另类小说视频| 欧美精品一二三| 国产一区福利在线| 亚洲视频一区在线观看| 欧美精品免费视频| 高清成人免费视频| 一区二区三区四区在线播放| 日韩一区二区三区四区五区六区| 国产91精品露脸国语对白| 亚洲综合男人的天堂| 久久久美女毛片| 欧美精品在线观看播放| www.欧美.com| 精品一区二区三区视频在线观看| 亚洲午夜成aⅴ人片| 中文一区二区在线观看| 精品免费视频.|