⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 smtp__client_8c-source.html

📁 Freescale mcu OpenTCP-1.0.4.doc.html.zip 文档
💻 HTML
📖 第 1 页 / 共 4 页
字号:
00263                 <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a56">TCP_EVENT_CLOSE</a>:00264                 00265                         smtpc_changestate(<a class="code" href="smtp__client_8h.html#a2">SMTP_CLOSED</a>);00266                         <a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.unacked = 0;00267                         <span class="keywordflow">return</span>(1);00268                 00269                         <span class="keywordflow">break</span>;00270                         00271                 <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a58">TCP_EVENT_ACK</a>:00272                 00273                         <span class="comment">/* Our message is acked */</span>00274                         00275                         <a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.unacked = 0;00276                         00277                         <span class="keywordflow">break</span>;00278                         00279                 <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a60">TCP_EVENT_DATA</a>:00280                 00281                         <span class="comment">/* Do we have unacked data?     */</span>00282                         00283                         <span class="keywordflow">if</span>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.unacked)00284                                 <span class="keywordflow">return</span>(-1);00285                 00286                         <span class="comment">/* Get reply from server        */</span>00287                         00288                         <span class="keywordflow">if</span>(par1 &lt; 3)                                    <span class="comment">/* Long enough? */</span>00289                                 <span class="keywordflow">return</span>(-1);00290                 00291                         <span class="comment">/* Get command                          */</span>00292                         00293                         <a class="code" href="system_8h.html#a14">NETWORK_RECEIVE_INITIALIZE</a>(received_tcp_packet.buf_index);00294                         cmd = <a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>();00295                         cmd += <a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>();00296                         cmd += <a class="code" href="system_8h.html#a9">RECEIVE_NETWORK_B</a>();00297                         00298                         <span class="keywordflow">switch</span>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.state) { 00299                                 00300                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a5">SMTP_CONNECTION_OPENED</a>:00301                                 00302                                         <span class="keywordflow">if</span>(cmd == <a class="code" href="smtp__client_8h.html#a22">SMTP_CMD_SERVER_READY</a>) {00303                                                 DEBUGOUT(<span class="stringliteral">"SMTP Server is ready\r\n"</span>);00304                                                 smtpc_changestate(<a class="code" href="smtp__client_8h.html#a6">SMTP_SERVER_READY</a>);00305                                                 <span class="keywordflow">return</span>(1);00306                                         }00307                                         00308                                         <span class="keywordflow">break</span>;00309                                 00310                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a7">SMTP_HELO_SENT</a>:00311                                 00312                                         <span class="keywordflow">if</span>(cmd == <a class="code" href="smtp__client_8h.html#a23">SMTP_CMD_OK</a>) {        00313                                                 DEBUGOUT(<span class="stringliteral">"HELO acked by SMTP server\r\n"</span>);00314                                                 smtpc_changestate(<a class="code" href="smtp__client_8h.html#a8">SMTP_HELO_ACKED</a>);00315                                                 <span class="keywordflow">return</span>(1);00316                                         }00317                                         00318                                         <span class="keywordflow">break</span>;                          00319                                         00320                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a9">SMTP_MAILFROM_SENT</a>:00321                                 00322                                         <span class="keywordflow">if</span>(cmd == <a class="code" href="smtp__client_8h.html#a23">SMTP_CMD_OK</a>) {00323                                                 DEBUGOUT(<span class="stringliteral">"MAIL FROM Acked by SMTP server\r\n"</span>);00324                                                 smtpc_changestate(<a class="code" href="smtp__client_8h.html#a10">SMTP_MAILFROM_ACKED</a>);00325                                                 <span class="keywordflow">return</span>(1);00326                                         }00327                                         00328                                         <span class="keywordflow">break</span>;                  00329                                         00330                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a11">SMTP_RCPTTO_SENT</a>: 00331                                 00332                                         <span class="keywordflow">if</span>(cmd == <a class="code" href="smtp__client_8h.html#a23">SMTP_CMD_OK</a>) {00333                                                 DEBUGOUT(<span class="stringliteral">"RCPT TO Acked by SMTP server\r\n"</span>);00334                                                 smtpc_changestate(<a class="code" href="smtp__client_8h.html#a12">SMTP_RCPTTO_ACKED</a>);00335                                                 <span class="keywordflow">return</span>(1);00336                                         }00337                                         00338                                         <span class="keywordflow">break</span>;  00339                                         00340                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a13">SMTP_DATAREQ_SENT</a>:00341                                 00342                                         <span class="keywordflow">if</span>(cmd == <a class="code" href="smtp__client_8h.html#a24">SMTP_CMD_DATAOK</a>) {00343                                                 DEBUGOUT(<span class="stringliteral">"DATA Acked by SMTP Server\r\n"</span>);00344                                                 smtpc_changestate(<a class="code" href="smtp__client_8h.html#a14">SMTP_DATAREQ_ACKED</a>);00345                                                 <span class="keywordflow">return</span>(1);00346                                         }00347                                         00348                                         <span class="keywordflow">break</span>;                                                                          00349                                 00350                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a18">SMTP_DATAEND_SENT</a>:00351                                 00352                                         <span class="keywordflow">if</span>(cmd == <a class="code" href="smtp__client_8h.html#a23">SMTP_CMD_OK</a>) {00353                                                 DEBUGOUT(<span class="stringliteral">"CRLF.CRLF Acked by SMTP Server\r\n"</span>);00354                                                 smtpc_changestate(<a class="code" href="smtp__client_8h.html#a19">SMTP_DATAEND_ACKED</a>);00355                                                 <span class="keywordflow">return</span>(1);00356                                         }00357                                         00358                                         <span class="keywordflow">break</span>;                                  00359                                         00360                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a20">SMTP_QUIT_SENT</a>:00361                                 00362                                         <span class="keywordflow">if</span>(cmd == <a class="code" href="smtp__client_8h.html#a25">SMTP_CMD_QUITOK</a>) {00363                                                 DEBUGOUT(<span class="stringliteral">"QUIT Acked by SMTP Server\r\n"</span>);00364                                                 smtpc_changestate(<a class="code" href="smtp__client_8h.html#a21">SMTP_QUIT_ACKED</a>);00365                                                 <span class="keywordflow">return</span>(1);00366                                         }00367                                         00368                                         <span class="keywordflow">break</span>;00369                                         00370                                 <span class="keywordflow">default</span>:00371                                         <span class="keywordflow">break</span>;00372 00373                         00374                         }00375 00376                 00377                         <span class="keywordflow">return</span>(1);00378                 00379                         00380                 <span class="keywordflow">case</span> <a class="code" href="tcp__ip_8h.html#a59">TCP_EVENT_REGENERATE</a>:00381                 00382                         <span class="comment">/* Send last packet again       */</span>00383                 00384                         DEBUGOUT(<span class="stringliteral">"SMTP is regenerating...\r\n"</span>);00385                 00386                         <span class="keywordflow">switch</span> (<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.state) {00387                         00388                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a7">SMTP_HELO_SENT</a>:00389                                         smtpc_sendhelo();00390                                         <span class="keywordflow">return</span>(1);00391                                 00392                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a9">SMTP_MAILFROM_SENT</a>:00393                                         smtpc_sendmailfrom();00394                                         <span class="keywordflow">return</span>(1);00395                                         00396                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a11">SMTP_RCPTTO_SENT</a>:00397                                         smtpc_sendrcptto();00398                                         <span class="keywordflow">return</span>(1);00399                                 00400                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a13">SMTP_DATAREQ_SENT</a>:00401                                         smtpc_senddatareq();00402                                         <span class="keywordflow">return</span>(1);00403                                 00404                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a15">SMTP_BODY_SENT</a>:00405                                         smtpc_sendbody();00406                                         <span class="keywordflow">return</span>(1);      00407                                 00408                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a16">SMTP_SENDING_DATA</a>:00409                                         smtpc_senddata();00410                                         <span class="keywordflow">return</span>(1);00411                                 00412                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a18">SMTP_DATAEND_SENT</a>: 00413                                         smtpc_senddataend();00414                                         <span class="keywordflow">return</span>(1);00415                                 00416                                 <span class="keywordflow">case</span> <a class="code" href="smtp__client_8h.html#a20">SMTP_QUIT_SENT</a>:00417                                         smtpc_sendquit();00418                                         <span class="keywordflow">return</span>(1);00419                                         00420                                 <span class="keywordflow">default</span>:00421                                         <span class="keywordflow">return</span>(-1);00422                         }00423                 00424                 00425                         <span class="keywordflow">break</span>;00426         00427         00428                 <span class="keywordflow">default</span>:00429                         <span class="keywordflow">return</span>(-1);00430         }       00431 00432         <span class="keywordflow">return</span>(-1);00433 00434 }00435 00436 <span class="comment">/********************************************************************************</span>00437 <span class="comment">Function:               smtpc_run</span>00438 <span class="comment"></span>00439 <span class="comment">Parameters:             void    </span>00440 <span class="comment">                                </span>00441 <span class="comment">Return val:             void</span>00442 <span class="comment">                                </span>00443 <span class="comment">Date:                   21.7.2002</span>00444 <span class="comment"></span>00445 <span class="comment">Desc:                   This function is main 'thread' of SMTP client program</span>00446 <span class="comment">                                and should be called periodically when SMTP client is</span>00447 <span class="comment">                                active. This function is responsible of sending commands and</span>00448 <span class="comment">                                data to SMTP server and making callbacks to user function stubs.</span>00449 <span class="comment">*********************************************************************************/</span>00450 00451 00452 <span class="keywordtype">void</span> smtpc_run (<span class="keywordtype">void</span>)00453 {00454         <span class="comment">/* On that function we can send data when called by main loop   */</span>00455         00456         <span class="keywordflow">if</span>( <a class="code" href="smtp__client_8c.html#a0">smtpc_init_done</a> == 0 )00457                 <span class="keywordflow">return</span>;00458         00459         <span class="keywordflow">if</span>( <a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.state &lt; <a class="code" href="smtp__client_8h.html#a3">SMTP_OPEN_REQUESTED</a>)00460                 <span class="keywordflow">return</span>;00461                 00462         <span class="comment">/* Is there timeout of some sort?       */</span>00463                 00464         <span class="keywordflow">if</span>(<a class="code" href="timers_8c.html#a7">check_timer</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.tmrhandle) == 0) {00465                 <span class="comment">/* Yep  */</span>00466                 <a class="code" href="tcp_8c.html#a11">tcp_abort</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.sochandle);00467                 smtpc_changestate(<a class="code" href="smtp__client_8h.html#a2">SMTP_CLOSED</a>);00468                         00469                 <span class="comment">/* Make user callback   */</span>00470                 <a class="code" href="smtpc__callbacks_8c.html#a46">smtpc_error</a>();00471                 <span class="keywordflow">return</span>;00472                 00473         }       00474         00475         <span class="keywordflow">if</span>( <a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.state == <a class="code" href="smtp__client_8h.html#a3">SMTP_OPEN_REQUESTED</a>) {00476                 <span class="comment">/* We are on this state because user has requested connection   */</span>00477                 <span class="comment">/* but connection is not yet opened.                                                    */</span>00478                 <span class="comment">/* Try to get TCP stack to accept our connection request                */</span>00479                 00480                 <a class="code" href="tcp_8c.html#a11">tcp_abort</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.sochandle);       <span class="comment">/* Release old connection       */</span>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -