Página principal | Lista de componentes | Directories | Lista de archivos | Miembros de las clases | Archivos de los miembros | Páginas relacionadas

Referencia del Archivo servidor.h

Programa Servidor. Más...

#include <gnet.h>
#include "lista.h"

Ir al código fuente de este archivo.

Tipos definidos

typedef servidor Servidor
 Módulo Servidor.

Enumeraciones

enum  tipo_cliente { CLIENTE, ADMINISTRADOR, OTRO }
 clientes que se admiten

Funciones

int servidor_iniciar (Servidor *data, int argc, char *argv[])
 prepara el programa para comenzar a operar
int servidor_cargar_opciones_arg (Servidor *data, int argc, char *argv[])
 evalúa los argumentos del programa
void servidor_imprimir_ayuda (char *programa)
 emite un listado de los parámetros que interpreta el programa
void servidor_puerto_por_defecto (Servidor *datos, int puerto)
 En caso de no definir un puerto, esta función lo define por defecto.
int servidor_cargar_opciones_disco (Servidor *datos)
 obtiene todos los parámetros de configuración desde un archivo
void servidor_terminar (Servidor *data)
 finaliza la ejecución del programa
gboolean servidor_atender_pedido_administrador (GIOChannel *io,\GIOCondition cond, gpointer _data)
 analiza, en base al código de mensaje, la acción a realizar
void servidor_enviar_listado_clientes (Servidor *datos)
 enviar un listado completo de todos los cliente conectados al programa Administrador.
void servidor_atender_login (Servidor *data, GIOChannel *io)
 atiende un mensaje de tipo LOGIN, para iniciar una sesión
void servidor_atender_actualizar (Servidor *data, GIOChannel *io)
 atiende el pedido de actualización de sesión
void servidor_atender_adm_getdatos (Servidor *data, GIOChannel *io)
 atiende un mensaje de tipo GETDATOS del administrador, se procede a enviar el listado completo de usuarios
void servidor_atender_adm_mensaje (Servidor *data, GIOChannel *io)
 atiende un pedido de MENSAJE del administrador, se reenvía la cadena a los usuario especificados en el cuerpo de mensaje
void servidor_atender_adm_logout (Servidor *data, GIOChannel *io)
 atiende un pedido de LOGOUT del administrador, se procede a cerrar la sesión del usuario indicado en el cuerpo de mensaje
void servidor_atender_adm_reiniciar (Servidor *data, GIOChannel *io)
 atiende un pedido de REINICIAR del administrador, se reenvía este pedido a un usuario en particular
void servidor_atender_adm_apagar (Servidor *data, GIOChannel *io)
 atiende un pedido de APAGAR del administrador, se reenvía esta órden al usuario especificado en el cuerpo de mensaje para apagar el equipo
void servidor_atender_adm_actualiza_sesion (Servidor *data, GIOChannel *io)
 atiende un pedido de ACTUALIZAR SESION del administrador, se reenvía esta órden al usuario especificado en el cuerpo de mensaje para asignar sesion.
void servidor_atender_adm_super_sesion (Servidor *data, GIOChannel *io)
 atiende un pedido de SUPER SESION del administrador, se reenvía esta órden al usuario especificado en el cuerpo de mensaje para extender o iniciar una sesión de tiempo ilimitado.
void servidor_evaluar_nuevo_cliente (GTcpSocket *server, GTcpSocket *client, gpointer data)
 Atiende el pedido de conexión de un nuevo programa.
void servidor_agregar_usuario (Servidor *datos, GIOChannel *io,\GTcpSocket *socket, char *msg)
 asocia el nuevo cliente al sistema realizando controles
void servidor_identificar_cliente (Servidor *data, GIOChannel *io,\GTcpSocket *cliente)
 Realiza controles frente al nuevo cliente e intenta vincularlo.
void servidor_asignar_sesion (Servidor *datos, char *nombre, char *equipo, int super_sesion)
 registra el ingreso al sistema de un usuario
void servidor_informar_desconectado (Servidor *data, char *nombre)
 le informa al administrador que se ha desconectado un cliente
void servidor_informar_usuario (Servidor *data, char *nombre)
 Emite una serie de propiedades del cliente (equipo, nombre de usuario, etc) al programa administrador.
void servidor_desconectar_administrador (Servidor *datos)
 elimina el vínculo entre el programa Servidor y un administrador
int servidor_validar_ingreso (Servidor *datos, char *nombre, char *passwd)
 analiza si el nombre y contraseña enviado está registrado como válido
void servidor_manejador (int num)
 gestor de señales como SIGPIPE o SIGINT param num identificador numérico de la señal capturada
gboolean servidor_atender_pedido_usuario (GIOChannel *io, GIOCondition cond, gpointer data)
 gestiona un evento producido por un usuario Login
void servidor_desconectar_usuario (Servidor *data, GIOChannel *io)
 elimina el vínculo entre el programa Servidor y un usuario
void servidor_enviar_mensaje (Servidor *data, char *nombre,\enum socket_mensaje tipo, char *extra)
 envia mensajes a un equipo de la red
int servidor_valida_passwd (Servidor *data, char *passwd)
 Verifica si la contraseña corresponde a un administrador válido.
void servidor_evento (char *format,...)
 registra un evento en el archivo de reportes `log`


Descripción detallada

Programa Servidor.


Documentación de las funciones

void servidor_agregar_usuario Servidor datos,
GIOChannel *  io,
\GTcpSocket *  socket,
char *  msg
 

asocia el nuevo cliente al sistema realizando controles

Parámetros:
datos Servidor principal
io canal asociado al nuevo cliente
socket conector con el nuevo cliente
msg mensaje enviado por el usuario, contiene su identificador

void servidor_asignar_sesion Servidor datos,
char *  nombre,
char *  equipo,
int  super_sesion
 

registra el ingreso al sistema de un usuario

Parámetros:
datos Servidor principal
nombre nombre del usuario que utilizará la sesión
equipo identificador de equipo
super_sesion 1 si no tiene limite de tiempo, 0 en otro caso

void servidor_atender_actualizar Servidor data,
GIOChannel *  io
 

atiende el pedido de actualización de sesión

Parámetros:
data Servidor principal
io canal de comunicación con el cliente

void servidor_atender_adm_actualiza_sesion Servidor data,
GIOChannel *  io
 

atiende un pedido de ACTUALIZAR SESION del administrador, se reenvía esta órden al usuario especificado en el cuerpo de mensaje para asignar sesion.

Parámetros:
data Servidor Principal
io canal de comunicación con el administrador

void servidor_atender_adm_apagar Servidor data,
GIOChannel *  io
 

atiende un pedido de APAGAR del administrador, se reenvía esta órden al usuario especificado en el cuerpo de mensaje para apagar el equipo

Parámetros:
data Servidor Principal
io canal de comunicación con el administrador

void servidor_atender_adm_getdatos Servidor data,
GIOChannel *  io
 

atiende un mensaje de tipo GETDATOS del administrador, se procede a enviar el listado completo de usuarios

Parámetros:
data Servidor Principal
io canal de comunicación con el administrador

void servidor_atender_adm_logout Servidor data,
GIOChannel *  io
 

atiende un pedido de LOGOUT del administrador, se procede a cerrar la sesión del usuario indicado en el cuerpo de mensaje

Parámetros:
data Servidor Principal
io canal de comunicación con el administrador

void servidor_atender_adm_mensaje Servidor data,
GIOChannel *  io
 

atiende un pedido de MENSAJE del administrador, se reenvía la cadena a los usuario especificados en el cuerpo de mensaje

Parámetros:
data Servidor Principal
io canal de comunicación con el administrador

void servidor_atender_adm_reiniciar Servidor data,
GIOChannel *  io
 

atiende un pedido de REINICIAR del administrador, se reenvía este pedido a un usuario en particular

Parámetros:
data Servidor Principal
io canal de comunicación con el administrador

void servidor_atender_adm_super_sesion Servidor data,
GIOChannel *  io
 

atiende un pedido de SUPER SESION del administrador, se reenvía esta órden al usuario especificado en el cuerpo de mensaje para extender o iniciar una sesión de tiempo ilimitado.

Parámetros:
data Servidor Principal
io canal de comunicación con el administrador

void servidor_atender_login Servidor data,
GIOChannel *  io
 

atiende un mensaje de tipo LOGIN, para iniciar una sesión

Parámetros:
data Servidor Principal
io canal de comunicación

gboolean servidor_atender_pedido_administrador GIOChannel *  io,
\GIOCondition  cond,
gpointer  _data
 

analiza, en base al código de mensaje, la acción a realizar

Parámetros:
io canal asociado al administrador
cond tipo de evento
_data Servidor principal

gboolean servidor_atender_pedido_usuario GIOChannel *  io,
GIOCondition  cond,
gpointer  _data
 

gestiona un evento producido por un usuario Login

Parámetros:
io canal asociado al usuario
cond tipo de evento io
_data Servidor principal
Devuelve:
TRUE si se debe seguir atendiendo eventos desde ese canal, en caso contrario se debe retornar FALSE. Ambos retornos son gestionados por la biblioteca glib.

int servidor_cargar_opciones_arg Servidor data,
int  argc,
char *  argv[]
 

evalúa los argumentos del programa

Parámetros:
data Servidor principal
argc cantidad de parámetros enviados a main ()
argv cadenas asociadas a cada parámetro enviadas a main ()
Devuelve:
-1 en caso de error, 0 en otro caso

int servidor_cargar_opciones_disco Servidor datos  ) 
 

obtiene todos los parámetros de configuración desde un archivo

Parámetros:
datos Servidor principal
Devuelve:
1 en caso de error

void servidor_desconectar_administrador Servidor data  ) 
 

elimina el vínculo entre el programa Servidor y un administrador

Parámetros:
data Servidor principal

void servidor_desconectar_usuario Servidor data,
GIOChannel *  io
 

elimina el vínculo entre el programa Servidor y un usuario

Parámetros:
data Servidor principal
io canal de comunicación con el programa usuario

void servidor_enviar_listado_clientes Servidor datos  ) 
 

enviar un listado completo de todos los cliente conectados al programa Administrador.

Parámetros:
datos Servidor principal

void servidor_enviar_mensaje Servidor data,
char *  nombre,
\enum socket_mensaje  tipo,
char *  extra
 

envia mensajes a un equipo de la red

Parámetros:
data Servidor principal
nombre identificador del equipo
tipo tipo de mensaje a emitir
extra solo se utiliza si el mensaje admite una cadena de texto auxiliar, generalmente se utiliza NULL

void servidor_evaluar_nuevo_cliente GTcpSocket *  server,
GTcpSocket *  cliente,
gpointer  _data
 

Atiende el pedido de conexión de un nuevo programa.

Parámetros:
server socket del programa servidor
cliente socket asociado al nuevo cliente
_data Servidor principal

void servidor_evento char *  format,
  ...
 

registra un evento en el archivo de reportes `log`

Parámetros:
cadena cadena que describe el evento

void servidor_identificar_cliente Servidor data,
GIOChannel *  io,
\GTcpSocket *  cliente
 

Realiza controles frente al nuevo cliente e intenta vincularlo.

Parámetros:
data Servidor principal
io canal de comunicación con el nuevo cliente
cliente socket del cliente

void servidor_imprimir_ayuda char *  programa  ) 
 

emite un listado de los parámetros que interpreta el programa

Parámetros:
programa nombre del programa, generalmente se obtiene de argv [0]

void servidor_informar_desconectado Servidor data,
char *  nombre
 

le informa al administrador que se ha desconectado un cliente

Parámetros:
data Servidor principal
nombre nombre del equipo cliente

void servidor_informar_usuario Servidor data,
char *  _equipo
 

Emite una serie de propiedades del cliente (equipo, nombre de usuario, etc) al programa administrador.

Parámetros:
data Servidor principal
_equipo nombre del equipo cliente

int servidor_iniciar Servidor datos,
int  argc,
char *  argv[]
 

prepara el programa para comenzar a operar

Parámetros:
datos Servidor principal
argc cantidad de parámetros enviados por el shell
argv cadenas asociadas a cada parámetro
Devuelve:
1 en caso de error, 0 en otro caso

void servidor_puerto_por_defecto Servidor datos,
int  puerto
 

En caso de no definir un puerto, esta función lo define por defecto.

Parámetros:
datos Servidor principal
puerto numero de puerto / servicio a utilizar

void servidor_terminar Servidor data  ) 
 

finaliza la ejecución del programa

Parámetros:
data Servidor principal

int servidor_valida_passwd Servidor data,
char *  passwd
 

Verifica si la contraseña corresponde a un administrador válido.

Parámetros:
data módulo principal
passwd contraseña a verificar
Devuelve:
1 en caso de ser válida, 0 en otro caso

int servidor_validar_ingreso Servidor datos,
char *  _nombre,
char *  _password
 

analiza si el nombre y contraseña enviado está registrado como válido

Parámetros:
datos Servidor principal
_nombre identificador del solicitante
_password contraseña del solicitante
Devuelve:
0 en caso de rechazo, 1 si es válido y puede ingresar




Generado con Doxygen, versión 1.4.2