Esempio n. 1
0
        /// <summary>Initializes a new instance of the <see cref="FileStructureInfo" /> class.</summary>
        /// <param name="fileDescriptor">The file descriptor containing the file structure information.</param>
        public FileStructureInfo(byte fileDescriptor) {
            _fileDescriptor = fileDescriptor;
            _isTransparent = false;
            _isRecord = false;

            // StructureType
            if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_NO_INFO)) {
                _structureType = FileStructureType.NoInformation;
            } else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_TRANSPARENT)) {
                _structureType = FileStructureType.Transparent;
            } else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_FIXED)) {
                _structureType = FileStructureType.LinearFixed;
            } else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_FIXED_TLV)) {
                _structureType = FileStructureType.LinearFixedSimpleTlv;
            } else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_VARIABLE)) {
                _structureType = FileStructureType.LinearVariable;
            } else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_VARIABLE_TLV)) {
                _structureType = FileStructureType.LinearFixedSimpleTlv;
            } else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_CYCLIC)) {
                _structureType = FileStructureType.Cyclic;
            } else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_CYCLIC_TLV)) {
                _structureType = FileStructureType.CyclicSimpleTlv;
            }

            if (_structureType == FileStructureType.Transparent) {
                _isTransparent = true;
            } else if (_structureType != FileStructureType.NoInformation) {
                _isRecord = true;
            }
        }
Esempio n. 2
0
        /// <summary>Initializes a new instance of the <see cref="FileStructureInfo" /> class.</summary>
        /// <param name="fileDescriptor">The file descriptor containing the file structure information.</param>
        public FileStructureInfo(byte fileDescriptor)
        {
            _fileDescriptor = fileDescriptor;
            _isTransparent  = false;
            _isRecord       = false;

            // StructureType
            if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_NO_INFO))
            {
                _structureType = FileStructureType.NoInformation;
            }
            else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_TRANSPARENT))
            {
                _structureType = FileStructureType.Transparent;
            }
            else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_FIXED))
            {
                _structureType = FileStructureType.LinearFixed;
            }
            else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_FIXED_TLV))
            {
                _structureType = FileStructureType.LinearFixedSimpleTlv;
            }
            else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_VARIABLE))
            {
                _structureType = FileStructureType.LinearVariable;
            }
            else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_VARIABLE_TLV))
            {
                _structureType = FileStructureType.LinearFixedSimpleTlv;
            }
            else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_CYCLIC))
            {
                _structureType = FileStructureType.Cyclic;
            }
            else if (_IsSet(_fileDescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_CYCLIC_TLV))
            {
                _structureType = FileStructureType.CyclicSimpleTlv;
            }

            if (_structureType == FileStructureType.Transparent)
            {
                _isTransparent = true;
            }
            else if (_structureType != FileStructureType.NoInformation)
            {
                _isRecord = true;
            }
        }
Esempio n. 3
0
        private string Structure(string structure)
        {
            switch (structure)
            {
            case "F":
                _fileStructureType = FileStructureType.File;
                break;

            case "R":
            case "P":
                return(string.Format("504 STRU not implemented for \"{0}\"", structure));

            default:
                return(string.Format("501 Parameter {0} not recognized", structure));
            }

            return("200 Command OK");
        }
Esempio n. 4
0
        private string Structure(string structure)
        {
            switch (structure)
            {
            case "F":
                _fileStructureType = FileStructureType.File;
                break;

            case "R":
            case "P":
                return(string.Format("504 STRU not implemented for \"{0}\"", structure));

            default:
                return(string.Format("501 Parameter {0} not recognized", structure));
            }

            // eschew 'field assigned but its value is never used' warning
            System.Diagnostics.Debug.WriteLine($"_fileStructureType = {_fileStructureType}");
            return("200 Command OK");
        }
        /// <summary>
        /// STRU Command - RFC 959 - Section 4.1.2
        /// </summary>
        /// <param name="username"></param>
        /// <returns></returns>
        private Response Structure(string structure)
        {
            switch (structure)
            {
                case "F":
                    _fileStructureType = FileStructureType.File;
                    break;
                case "R":
                case "P":
                    return GetResponse(FtpResponses.NOT_IMPLEMENTED_FOR_PARAMETER);
                default:
                    return GetResponse(FtpResponses.PARAMETER_NOT_RECOGNIZED.SetData(structure));
            }

            return GetResponse(FtpResponses.OK);
        }
Esempio n. 6
0
        private string Structure(string structure)
        {
            switch (structure)
            {
                case "F":
                    _fileStructureType = FileStructureType.File;
                    break;
                case "R":
                case "P":
                    return string.Format("504 STRU not implemented for \"{0}\"", structure);
                default:
                    return string.Format("501 Parameter {0} not recognized", structure);
            }

            return "200 Command OK";
        }
Esempio n. 7
0
        protected void UpdateFileInfo()
        {
            _istransparent = false;
            _isrecord = false;

            // StructureType
            if (_IsSet(filedescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_NO_INFO))
                _structuretype = FileStructureType.NoInformation;
            else if (_IsSet(filedescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_TRANSPARENT))
                _structuretype = FileStructureType.Transparent;
            else if (_IsSet(filedescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_FIXED))
                _structuretype = FileStructureType.LinearFixed;
            else if (_IsSet(filedescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_FIXED_TLV))
                _structuretype = FileStructureType.LinearFixedSimpleTlv;
            else if (_IsSet(filedescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_VARIABLE))
                _structuretype = FileStructureType.LinearVariable;
            else if (_IsSet(filedescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_LINEAR_VARIABLE_TLV))
                _structuretype = FileStructureType.LinearFixedSimpleTlv;
            else if (_IsSet(filedescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_CYCLIC))
                _structuretype = FileStructureType.Cyclic;
            else if (_IsSet(filedescriptor, FILE_STRUCTURE_MASK, FILE_STRUCTURE_CYCLIC_TLV))
                _structuretype = FileStructureType.CyclicSimpleTlv;

            // IsTransparent
            if (_structuretype == FileStructureType.Transparent)
                _istransparent = true;
            else
                if (!(_structuretype == FileStructureType.NoInformation))
                    // IsRecord
                    _isrecord = true;
        }