Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/08/2006, 15:48
Avatar de BassXpander
BassXpander
 
Fecha de Ingreso: septiembre-2005
Ubicación: Mexico
Mensajes: 75
Antigüedad: 18 años, 8 meses
Puntos: 0
Obtener Detalles del Error

Saludos !!

Estoy empleando un código escrito en c++ cuya finalidad es agregar un filtro a una interface para bloquear paquetes TCP.

No obstante, a veces obtengo un error númerico y me gustaria obtener detalles del error. Aclaro que no sé más que lo básico de c++.

El fragmento de código que empleo es este:

PF_FILTER_DESCRIPTOR ipFlt;
ipFlt.dwFilterFlags = FD_FLAGS_NOSYN;
ipFlt.dwRule = 0;
ipFlt.pfatType = PF_IPV4;
ipFlt.dwProtocol = protocol;
ipFlt.fLateBound = 0;
ipFlt.wSrcPort = srcPort;
ipFlt.wSrcPortHighRange = srcPort;
ipFlt.wDstPort = dstPort;
ipFlt.wDstPortHighRange = dstPort;

unsigned long lIpSrc = (unsigned long)srcIp->get_Address();
unsigned long lIpDst = (unsigned long)dstIp->get_Address();
unsigned long lMaskSrc = (unsigned long)srcMask->get_Address();
unsigned long lMaskDst = (unsigned long)dstMask->get_Address();

ipFlt.SrcAddr = (PBYTE) &lIpSrc;
ipFlt.SrcMask = (PBYTE) &lMaskSrc;
ipFlt.DstAddr = (PBYTE) &lIpDst;
ipFlt.DstMask = (PBYTE) &lMaskDst;

DWORD errorCode;

// I add the filter
if(direction == 0)
errorCode = PfAddFiltersToInterface(*(intHandle->hInterface), 1, &ipFlt, 0, NULL, NULL );

else if(direction == 1)
errorCode = PfAddFiltersToInterface(*(intHandle->hInterface), 0, NULL, 1, &ipFlt, NULL );
else
return -2;

if(errorCode != NO_ERROR)
return -1;

return 0;
....


Donde la línea en rojo me da un errorCode=6

Alguien puede ayudarme? Uso Visual Studio 2003.

Gracias
__________________
«««(·´¯`·.·÷ Si no puedo dibujarlo... es que no lo entiendo. Albert Einstein ÷·.·´¯`·)»»»