📄 smtp__client_8c-source.html
字号:
00699 00700 *buf++ = <span class="charliteral">'R'</span>;00701 *buf++ = <span class="charliteral">'C'</span>;00702 *buf++ = <span class="charliteral">'P'</span>;00703 *buf++ = <span class="charliteral">'T'</span>;00704 *buf++ = <span class="charliteral">' '</span>; 00705 *buf++ = <span class="charliteral">'T'</span>;00706 *buf++ = <span class="charliteral">'O'</span>;00707 *buf++ = <span class="charliteral">':'</span>;00708 *buf++ = <span class="charliteral">' '</span>;00709 *buf++ = <span class="charliteral">'<'</span>; 00710 00711 i = <a class="code" href="smtpc__callbacks_8c.html#a4">smtpc_getreceiver</a>(buf);00712 00713 <span class="keywordflow">if</span>(i < 0)00714 <span class="keywordflow">return</span>;00715 00716 buf += i; 00717 00718 <span class="comment">/* Insert >CRLF */</span>00719 00720 *buf++ = <span class="charliteral">'>'</span>;00721 *buf++ = <span class="charliteral">'\r'</span>;00722 *buf = <span class="charliteral">'\n'</span>;00723 00724 00725 <a class="code" href="tcp_8c.html#a7">tcp_send</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.sochandle, &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>, i + 13);00726 00727 }00728 00729 <span class="keywordtype">void</span> smtpc_senddatareq (<span class="keywordtype">void</span>)00730 {00731 UINT8* buf;00732 00733 <span class="comment">/* Fill TCP Tx buffer with "DATA" and send to SMTP server */</span>00734 00735 buf = &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>];00736 00737 *buf++ = <span class="charliteral">'D'</span>;00738 *buf++ = <span class="charliteral">'A'</span>;00739 *buf++ = <span class="charliteral">'T'</span>;00740 *buf++ = <span class="charliteral">'A'</span>;00741 00742 <span class="comment">/* Insert CRLF */</span>00743 00744 *buf++ = <span class="charliteral">'\r'</span>;00745 *buf = <span class="charliteral">'\n'</span>;00746 00747 <a class="code" href="tcp_8c.html#a7">tcp_send</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.sochandle, &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>, 6);00748 00749 }00750 00751 <span class="keywordtype">void</span> smtpc_sendbody (<span class="keywordtype">void</span>)00752 {00753 UINT8* buf;00754 INT8 i;00755 UINT8 j;00756 00757 <span class="comment">/* Fill TCP Tx buffer with RFC 822 body and send to SMTP server */</span>00758 00759 j = 0;00760 buf = &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>];00761 00762 *buf++ = <span class="charliteral">'T'</span>;00763 *buf++ = <span class="charliteral">'o'</span>;00764 *buf++ = <span class="charliteral">':'</span>;00765 *buf++ = <span class="charliteral">' '</span>;00766 00767 i = <a class="code" href="smtpc__callbacks_8c.html#a4">smtpc_getreceiver</a>(buf);00768 00769 <span class="keywordflow">if</span>(i < 0)00770 <span class="keywordflow">return</span>;00771 00772 buf += i; 00773 00774 j += i;00775 00776 <span class="comment">/* Insert CRLF */</span>00777 00778 *buf++ = <span class="charliteral">'\r'</span>;00779 *buf++ = <span class="charliteral">'\n'</span>;00780 00781 *buf++ = <span class="charliteral">'S'</span>;00782 *buf++ = <span class="charliteral">'u'</span>;00783 *buf++ = <span class="charliteral">'b'</span>;00784 *buf++ = <span class="charliteral">'j'</span>;00785 *buf++ = <span class="charliteral">'e'</span>;00786 *buf++ = <span class="charliteral">'c'</span>;00787 *buf++ = <span class="charliteral">'t'</span>;00788 *buf++ = <span class="charliteral">':'</span>;00789 *buf++ = <span class="charliteral">' '</span>;00790 00791 i = <a class="code" href="smtpc__callbacks_8c.html#a5">smtpc_getsubject</a>(buf);00792 00793 <span class="keywordflow">if</span>(i < 0)00794 <span class="keywordflow">return</span>;00795 00796 buf += i;00797 00798 j += i;00799 00800 <span class="comment">/* Insert CRLF */</span>00801 00802 *buf++ = <span class="charliteral">'\r'</span>;00803 *buf++ = <span class="charliteral">'\n'</span>; 00804 00805 *buf++ = <span class="charliteral">'F'</span>;00806 *buf++ = <span class="charliteral">'r'</span>;00807 *buf++ = <span class="charliteral">'o'</span>;00808 *buf++ = <span class="charliteral">'m'</span>;00809 *buf++ = <span class="charliteral">':'</span>;00810 *buf++ = <span class="charliteral">' '</span>;00811 00812 i = <a class="code" href="smtpc__callbacks_8c.html#a3">smtpc_getsender</a>(buf);00813 00814 <span class="keywordflow">if</span>(i < 0)00815 <span class="keywordflow">return</span>;00816 00817 buf += i;00818 00819 j += i;00820 00821 <span class="comment">/* Insert CRLF */</span>00822 00823 *buf++ = <span class="charliteral">'\r'</span>;00824 *buf++ = <span class="charliteral">'\n'</span>; 00825 00826 <span class="comment">/* Insert emty row */</span>00827 00828 *buf++ = <span class="charliteral">'\r'</span>;00829 *buf = <span class="charliteral">'\n'</span>;00830 00831 <a class="code" href="tcp_8c.html#a7">tcp_send</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.sochandle, &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>, j + 27);00832 00833 }00834 00835 00836 <span class="keywordtype">void</span> smtpc_senddataend (<span class="keywordtype">void</span>)00837 {00838 UINT8* buf;00839 00840 <span class="comment">/* Fill TCP Tx buffer with CRLF.CRLF and send to SMTP server */</span>00841 00842 buf = &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>];00843 00844 *buf++ = <span class="charliteral">'\r'</span>;00845 *buf++ = <span class="charliteral">'\n'</span>;00846 *buf++ = <span class="charliteral">'.'</span>;00847 *buf++ = <span class="charliteral">'\r'</span>;00848 *buf = <span class="charliteral">'\n'</span>;00849 00850 <a class="code" href="tcp_8c.html#a7">tcp_send</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.sochandle, &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>, 5);00851 00852 }00853 00854 00855 <span class="keywordtype">void</span> smtpc_sendquit (<span class="keywordtype">void</span>)00856 {00857 UINT8* buf;00858 00859 <span class="comment">/* Fill TCP Tx buffer with "QUIT" and send to SMTP server */</span>00860 00861 buf = &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>];00862 00863 *buf++ = <span class="charliteral">'Q'</span>;00864 *buf++ = <span class="charliteral">'U'</span>;00865 *buf++ = <span class="charliteral">'I'</span>;00866 *buf++ = <span class="charliteral">'T'</span>;00867 00868 <span class="comment">/* Insert CRLF */</span>00869 00870 *buf++ = <span class="charliteral">'\r'</span>;00871 *buf = <span class="charliteral">'\n'</span>;00872 00873 <a class="code" href="tcp_8c.html#a7">tcp_send</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.sochandle, &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>, 6);00874 00875 }00876 00877 00878 INT16 smtpc_senddata (<span class="keywordtype">void</span>)00879 {00880 00881 INT16 len;00882 00883 <span class="comment">/* Use callback smtpc_getdata in order to fill Tx buffer with user data */</span>00884 <span class="comment">/* Normally user callback should return number of bytes assembled but */</span>00885 <span class="comment">/* when end of data is reached no bytes are written but (-1) returned */</span>00886 00887 len = <a class="code" href="smtpc__callbacks_8c.html#a6">smtpc_getdata</a>(&net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>);00888 00889 <span class="keywordflow">if</span>(len < 0)00890 <span class="keywordflow">return</span>(-1);00891 00892 <span class="keywordflow">if</span>(len > 0) 00893 <a class="code" href="tcp_8c.html#a7">tcp_send</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.sochandle, &net_buf[<a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>], <a class="code" href="group__opentcp__config.html#a4">NETWORK_TX_BUFFER_SIZE</a> - <a class="code" href="tcp__ip_8h.html#a61">TCP_APP_OFFSET</a>, (UINT16)len);00894 00895 <span class="keywordflow">return</span>(len);00896 00897 }00898 00899 <span class="keywordtype">void</span> smtpc_changestate (UINT8 nstate)00900 {00901 00902 <a class="code" href="timers_8c.html#a6">init_timer</a>(<a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.tmrhandle, <a class="code" href="smtp__client_8h.html#a0">SMTPC_TOUT</a>*<a class="code" href="timers_8h.html#a1">TIMERTIC</a>);00903 <a class="code" href="smtp__client_8c.html#a8">smtp_client</a>.state = nstate;00904 00905 }00906 00907 </pre></div><hr><address style="align: right;"><small>Generated on Sun Aug 3 20:33:00 2003 for OpenTCP by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -