Esempio n. 1
0
        private bool ReadFragments()
        {
            if (Header.HasFlag(PacketHeaderFlags.BlobFragments))
            {
                while (DataReader.BaseStream.Position != DataReader.BaseStream.Length)
                {
                    try
                    {
                        var fragment = new ClientPacketFragment();
                        if (!fragment.Unpack(DataReader))
                        {
                            return(false);
                        }

                        Fragments.Add(fragment);
                    }
                    catch (Exception)
                    {
                        // corrupt packet
                        return(false);
                    }
                }
            }

            return(true);
        }
Esempio n. 2
0
 public void CreateFragments(int count = 1)
 {
     for (int i = 0; i < count; i++)
     {
         Fragments.Add(new Fragment());
     }
 }
        private async void GetDrawerInfo()
        {
            var profile = await _profileDrawerControllerService.GetUserProfile();

            RunOnUiThread(() =>
            {
                if (profile != null)
                {
                    //set up profile picture, logout button and favorites if the user is logged in
                    LoggedIn = true;
                    NavView.FindViewById(Resource.Id.drawerNonAuthenticatedHeader).Visibility = ViewStates.Gone;
                    NavView.FindViewById(Resource.Id.drawerLogout).Visibility = ViewStates.Visible;
                    var authHeader        = NavView.FindViewById(Resource.Id.drawerAuthenticatedHeader);
                    authHeader.Visibility = ViewStates.Visible;
                    Picasso.With(this).Load(profile.ProfileImageUrl)
                    .Into(authHeader.FindViewById <ImageView>(Resource.Id.drawerAuthenticatedHeader_Avatar));

                    authHeader.Tag = profile.ProfileId;
                    authHeader.SetOnClickListener(this);

                    authHeader.FindViewById <TextView>(Resource.Id.drawerUser_Fullname).Text =
                        profile.ProfileFirstName + " " + profile.ProfileLastName;
                    authHeader.FindViewById <TextView>(Resource.Id.drawerUser_Handle).Text = profile.ProfileHandle;

                    //Setting up auth tab layout
                    //MainTabLayout.Visibility = ViewStates.Visible;
                    Fab.Visibility = ViewStates.Visible;
                    //TODO: Change these to real fragments later
                    if (Fragments.Count == 1)
                    {
                        Fragments.Add(NotificationFragment.NewInstance());
                        Fragments.Add(NotificationFragment.NewInstance());
                    }
                    MainFragAdapter.NotifyDataSetChanged();
                    SetTabIcons();
                }
                else
                {
                    //set up icon and hide tab layout when user is not logged in
                    LoggedIn       = false;
                    Fab.Visibility = ViewStates.Gone;
                    NavView.FindViewById(Resource.Id.drawerLogout).Visibility = ViewStates.Gone;
                    NavView.FindViewById(Resource.Id.drawerNonAuthenticatedHeader).Visibility = ViewStates.Visible;
                    NavView.FindViewById(Resource.Id.drawerAuthenticatedHeader).Visibility    = ViewStates.Gone;

                    NavView.FindViewById <ImageView>(Resource.Id.drawerNonAuthenticatedHeader_Avatar)
                    .SetImageDrawable(
                        ViewUtil.GetSVGDrawable(this, "profile_empty", 200, Resource.Color.Upward_dark_grey));


                    MainTabLayout.Visibility = ViewStates.Gone;
                }
                PreferenceManager.GetDefaultSharedPreferences(ApplicationContext).Edit()
                .PutBoolean(Constants.PREF_SIGNED_IN_KEY, LoggedIn).Commit();
            });
        }
Esempio n. 4
0
 private void ReadFragments()
 {
     if (Header.HasFlag(PacketHeaderFlags.BlobFragments))
     {
         while (Payload.BaseStream.Position != Payload.BaseStream.Length)
         {
             Fragments.Add(new ClientPacketFragment(Payload));
         }
     }
 }
Esempio n. 5
0
 public void AddFragment(SupportFragment fragment, string name)
 {
     try
     {
         Fragments.Add(fragment);
         FragmentNames.Add(name);
     }
     catch (Exception exception)
     {
         Crashes.TrackError(exception);
     }
 }
Esempio n. 6
0
 public void AddFragment(SupportFragment fragment, string name)
 {
     try
     {
         Fragments.Add(fragment);
         FragmentNames.Add(name);
     }
     catch (Exception exception)
     {
         Methods.DisplayReportResultTrack(exception);
     }
 }
Esempio n. 7
0
 public void AddFragment(SupportFragment fragment, string name)
 {
     try
     {
         Fragments.Add(fragment);
         FragmentNames.Add(name);
     }
     catch (Exception e)
     {
         Console.WriteLine(e);
     }
 }
Esempio n. 8
0
        /// <summary>
        /// Pushes the fragment onto the view stack.
        /// </summary>
        /// <param name="fragment">The fragment.</param>
        public void PushFragment(CrexBaseFragment fragment)
        {
            var oldFragment = Fragments.LastOrDefault();
            var tx          = FragmentManager.BeginTransaction();

            tx.SetCustomAnimations(global::Android.Resource.Animator.FadeIn, global::Android.Resource.Animator.FadeOut, global::Android.Resource.Animator.FadeIn, global::Android.Resource.Animator.FadeOut);
            tx.Add(global::Android.Resource.Id.Content, fragment);
            Fragments.Add(fragment);

            InFragmentTransition = true;
            tx.Commit();
        }
Esempio n. 9
0
 private void ReadFragments()
 {
     if (Header.HasFlag(PacketHeaderFlags.BlobFragments))
     {
         while (Payload.BaseStream.Position != Payload.BaseStream.Length)
         {
             try
             {
                 Fragments.Add(new ClientPacketFragment(Payload));
             }
             catch (Exception)
             {
                 // corrupt packet
                 IsValid = false;
                 break;
             }
         }
     }
 }
        private void MainActivity_OnCreate(object sender, EventArgs e)
        {
            try
            {
                Accounts = new Accounts(
                    Path.Combine(DataDir.AbsolutePath, "accounts"),
                    CacheDir.AbsolutePath
                    );
            }
            catch (Exception ex)
            {
                ShowError(ex);
            }

            _navbar = FindViewById <BottomNavigationView>(Resource.Id.main_navbar);
            _navbar.NavigationItemSelected += Navbar_NavigationItemSelected;

            Fragments.Add(new AccountsFragment());
            Fragments.Add(new SettingsFragment());
        }
Esempio n. 11
0
        public void CreatFragment()
        {
            int widthThird  = (int)((double)_img.Width / 3.0 + 0.5);
            int heightThird = (int)((double)_img.Height / 3.0 + 0.5);

            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    var      bmp   = new Bitmap(widthThird, heightThird);
                    Graphics graph = Graphics.FromImage(bmp);
                    graph.DrawImage(_img, new Rectangle(0, 0, widthThird, heightThird), new Rectangle(j * widthThird, i * heightThird, widthThird, heightThird), GraphicsUnit.Pixel);

                    Fragments.Add(new Model.Fragment()
                    {
                        Name = "рис " + (i + j).ToString(), I = i, J = j, Pic = bmp
                    });

                    graph.Dispose();
                }
            }
        }
Esempio n. 12
0
        public void MergeFieldAndFragment()
        {
            var fragment          = new FragmentDefinition(new NameNode("fragment"));
            var fragmentSelection = new SelectionSet();

            fragmentSelection.Add(FirstTestField);
            fragment.SelectionSet = fragmentSelection;
            fragment.Type         = new GraphQL.Language.AST.NamedType(
                new NameNode("Person"));

            var fragments = new Fragments();

            fragments.Add(fragment);

            var schema = new Schema();

            schema.RegisterType(new PersonType());

            var context = new ExecutionContext
            {
                Fragments = fragments,
                Schema    = schema
            };

            var fragSpread     = new FragmentSpread(new NameNode("fragment"));
            var outerSelection = new SelectionSet();

            outerSelection.Add(fragSpread);
            outerSelection.Add(SecondTestField);

            var fields = ExecutionHelper.CollectFields(
                context,
                new PersonType(),
                outerSelection);

            fields.ShouldHaveSingleItem();
            fields["test"].SelectionSet.Selections.ShouldContain(x => x.IsEqualTo(FirstInnerField));
            fields["test"].SelectionSet.Selections.ShouldContain(x => x.IsEqualTo(SecondInnerField));
        }
Esempio n. 13
0
 public void AddFragment(SupportFragment fragment, string name)
 {
     Fragments.Add(fragment);
     FragmentNames.Add(name);
 }
Esempio n. 14
0
        public void Unpack(BinaryReader reader)
        {
            var bytesRemaining = reader.BytesRemaining();

            log.DebugFormat("Unpack bytes: {0}", bytesRemaining);
            log.Assert(bytesRemaining >= PacketHeaderSize, "Packet size too small");
            log.Assert(bytesRemaining <= MaxPacketSize, "Packet size too big");

            SeqID     = reader.ReadUInt32();
            Header    = (PacketHeaderFlags)reader.ReadUInt32();
            Checksum  = reader.ReadUInt32();
            RecId     = reader.ReadUInt16();
            Interval  = reader.ReadUInt16();
            DataLen   = reader.ReadUInt16();
            Iteration = reader.ReadUInt16();

            log.DebugFormat("SeqID: {0}, Header: {1}, Checksum {2}, RecId: {3}, Interval {4}, DataLen: {5}, Iteration: {6}", SeqID, Header, Checksum, RecId, Interval, DataLen, Iteration);

            bytesRemaining = reader.BytesRemaining();
#if NETWORKVALIDATION
            log.Assert(bytesRemaining == DataLen, "Size of reader " + DataLen + " does not equal packet length: " + bytesRemaining);
#endif

            if ((Header & PacketHeaderFlags.ServerSwitch) != 0)
            {
                ServerSwitchData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.Referral) != 0)
            {
                ReferralData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.NegativeAck) != 0)
            {
                NegativeAckData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.EmptyAck) != 0)
            {
                EmptyAckData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.PositiveAck) != 0)
            {
                PositiveAckData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.LoginRequest) != 0)
            {
                LoginRequestData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.ServerSwitchRequest) != 0)
            {
                ServerSwitchRequestData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.ConnectRequest) != 0)
            {
                ConnectRequestData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.ConnectResponse) != 0)
            {
                ConnectResponseData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.NetError) != 0)
            {
                NetErrorData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.CloseConnection) != 0)
            {
                CloseConnectionData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.CICMDCommand) != 0)
            {
                CicmdData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.TimeSync) != 0)
            {
                TimeSyncData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.EchoRequest) != 0)
            {
                EchoRequestData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.EchoResponse) != 0)
            {
                EchoResponseData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.Flow) != 0)
            {
                FlowData.Unpack(reader);
            }
            if ((Header & PacketHeaderFlags.BlobFragments) != 0)
            {
                log.Debug("Reading Blob Fragments");
                Fragments.Clear();
                bytesRemaining = reader.BytesRemaining();
                uint fragNum = 0;
                while (bytesRemaining >= 16)
                {
                    log.DebugFormat("Bytes Remaining: {0}", bytesRemaining);
                    BlobFrag newItem = new BlobFrag(reader);
#if NETWORKDEBUG
                    newItem.NetworkPacketNum   = NetworkPacketNum;
                    newItem.NetworkFragmentNum = ++fragNum;
#endif
                    Fragments.Add(newItem);
                    bytesRemaining = reader.BytesRemaining();
                }
#if NETWORKVALIDATION
                log.Assert(bytesRemaining == 0, "Bytes still remaining in packet: " + bytesRemaining);
#endif
            }
        }
Esempio n. 15
0
 public void AddFragmentFile(string file)
 {
     Fragments.Add(File.ReadAllText(file));
 }
Esempio n. 16
0
        /// <summary>
        /// Takes one or more packets as a byte array, validates they match source/destination IP and protocol,
        ///   and stores them for defragmentation processing.
        /// </summary>
        /// <param name="buffer">byte array containing packet data</param>
        /// <param name="size">usable length of byte array - must be less than its allocated length.</param>
        public unsafe void FilterAndStoreData(byte[] buffer, int size)
        {
            int offset = 0;

            if (buffer == null || buffer.Length == 0)
            {
                return;
            }

            if (buffer.Length < size)
            {
                Trace.WriteLine("IPDecoder: Buffer length is less than specified size.  Size=[" + size.ToString() + "], Length=[" + buffer.Length + "]", "DEBUG-MACHINA");
                return;
            }

            fixed(byte *ptr = buffer)
            {
                while (offset < size - sizeof(IPv4Header))
                {
                    // first four bits (network order) of IPv4 and IPv6 is the protocol version
                    byte version = (byte)((ptr + offset)[0] >> 4);
                    if (version == 6)
                    {
                        // TODO: IP6 packets, and mixed IP4/IP6, need to be tested with real-world data.
                        if (offset + sizeof(IPv6Header) > size)
                        {
                            Trace.WriteLine("IPDecoder: IP6 Packet too small for header. offset: " + offset.ToString() + ", size: " + size.ToString(), "DEBUG-MACHINA");
                            return;
                        }

                        IPv6Header header6 = *(IPv6Header *)(ptr + offset);

                        // make sure we have a valid exit condition
                        if (header6.PayloadLength * 8 > buffer.Length - offset - sizeof(IPv6Header))
                        {
                            Trace.WriteLine("IPDecoder: IP6 Packet too small for payload. payload length: " +
                                            (header6.payload_length * 8).ToString() + ", Buffer: " + buffer.Length.ToString() + ", offset: " + offset.ToString(), "DEBUG-MACHINA");
                            return;
                        }

                        offset += sizeof(IPv6Header) + (header6.PayloadLength * 8);

                        continue;
                    }
                    else if (version != 4)
                    {
                        Trace.WriteLine("IPDecoder: IP protocol version is neither 4 nor 6. Version is " + version.ToString(), "DEBUG-MACHINA");
                        return;
                    }

                    IPv4Header ip4Header = *(IPv4Header *)(ptr + offset);

                    int packetLength = ip4Header.Length;

                    // work-around for TCP segment offloading
                    if (packetLength == 0 && ip4Header.Id != 0)
                    {
                        packetLength = size;
                    }

                    // make sure we have a valid exit condition
                    if (packetLength <= 0 & packetLength > 65535)
                    {
                        Trace.WriteLine("IPDecoder: Invalid packet length [" + packetLength.ToString() + "].", "DEBUG-MACHINA");
                        return;
                    }
                    if (packetLength > buffer.Length - offset)
                    {
                        Trace.WriteLine("IPDecoder: buffer too small to hold complete packet.  Packet length is [" + packetLength.ToString() + "], remaining buffer is [" + (buffer.Length - offset).ToString() + "].", "DEBUG-MACHINA");
                        return;
                    }

                    // filter out packets with an incorrect source / destination IP
                    if (_sourceIP == ip4Header.ip_srcaddr &&
                        _destinationIP == ip4Header.ip_destaddr &&
                        _protocol == ip4Header.protocol)
                    {
                        // store payload
                        byte[] ret = new byte[packetLength];
                        Array.Copy(buffer, offset, ret, 0, ret.Length);
                        Fragments.Add(ret);
                    }

                    offset += packetLength;
                }

                // Note: disabled because this seems to occur occasionally for winpcap for no apparent reason.  Packet length is 40 bytes, buffer length is 46.  Eth header is 14 bytes, total payload was 60.

                /*
                 * if (offset != size)
                 * {
                 *  Trace.WriteLine("IPDecoder: Buffer contains extra bytes after processing packets.  Buffer size: [" + size.ToString() + "], final processed length: [" + offset.ToString() + "].");
                 *  Trace.WriteLine(Utility.ByteArrayToHexString(buffer, 0, size));
                 * }
                 */
            }
        }
Esempio n. 17
0
 public void AddFragment(Android.Support.V4.App.Fragment fragment, string name)
 {
     Fragments.Add(fragment);
     FragmentNames.Add(name);
 }
Esempio n. 18
0
 public void AddFragment(SupportFragment fragment, string name, int icon)
 {
     Fragments.Add(fragment);
     FragmentNames.Add(name);
     FragmentIcon.Add(icon);
 }
Esempio n. 19
0
 public void AddFragment(AndroidX.Fragment.App.Fragment fragment, string name)
 {
     Fragments.Add(fragment);
     FragmentNames.Add(name);
 }