Example #1
0
 public BaseOpaqueDataOption(opaqueDataOptionType opaqueDataOption) :
     base()
 {
     if (((opaqueDataOption != null) &&
          (opaqueDataOption.opaqueData != null)))
     {
         this.opaqueData = new BaseOpaqueData(opaqueDataOption.opaqueData);
     }
     else
     {
         this.opaqueData = new BaseOpaqueData();
     }
 }
        /**
         * Matches.
         *
         * @param expression the expression
         * @param myOpaque the my opaque
         *
         * @return true, if successful
         */
        public static bool Matches(optionExpression expression, BaseOpaqueData myOpaque)
        {
            if (expression == null)
            {
                return(false);
            }

            opaqueDataOptionType opaqueOption = (opaqueDataOptionType)expression.Item;

            if (opaqueOption == null)
            {
                return(false);
            }

            @operator op = expression.@operator;

            return(Matches(myOpaque, opaqueOption.opaqueData, op));
        }
        public bool Matches(optionExpression expression)
        {
            if (expression == null)
            {
                return(false);
            }
            if (expression.code != this.code)
            {
                return(false);
            }

            unsignedShortOptionType exprOption = (unsignedShortOptionType)expression.Item;

            if (exprOption != null)
            {
                int       exprUshort = exprOption.unsignedShort;
                @operator op         = expression.@operator;
                if (op.Equals(@operator.equals))
                {
                    return(unsignedShort == exprUshort);
                }
                else if (op.Equals(@operator.lessThan))
                {
                    return(unsignedShort < exprUshort);
                }
                else if (op.Equals(@operator.lessThanOrEqual))
                {
                    return(unsignedShort <= exprUshort);
                }
                else if (op.Equals(@operator.greaterThan))
                {
                    return(unsignedShort > exprUshort);
                }
                else if (op.Equals(@operator.greaterThanOrEqual))
                {
                    return(unsignedShort >= exprUshort);
                }
                else
                {
                    log.Warn("Unsupported expression operator: " + op);
                }
            }

            // then see if we have an opaque option
            opaqueDataOptionType opaqueOption = (opaqueDataOptionType)expression.Item;

            if (opaqueOption != null)
            {
                opaqueData opaque = opaqueOption.opaqueData;
                if (opaque != null)
                {
                    string ascii = opaque.asciiValue;
                    if (ascii != null)
                    {
                        try
                        {
                            // need an Integer to handle unsigned short
                            if (unsignedShort == int.Parse(ascii))
                            {
                                return(true);
                            }
                        }
                        catch (Exception ex)
                        {
                            log.Error("Invalid unsigned short ASCII value for OpaqueData: " + ascii);
                        }
                    }
                    else
                    {
                        byte[] hex = opaque.hexValue;
                        if ((hex != null) &&
                            (hex.Length >= 1) && (hex.Length <= 2))
                        {
                            int hexUnsignedShort = Convert.ToInt32(Util.ToHexString(hex), 16);
                            if (unsignedShort == hexUnsignedShort)
                            {
                                return(true);
                            }
                        }
                    }
                }
            }
            return(false);
        }
Example #4
0
 public DhcpUnknownOption(opaqueDataOptionType unknownOption) : base(unknownOption)
 {
 }
Example #5
0
 /**
  * Instantiates a new generic opaque opaqueData option.
  *
  * @param code the option code
  * @param name the option name
  * @param opaqueDataOption the opaque opaqueData option
  */
 public GenericOpaqueDataOption(int code, string name,
                                opaqueDataOptionType opaqueDataOption) : base(opaqueDataOption)
 {
     SetCode(code);
     SetName(name);
 }