2004年4月7日

魔鬼隐藏在细节之中。

-俗语

累~ +_+

18:03 | 评论 (0)

刚才Google时发现又一个很好的Winsock资源站点:

17:48 | 评论 (0)

IDLE 1.0.2
>>> import smtplib
>>> mailer = smtplib.SMTP('xxx.x.xxx.x')
>>> mailer.set_debuglevel(1)
>>> mailer.login('xxxx', 'xxxxxxx')
send: 'ehlo xxxxxx.xxx.com.cn\r\n'
reply: '250-mail.xxx.com.cn Hello xxxxxx.xxx.com.cn, pleased to meet you\r\n'
reply: '250-ETRN\r\n'
reply: '250-AUTH=LOGIN\r\n'
reply: '250-AUTH LOGIN CRAM-MD5\r\n'
reply: '250-8BITMIME\r\n'
reply: '250 SIZE 0\r\n'
reply: retcode (250); Msg: mail.xxx.com.cn Hello xxxxxx.xxx.com.cn, pleased to meet you
ETRN
AUTH=LOGIN
AUTH LOGIN CRAM-MD5
8BITMIME
SIZE 0
send: 'AUTH CRAM-MD5\r\n'
reply: '334 xxx\r\n'
reply: retcode (334); Msg: xxx
send: 'xxx\r\n'
reply: '235 Authentication successful\r\n'
reply: retcode (235); Msg: Authentication successful
(235, 'Authentication successful')
>>> mailer.sendmail('xxxx@mail.xxx.com.cn', 'xxxx@mail.xxx.com.cn', 'Foo')
send: 'mail FROM:<xxxx@mail.xxx.com.cn> size=3\r\n'
reply: '250 <
xxxx@mail.xxx.com.cn>, Sender ok\r\n'
reply: retcode (250); Msg: <
xxxx@mail.xxx.com.cn>, Sender ok
send: 'rcpt TO:<
xxxx@mail.xxx.com.cn>\r\n'
reply: '250 <
xxxx@mail.xxx.com.cn>, Recipient ok\r\n'
reply: retcode (250); Msg: <
xxxx@mail.xxx.com.cn>, Recipient ok
send: 'data\r\n'
reply: '354 Please start mail input.\r\n'
reply: retcode (354); Msg: Please start mail input.
data: (354, 'Please start mail input.')
send: 'Foo\r\n.\r\n'
reply: '250 Mail queued for delivery.\r\n'
reply: retcode (250); Msg: Mail queued for delivery.
data: (250, 'Mail queued for delivery.')
{}
>>> mailer.quit()
send: 'quit\r\n'
reply: '221 Closing connection. Good bye.\r\n'
reply: retcode (221); Msg: Closing connection. Good bye.

注1:我把所有涉及到主机名、用户名、密码、域名、转换后的BASE64串都用x代替了。

注2:quit的时候,邮件才发送出去,因为我看到Norton的邮件扫描了,为什么呢?

17:04 | 评论 (2)

同事刚刚问了我一个问题,和VSS的Branch有关,可惜我没实践过,做个标记先,以后补课。

16:25 | 评论 (0)

Memo

  • Platform SDK Sample: LSP: Treat it as a pluggable system!(Baseline of Evolution)
  • Old Project Code Reuse: CDbgLogger: Test Driven Development!

15:42 | 评论 (0)

从这里开始……

13:18 | 评论 (0)

记下来先~

13:14 | 评论 (0)

看一看一位游戏开发者创办工作室失败的教训,我们能学到什么When game development fails

梦想永远继续。

10:00 | 评论 (0)

2004年4月6日

LSP呀LSP:

  • 用Registry Monitor跟踪,研究出WSCInstallProvider、WSCWriteProviderOrder、WSCDeinstallProvider这些API操作的是注册表的这一项:HKLM\System\CurrentControlSet\Services\WinSock2,备份之。希望出问题后可以从这里恢复。
  • 研究同事找到的另一个基于LSP的UDP过滤器的例子,非常简单-它没有考虑很多复杂的情况,不过是个理解的起点。
  • 继续琢磨平台SDK里的LSP例子,呃~~今天没有运行代码,总感觉什么都没干,呼噜噜~~

18:09 | 评论 (0)

很有趣的漫画:龌龊男骚扰乖乖全记录...!!! 呵呵。

13:04 | 评论 (0)

2004年4月5日

进入技术细节

  • 安装LSP
    • WSCInstallProvider
    • WSCWriteProviderOrder
    • LSASS(Local Security Authentication Server System)
  • 卸载LSP
    • WSCDeinstallProvider
    • LSP over LSP
    • WinXP: WSCUpdateProvider
  • 实现LSP
    • the WSPStartup function
    • tracking socket handles
    • handling the various I/O models
    • handling the Microsoft-specific Winsock extensions
    • a few minor tasks to achieve 100 percent compatibility
  • Domain
    • When WSPStartup to be invoked
    • how many times you can expect your LSP's WSPStartup to be invoked
    • three tasks an LSP must perform within its WSPStartup function:
      • Keep track of how many times WSPStartup has been invoked.
      • Initialize the lpWSPData and lpProcTable parameters.
      • Find its location within the protocol chain and initialize the lower layer(s).
    • WSCGetProviderPath

17:39 | 评论 (0)

中间休息时在域名服务查询大站Whois.Net查了下Gmail.com,看来Google确实是打算涉足邮件服务领域,而且有消息说Google已经澄清这个不是玩笑。

呵呵,我热切期待。

16:39 | 评论 (0)

<<  100 101 102 103 104 105 106 107 108 109 110 

Copyright twinsant.