Develop and Download Open Source Software

Browse Subversion Repository

Diff of /branches/ssh_chacha20poly1305/ttssh2/ttxssh/ttxssh.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 6286 by yutakapon, Mon Feb 1 15:14:14 2016 UTC revision 6302 by yutakapon, Sat Feb 13 14:52:14 2016 UTC
# Line 980  void logprintf(PTInstVar pvar, int level Line 980  void logprintf(PTInstVar pvar, int level
980          }          }
981  }  }
982    
983    static void format_line_hexdump(char *buf, int buflen, int addr, int *bytes, int byte_cnt)
984    {
985            int i, c;
986            char tmp[128];
987    
988            buf[0] = 0;
989    
990            /* 先頭のアドレス表示 */
991            _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "%08X : ", addr);
992            strncat_s(buf, buflen, tmp, _TRUNCATE);
993    
994            /* バイナリ表示(4バイトごとに空白を挿入)*/
995            for (i = 0; i < byte_cnt; i++) {
996                    if (i > 0 && i % 4 == 0) {
997                            strncat_s(buf, buflen, " ", _TRUNCATE);
998                    }
999    
1000                    _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "%02X", bytes[i]);
1001                    strncat_s(buf, buflen, tmp, _TRUNCATE);
1002            }
1003    
1004            /* ASCII表示部分までの空白を補う */
1005            _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "   %*s%*s", (16 - byte_cnt) * 2 + 1, " ", (16 - byte_cnt + 3) / 4, " ");
1006            strncat_s(buf, buflen, tmp, _TRUNCATE);
1007    
1008            /* ASCII表示 */
1009            for (i = 0; i < byte_cnt; i++) {
1010                    c = bytes[i];
1011                    if (isprint(c)) {
1012                            _snprintf_s(tmp, sizeof(tmp), _TRUNCATE, "%c", c);
1013                            strncat_s(buf, buflen, tmp, _TRUNCATE);
1014                    }
1015                    else {
1016                            strncat_s(buf, buflen, ".", _TRUNCATE);
1017                    }
1018            }
1019    
1020            //strncat_s(buf, buflen, "\n", _TRUNCATE);
1021    }
1022    
1023    void logprintf_hexdump(PTInstVar pvar, int level, char *data, int len, char *fmt, ...)
1024    {
1025            char buff[4096];
1026            va_list params;
1027            int c, addr;
1028            int bytes[16], *ptr;
1029            int byte_cnt;
1030            int i;
1031    
1032            if (level <= pvar->session_settings.LogLevel) {
1033                    va_start(params, fmt);
1034                    vsnprintf_s(buff, sizeof(buff), _TRUNCATE, fmt, params);
1035                    va_end(params);
1036    
1037                    notify_verbose_message(pvar, buff, level);
1038    
1039                    addr = 0;
1040                    byte_cnt = 0;
1041                    ptr = bytes;
1042                    for (i = 0; i < len; i++) {
1043                            c = data[i];
1044                            *ptr++ = c & 0xff;
1045                            byte_cnt++;
1046    
1047                            if (byte_cnt == 16) {
1048                                    format_line_hexdump(buff, sizeof(buff), addr, bytes, byte_cnt);
1049                                    notify_verbose_message(pvar, buff, level);
1050    
1051                                    addr += 16;
1052                                    byte_cnt = 0;
1053                                    ptr = bytes;
1054                            }
1055                    }
1056    
1057                    if (byte_cnt > 0) {
1058                            format_line_hexdump(buff, sizeof(buff), addr, bytes, byte_cnt);
1059                            notify_verbose_message(pvar, buff, level);
1060                    }
1061            }
1062    }
1063    
1064  static void PASCAL FAR TTXOpenTCP(TTXSockHooks FAR * hooks)  static void PASCAL FAR TTXOpenTCP(TTXSockHooks FAR * hooks)
1065  {  {
1066          if (pvar->settings.Enabled) {          if (pvar->settings.Enabled) {

Legend:
Removed from v.6286  
changed lines
  Added in v.6302

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26