//*************************************************** //SSIを実行する //*************************************************** string SsiJob(SsiKind ssiKind, string param, Encoding encoding) { var tmp = param.Split(new[] { '=' }, 2); if (tmp.Length != 2) { _logger.Set(LogKind.Secure, null, 20, string.Format("param {0}", param));//"パラメータの解釈に失敗しました" return ""; } var tag = tmp[0]; var val = tmp[1].Trim('"'); var ret = false; var str = ""; switch (ssiKind) { case SsiKind.Exec: ret = SsiExec(tag, val, ref str, encoding, _sockTcp); break; case SsiKind.Echo: ret = SsiEcho(tag, val, ref str); break; case SsiKind.Config: ret = SsiConfig(tag, val); break; case SsiKind.Fsize: ret = SsiFsize(tag, val, ref str); break; case SsiKind.Flastmod: ret = SsiFlastmod(tag, val, ref str); break; case SsiKind.Include: ret = SsiInclude(tag, val, ref str, encoding); break; } if (!ret) { _logger.Set(LogKind.Secure, null, 21, string.Format("{0}=\"{1}\"", tag, val)); return ""; } _logger.Set(LogKind.Detail, null, 17, string.Format("{0} {1} -> {2}", ssiKind, param, str));//"exec SSI // //Ver5.9.1 CGI出力だけ、ヘッダ処理する // if (ssiKind != SsiKind.Include){ // //Ver5.4.8 // //SSI用のCGI出力からヘッダ情報を削除する // var lines = str.Split('\n').ToList(); // var index = lines.IndexOf("\r"); // if (index != -1) { // var sb = new StringBuilder(); // for (int i = index + 1; i < lines.Count(); i++) { // sb.Append(lines[i] + "\n"); // } // str = sb.ToString(); // } // } return str; }
//*************************************************** //SSIを実行する //*************************************************** string SsiJob(SsiKind ssiKind, string param, Encoding encoding) { var tmp = param.Split(new[] { '=' }, 2); if (tmp.Length != 2) { _logger.Set(LogKind.Secure, null, 20, string.Format("param {0}", param));//"パラメータの解釈に失敗しました" return(""); } var tag = tmp[0]; var val = tmp[1].Trim('"'); var ret = false; var str = ""; switch (ssiKind) { case SsiKind.Exec: ret = SsiExec(tag, val, ref str, encoding, _sockTcp); break; case SsiKind.Echo: ret = SsiEcho(tag, val, ref str); break; case SsiKind.Config: ret = SsiConfig(tag, val); break; case SsiKind.Fsize: ret = SsiFsize(tag, val, ref str); break; case SsiKind.Flastmod: ret = SsiFlastmod(tag, val, ref str); break; case SsiKind.Include: ret = SsiInclude(tag, val, ref str, encoding); break; } if (!ret) { _logger.Set(LogKind.Secure, null, 21, string.Format("{0}=\"{1}\"", tag, val)); return(""); } _logger.Set(LogKind.Detail, null, 17, string.Format("{0} {1} -> {2}", ssiKind, param, str));//"exec SSI // //Ver5.9.1 CGI出力だけ、ヘッダ処理する // if (ssiKind != SsiKind.Include){ // //Ver5.4.8 // //SSI用のCGI出力からヘッダ情報を削除する // var lines = str.Split('\n').ToList(); // var index = lines.IndexOf("\r"); // if (index != -1) { // var sb = new StringBuilder(); // for (int i = index + 1; i < lines.Count(); i++) { // sb.Append(lines[i] + "\n"); // } // str = sb.ToString(); // } // } return(str); }