コード例 #1
0
ファイル: Ssi.cs プロジェクト: jsakamoto/bjd5
        //***************************************************
        //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;
        }
コード例 #2
0
ファイル: Ssi.cs プロジェクト: schifflee/bjd5
        //***************************************************
        //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);
        }