Example #1
0
        //----
        #region Create & Serialize methods
        public override EndPoint Create(SocketAddress socketAddress)
        {
            Dump("BzL2Ep.Create IN", socketAddress);
            if (socketAddress.Family != AddressFamily)
            {
                throw new ArgumentException("Wrong AddressFamily.");
            }
            if (socketAddress.Size < SaLen)
            {
                throw new ArgumentException("Too short sockaddr_l2 expected at least "
                                            + SaLen + ", but was: " + socketAddress.Size + ".");
            }
            byte[] tmpArr;
            //
            tmpArr = CopyFromSa(socketAddress, PsmOffset, PsmLength);
            var tmpI16 = BitConverter.ToInt16(tmpArr, 0);
            //tmpI16 = IPAddress.NetworkToHostOrder(tmpI16);
            var psm = unchecked ((UInt16)tmpI16);

            //
            tmpArr = CopyFromSa(socketAddress, AddrOffset, 6);
            //
            var addr = BluetoothAddress.CreateFromLittleEndian(tmpArr);
            var ep   = new BluezL2capEndPoint(addr, psm);

            return(ep);
        }
Example #2
0
        public override SocketAddress Serialize()
        {
            var sa = new SocketAddress(AddressFamily, SaLen);

            byte[] tmpArr;
            //
            var scnByte = checked ((byte)Port);

            tmpArr = BitConverter.GetBytes(scnByte);
            BluezL2capEndPoint.CopyToSa(tmpArr, sa, ScnOffset);
            //
            tmpArr = Address.ToByteArrayLittleEndian();
            BluezL2capEndPoint.CopyToSa(tmpArr, sa, AddrOffset);
            //
            return(sa);
        }
Example #3
0
        internal static BluezL2capEndPoint CreateBindEndPoint(BluetoothEndPoint serverEP)
        {
            int port;

            // Win32 uses -1 for 'auto assign' but BlueZ uses 0.
            if (serverEP.Port == -1)   // TODO ! Test on L2CAP
            {
                port = 0;
                //TODO } else if (serverEP.Port > BluetoothEndPoint.MaxScn PSM!!) {
                //    // BlueZ doesn't complain in this case!  Do't know what it does...
                //    throw new SocketException((int)SocketError.AddressNotAvailable);
            }
            else
            {
                port = serverEP.Port;
            }
            var l2capEp = new BluezL2capEndPoint(serverEP.Address, port);

            return(l2capEp);
        }
Example #4
0
        //----
        #region Create & Serialize methods
        #region Create & Serialize methods
        public override EndPoint Create(SocketAddress socketAddress)
        {
            if (socketAddress.Family != AddressFamily)
            {
                throw new ArgumentException("Wrong AddressFamily.");
            }
            byte[] tmpArr;
            //
            tmpArr = BluezL2capEndPoint.CopyFromSa(socketAddress, ScnOffset, ScnLength);
            var tmpByte = tmpArr[0];
            var psm     = tmpByte;

            //
            tmpArr = BluezL2capEndPoint.CopyFromSa(socketAddress, AddrOffset, 6);
            //
            var addr = BluetoothAddress.CreateFromLittleEndian(tmpArr);
            var ep   = new BluezL2capEndPoint(addr, psm);

            return(ep);
        }
Example #5
0
        //----
        protected override BluetoothEndPoint PrepareBindEndPoint(BluetoothEndPoint serverEP)
        {
            var l2capEp = BluezL2capEndPoint.CreateBindEndPoint(serverEP);

            return(l2capEp);
        }
 protected override BluetoothEndPoint PrepareBindEndPoint(BluetoothEndPoint serverEP)
 {
     Console.WriteLine("Calling BluezL2capEndPoint.CreateBindEndPoint");
     return(BluezL2capEndPoint.CreateBindEndPoint(serverEP));
 }
 //----
 protected BluetoothEndPoint PrepareConnectEndPoint(BluetoothEndPoint serverEP)
 {
     Console.WriteLine("Calling BluezL2capEndPoint.CreateConnectEndPoint");
     return(BluezL2capEndPoint.CreateConnectEndPoint(serverEP));
 }