private String DecisionChart(Packet p)
   {
      // check in case it is a login packet being returned
      if (!Global.gLoggedIn)
      {
         return HandlePacketsWhenLoggedOut(p);
      }
      else
      {
         char destination = 'r';
         char source = 'r';

         if (p.GetDestination() == Global.gUserID)
         {
            destination = 'l';
         }
         if (p.GetSource() == Global.gUserID)
         {
            source = 'l';
         }
         if ((source == 'l') & (destination == 'l'))
         {
            return LocalToLocal(p);
         }
         if ((source == 'l') & (destination == 'r'))
         {
            return LocalToRemote(p);
         }
         if ((source == 'r') & (destination == 'l'))
         {
            return RemoteToLocal(p);
         }
         if ((source == 'r') & (destination == 'r'))
         {
            return RemoteToRemote(p);
         }
      }
      return "\n\nShouldn\'t see this message\n";
   }