-
Notifications
You must be signed in to change notification settings - Fork 0
/
client.c
122 lines (86 loc) · 2.9 KB
/
client.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
{
/*---------------------------------------------------PARTE 2-------------------------------------------------------------*/
int conexion;
char* ip;
char* puerto;
char* valor;
t_log* logger;
t_config* config;
/* ---------------- LOGGING ---------------- */
logger = iniciar_logger();
log_info(logger,"Hola! Soy un log");
// Usando el logger creado previamente
// Escribi: "Hola! Soy un log"
/* ---------------- ARCHIVOS DE CONFIGURACION ---------------- */
config = iniciar_config();
ip = config_get_string_value(config,"IP");
puerto = config_get_string_value(config,"PUERTO");
valor = config_get_string_value(config,"CLAVE");
// Usando el config creado previamente, leemos los valores del config y los
// dejamos en las variables 'ip', 'puerto' y 'valor'
// Loggeamos el valor de config
log_info(logger,"Lei la IP %s, el puerto %s y la clave %s\n",ip,puerto,valor);
/* ---------------- LEER DE CONSOLA ---------------- */
leer_consola(logger);
/*---------------------------------------------------PARTE 3-------------------------------------------------------------*/
// ADVERTENCIA: Antes de continuar, tenemos que asegurarnos que el servidor esté corriendo para poder conectarnos a él
// Creamos una conexión hacia el servidor
conexion = crear_conexion(ip, puerto);
// Enviamos al servidor el valor de CLAVE como mensaje
// Armamos y enviamos el paquete
paquete(conexion);
terminar_programa(conexion, logger, config);
/*---------------------------------------------------PARTE 5-------------------------------------------------------------*/
// Proximamente
}
t_log* iniciar_logger(void)
{
t_log* nuevo_logger;
if( (nuevo_logger = log_create("tp0.log","TP0", 1,LOG_LEVEL_INFO)) == NULL ){
printf("No se pudo crear el logger\n");
exit(1);
}
return nuevo_logger;
}
t_config* iniciar_config(void)
{
t_config* nuevo_config;
if((nuevo_config = config_create("./tp0.config")) == NULL){
printf("No pude leer la config\n");
exit(2);
}
return nuevo_config;
}
void leer_consola(t_log* logger)
{
char* leido;
// La primera te la dejo de yapa
leido = readline("> ");
while((strcmp(leido,"")) == 0){
log_info(logger,"Leo %s\n",leido);
free(leido);
leido = readline("> ");
}
free(leido);
// El resto, las vamos leyendo y logueando hasta recibir un string vacío
// ¡No te olvides de liberar las lineas antes de regresar!
}
void paquete(int conexion)
{
// Ahora toca lo divertido!
char* leido;
t_paquete* paquete;
// Leemos y esta vez agregamos las lineas al paquete
// ¡No te olvides de liberar las líneas y el paquete antes de regresar!
}
void terminar_programa(int conexion, t_log* logger, t_config* config)
{
/* Y por ultimo, hay que liberar lo que utilizamos (conexion, log y config)
con las funciones de las commons y del TP mencionadas en el enunciado */
if(logger != NULL){
log_destroy(logger);
}
if(config != NULL){
config_destroy(config);
}
}