svnno****@sourc*****
svnno****@sourc*****
2014年 6月 22日 (日) 18:09:09 JST
Revision: 5616 http://sourceforge.jp/projects/ttssh2/scm/svn/commits/5616 Author: yutakapon Date: 2014-06-22 18:09:08 +0900 (Sun, 22 Jun 2014) Log Message: ----------- チケット refs #33822 UTIL_sock_buffered_write 関数にコメントを付与した。 Ticket Links: ------------ http://sourceforge.jp/projects/ttssh2/tracker/detail/33822 Modified Paths: -------------- trunk/ttssh2/ttxssh/util.c -------------- next part -------------- Modified: trunk/ttssh2/ttxssh/util.c =================================================================== --- trunk/ttssh2/ttxssh/util.c 2014-06-21 12:55:55 UTC (rev 5615) +++ trunk/ttssh2/ttxssh/util.c 2014-06-22 09:09:08 UTC (rev 5616) @@ -67,6 +67,20 @@ /* Tera Term\x82\xAA\x93\xAE\x8D삵\x82Ă\xA2\x82\xE9PC\x8F\xE3\x82\xCC X \x83T\x81[\x83o\x83v\x83\x8D\x83O\x83\x89\x83\x80\x82ɑ\xB5\x82āA\x83f\x81[\x83^\x82𑗂\xE9\x81B * \x88\xEA\x93x\x82ő\x97\x82\xEA\x82Ȃ\xA2\x8Fꍇ\x82́A\x83\x8A\x83\x93\x83O\x83o\x83b\x83t\x83@\x82Ɋi\x94[\x82\xB5\x81A\x92x\x89\x84\x94z\x91\x97\x82\xB7\x82\xE9\x81B * + * \x93\xAE\x8D\xEC\x83t\x83\x8D\x81[\x82͉\xBA\x8BL\x82̒ʂ\xE8\x81B + * (1) \x8F\x89\x89\xF1\x82̃f\x81[\x83^\x82\xAA\x93͂\xAD\x81B\x82\xE0\x82\xB5\x82\xAD\x82́A\x83\x8A\x83\x93\x83O\x83o\x83b\x83t\x83@\x82\xAA\x8B\xF3\x81B + * (2) non-blocking\x82ő\x97\x90M\x82\xF0\x8E\x8E\x82݂\xE9\x81B\x91S\x91\x97\x90M\x82ł\xAB\x82\xBD\x82\xE7return\x81B + * (3) \x91\x97\x90M\x82ł\xAB\x82Ȃ\xA9\x82\xC1\x82\xBD\x83f\x81[\x83^\x82̓\x8A\x83\x93\x83O\x83o\x83b\x83t\x83@\x82֊i\x94[\x82\xB5\x81Areturn\x81B + * (4) \x8E\x9F\x82̃f\x81[\x83^\x82\xAA\x93͂\xAD\x81B + * (5) \x83\x8A\x83\x93\x83O\x83o\x83b\x83t\x83@\x82֊i\x94[\x82\xB5\x81Areturn\x81B + * (6) \x8E\x9F\x82̃f\x81[\x83^\x82\xAA\x93͂\xAD\x81B + * (7) \x83\x8A\x83\x93\x83O\x83o\x83b\x83t\x83@\x82\xAA\x83t\x83\x8B\x82ɂȂ\xC1\x82\xBD\x82\xE7\x81A\x83o\x83b\x83t\x83@\x82Ɏc\x82\xC1\x82Ă\xA2\x82\xE9\x83f\x81[\x83^\x82\xF0 blocking \x82ő\x97\x90M\x82\xF0\x8E\x8E\x82݂\xE9\x81B + * \x91\x97\x90M\x8E\xB8\x94s\x82\xB5\x82\xBD\x82\xE7\x81A\x83G\x83\x89\x81[return\x81B + * (8) \x83\x86\x81[\x83U\x83f\x81[\x83^(data/len)\x82̑\x97\x90M\x82\xF0 blocking \x82ő\x97\x90M\x82\xF0\x8E\x8E\x82݂\xE9\x81B + * \x91\x97\x90M\x8E\xB8\x94s\x82\xB5\x82\xBD\x82\xE7\x81A\x83G\x83\x89\x81[return\x81B + * (9) \x91\x97\x90M\x82ł\xAB\x82Ȃ\xA9\x82\xC1\x82\xBD\x83\x86\x81[\x83U\x83f\x81[\x83^\x82̓\x8A\x83\x93\x83O\x83o\x83b\x83t\x83@\x82֊i\x94[\x82\xB5\x81Areturn\x81B + * (10) \x83\x8A\x83\x93\x83O\x83o\x83b\x83t\x83@\x82Ɏc\x82\xC1\x82Ă\xA2\x82\xE9\x83f\x81[\x83^\x82\xF0 non-blocking\x82ő\x97\x90M\x82\xF0\x8E\x8E\x82݂\xE9\x81B + * * pvar: \x8B\xA4\x97L\x83\x8A\x83\\x81[\x83X * buf: \x83\x8A\x83\x93\x83O\x83o\x83b\x83t\x83@ * blocking_write: \x93\xAF\x8A\xFA\x8C^\x82̃p\x83P\x83b\x83g\x91\x97\x90M\x8A\x94 @@ -186,6 +200,19 @@ 2) Write data from user 3) Copy remaining user data into buffer */ + // \x83o\x83b\x83t\x83@\x82\xAA\x82\xA2\x82\xC1\x82ς\xA2\x82ɂȂ\xE8\x81A\x90V\x82\xB5\x82\xA2\x83f\x81[\x83^(data)\x82\xAA\x88\xEC\x82\xEA\x82\xE9\x8Fꍇ\x82\xC9 space_required \x82\xAA\x90\xB3\x82ƂȂ\xE9\x81B + // \x82\xB7\x82Ȃ킿\x81Aspace_required\x82́u\x88\xEC\x82ꂽ\x95\xAA\x81v\x82\xF0\x95\\x82\xB7\x81B + // + // space_required + // <----- buflen -------------><--------> + // buf->bufdata -> +--------------------------+ + // |XXXXXXXXXXXXXXXXX | + // +--------------------------+ + // <----------------><------------------> + // buf->datalen len + // ^ + // | + // buf->datastart space_required = max(0, buf->datalen + len - buf->buflen); amount_to_write_from_buffer = min(buf->datalen, space_required);