mirror of https://git.48k.eu/ogserver
parent
0efc182c9b
commit
7dbe1a73a0
122
src/ogAdmLib.c
122
src/ogAdmLib.c
|
@ -241,125 +241,3 @@ char* reservaMemoria(int lon)
|
|||
memset(mem,0,lon);
|
||||
return(mem);
|
||||
}
|
||||
//______________________________________________________________________________________________________
|
||||
// Función: ampliaMemoria
|
||||
//
|
||||
// Descripción:
|
||||
// Amplia memoria para una variable
|
||||
// Parámetros:
|
||||
// - ptr: Puntero al buffer de memoria que se quiere ampliar
|
||||
// - lon: Longitud en bytes de la amplicación
|
||||
// Devuelve:
|
||||
// Un puntero a la zona de memoria reservada que ha sido previamente rellena con zeros o nulos
|
||||
//______________________________________________________________________________________________________
|
||||
char* ampliaMemoria(char* ptr,int lon)
|
||||
{
|
||||
char *mem;
|
||||
|
||||
mem=(char*)realloc(ptr,lon*sizeof(char*));
|
||||
if(mem!=NULL)
|
||||
return(mem);
|
||||
return(NULL);
|
||||
}
|
||||
//______________________________________________________________________________________________________
|
||||
// Función: liberaMemoria
|
||||
//
|
||||
// Descripción:
|
||||
// Libera memoria para una variable
|
||||
// Parámetros:
|
||||
// - ptr: Puntero al buffer de memoria que se quiere liberar
|
||||
// Devuelve:
|
||||
// Nada
|
||||
//______________________________________________________________________________________________________
|
||||
void liberaMemoria(void* ptr)
|
||||
{
|
||||
if(ptr){
|
||||
free (ptr);
|
||||
}
|
||||
}
|
||||
// ________________________________________________________________________________________________________
|
||||
// Función: sendData
|
||||
//
|
||||
// Descripción:
|
||||
// Envía datos por la red a través de un socket
|
||||
// Parametros:
|
||||
// - sock : El socket por donde se envía
|
||||
// - datos: El contenido a enviar
|
||||
// - lon: Cantidad de bites a enviar
|
||||
// Devuelve:
|
||||
// TRUE: Si el proceso es correcto
|
||||
// FALSE: En caso de ocurrir algún error
|
||||
// ________________________________________________________________________________________________________
|
||||
BOOLEAN sendData(SOCKET *sock, char* datos,int lon)
|
||||
{
|
||||
int idx,ret;
|
||||
idx = 0;
|
||||
while (lon > 0) {
|
||||
ret = send(*sock,&datos[idx],lon, 0);
|
||||
if (ret == 0) { // Conexión cerrada por parte del cliente (Graceful close)
|
||||
break;
|
||||
}
|
||||
else{
|
||||
if (ret == -1)
|
||||
return (FALSE);
|
||||
}
|
||||
lon -= ret;
|
||||
idx += ret;
|
||||
}
|
||||
return (TRUE);
|
||||
}
|
||||
// ________________________________________________________________________________________________________
|
||||
// Función: mandaTrama
|
||||
//
|
||||
// Descripción:
|
||||
// Envía una trama por la red
|
||||
// Parametros:
|
||||
// - sock : El socket del host al que se dirige la trama
|
||||
// - trama: El contenido de la trama
|
||||
// - lon: Longitud de la parte de parametros de la trama que se va a mandar
|
||||
// Devuelve:
|
||||
// TRUE: Si el proceso es correcto
|
||||
// FALSE: En caso de ocurrir algún error
|
||||
// ________________________________________________________________________________________________________
|
||||
BOOLEAN mandaTrama(SOCKET *sock, TRAMA* ptrTrama)
|
||||
{
|
||||
int lonprm;
|
||||
char *buffer,hlonprm[LONHEXPRM+1];
|
||||
BOOLEAN res;
|
||||
|
||||
lonprm=strlen(ptrTrama->parametros);
|
||||
sprintf(hlonprm,"%05X",LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm); // Convierte en hexadecimal la longitud
|
||||
|
||||
buffer=reservaMemoria(LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm); // Longitud total de la trama
|
||||
if(buffer==NULL)
|
||||
return(FALSE);
|
||||
memcpy(buffer,ptrTrama,LONGITUD_CABECERATRAMA); // Copia cabecera de trama
|
||||
memcpy(&buffer[LONGITUD_CABECERATRAMA],hlonprm,LONHEXPRM); // Copia longitud de la trama
|
||||
memcpy(&buffer[LONGITUD_CABECERATRAMA+LONHEXPRM],ptrTrama->parametros,lonprm);
|
||||
res=sendData(sock,buffer,LONGITUD_CABECERATRAMA+LONHEXPRM+lonprm);
|
||||
liberaMemoria(buffer);
|
||||
return (res);
|
||||
}
|
||||
|
||||
//______________________________________________________________________________________________________
|
||||
// Función: initParammetros
|
||||
//
|
||||
// Descripción:
|
||||
// Libera memoria del buffer de los parametros de la trama y vuelve a reservar espacio
|
||||
// Parámetros:
|
||||
// - parametros : Puntero a la zona donde están los parametros de una trama
|
||||
// - lon : Tamaño de la nueva reserva de espacio para los parametros
|
||||
// Devuelve:
|
||||
// Un puntero a la nueva zona de memoria o NULL si ha habido algún error
|
||||
// Especificaciones:
|
||||
// En caso de que el parámetro lon valga cero el tamaño a reservar será el estandar
|
||||
//______________________________________________________________________________________________________
|
||||
BOOLEAN initParametros(TRAMA* ptrTrama,int lon)
|
||||
{
|
||||
if(lon==0) lon=LONGITUD_PARAMETROS;
|
||||
ptrTrama->parametros=(char*)ampliaMemoria(ptrTrama->parametros,lon);
|
||||
if(!ptrTrama->parametros)
|
||||
return(FALSE);
|
||||
else
|
||||
return(TRUE);
|
||||
}
|
||||
|
|
|
@ -88,9 +88,6 @@ typedef struct{ // Estructura de las tramas
|
|||
// ________________________________________________________________________________________________________
|
||||
BOOLEAN validacionParametros(int,char**,int);
|
||||
char* reservaMemoria(int);
|
||||
char* ampliaMemoria(char*,int);
|
||||
void liberaMemoria(void*);
|
||||
BOOLEAN initParametros(TRAMA*,int);
|
||||
int splitCadena(char **,char *, char);
|
||||
char* StrToUpper(char *);
|
||||
void FINCADaINTRO(TRAMA*);
|
||||
|
@ -99,8 +96,6 @@ char *copiaParametro(const char*,TRAMA *);
|
|||
BOOLEAN contieneIP(char *,char *);
|
||||
char* rTrim(char *);
|
||||
BOOLEAN enviaMensaje(SOCKET *,TRAMA *,char);
|
||||
BOOLEAN mandaTrama(SOCKET*,TRAMA*);
|
||||
BOOLEAN sendData(SOCKET *, char* ,int );
|
||||
BOOLEAN enviaTrama(SOCKET *,TRAMA *);
|
||||
TRAMA* recibeTrama(SOCKET*);
|
||||
char* escaparCadena(char *cadena);
|
||||
|
|
Loading…
Reference in New Issue