summaryrefslogtreecommitdiffstats
path: root/src/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.c')
-rw-r--r--src/client.c91
1 files changed, 51 insertions, 40 deletions
diff --git a/src/client.c b/src/client.c
index 2bec54c..b56e861 100644
--- a/src/client.c
+++ b/src/client.c
@@ -129,14 +129,6 @@ static int og_resp_hardware(json_t *data, struct og_client *cli)
return -1;
}
- err = og_dbi_get_computer_info(&computer, cli->addr.sin_addr);
- if (err < 0)
- return -1;
-
- snprintf(legacy.center, sizeof(legacy.center), "%d", computer.center);
- snprintf(legacy.id, sizeof(legacy.id), "%d", computer.id);
- snprintf(legacy.hardware, sizeof(legacy.hardware), "%s", hardware);
-
dbi = og_dbi_open(&dbi_config);
if (!dbi) {
syslog(LOG_ERR, "cannot open connection database (%s:%d)\n",
@@ -144,6 +136,16 @@ static int og_resp_hardware(json_t *data, struct og_client *cli)
return -1;
}
+ err = og_dbi_get_computer_info(dbi, &computer, cli->addr.sin_addr);
+ if (err < 0) {
+ og_dbi_close(dbi);
+ return -1;
+ }
+
+ snprintf(legacy.center, sizeof(legacy.center), "%d", computer.center);
+ snprintf(legacy.id, sizeof(legacy.id), "%d", computer.id);
+ snprintf(legacy.hardware, sizeof(legacy.hardware), "%s", hardware);
+
res = actualizaHardware(dbi, legacy.hardware, legacy.id, computer.name,
legacy.center);
og_dbi_close(dbi);
@@ -195,15 +197,6 @@ static int og_resp_software(json_t *data, struct og_client *cli)
return -1;
}
- err = og_dbi_get_computer_info(&computer, cli->addr.sin_addr);
- if (err < 0)
- return -1;
-
- snprintf(legacy.software, sizeof(legacy.software), "%s", software);
- snprintf(legacy.part, sizeof(legacy.part), "%s", partition);
- snprintf(legacy.id, sizeof(legacy.id), "%d", computer.id);
- snprintf(legacy.center, sizeof(legacy.center), "%d", computer.center);
-
dbi = og_dbi_open(&dbi_config);
if (!dbi) {
syslog(LOG_ERR, "cannot open connection database (%s:%d)\n",
@@ -211,6 +204,17 @@ static int og_resp_software(json_t *data, struct og_client *cli)
return -1;
}
+ err = og_dbi_get_computer_info(dbi, &computer, cli->addr.sin_addr);
+ if (err < 0) {
+ og_dbi_close(dbi);
+ return -1;
+ }
+
+ snprintf(legacy.software, sizeof(legacy.software), "%s", software);
+ snprintf(legacy.part, sizeof(legacy.part), "%s", partition);
+ snprintf(legacy.id, sizeof(legacy.id), "%d", computer.id);
+ snprintf(legacy.center, sizeof(legacy.center), "%d", computer.center);
+
res = actualizaSoftware(dbi, legacy.software, legacy.part, legacy.id,
computer.name, legacy.center);
og_dbi_close(dbi);
@@ -310,10 +314,6 @@ static int og_resp_refresh(json_t *data, struct og_client *cli)
return err;
}
- err = og_dbi_get_computer_info(&computer, cli->addr.sin_addr);
- if (err < 0)
- return -1;
-
if (strlen(serial_number) > 0)
snprintf(cfg, sizeof(cfg), "ser=%s\n", serial_number);
@@ -349,6 +349,13 @@ static int og_resp_refresh(json_t *data, struct og_client *cli)
__func__, __LINE__);
return -1;
}
+
+ err = og_dbi_get_computer_info(dbi, &computer, cli->addr.sin_addr);
+ if (err < 0) {
+ og_dbi_close(dbi);
+ return -1;
+ }
+
res = actualizaConfiguracion(dbi, cfg, computer.id);
og_dbi_close(dbi);
@@ -453,9 +460,18 @@ static int og_resp_image_create(json_t *data, struct og_client *cli)
return -1;
}
- err = og_dbi_get_computer_info(&computer, cli->addr.sin_addr);
- if (err < 0)
+ dbi = og_dbi_open(&dbi_config);
+ if (!dbi) {
+ syslog(LOG_ERR, "cannot open connection database (%s:%d)\n",
+ __func__, __LINE__);
+ return -1;
+ }
+
+ err = og_dbi_get_computer_info(dbi, &computer, cli->addr.sin_addr);
+ if (err < 0) {
+ og_dbi_close(dbi);
return -1;
+ }
snprintf(soft_legacy.center, sizeof(soft_legacy.center), "%d",
computer.center);
@@ -470,13 +486,6 @@ static int og_resp_image_create(json_t *data, struct og_client *cli)
snprintf(img_legacy.name, sizeof(img_legacy.name), "%s", name);
snprintf(img_legacy.repo, sizeof(img_legacy.repo), "%s", repo);
- dbi = og_dbi_open(&dbi_config);
- if (!dbi) {
- syslog(LOG_ERR, "cannot open connection database (%s:%d)\n",
- __func__, __LINE__);
- return -1;
- }
-
res = actualizaSoftware(dbi,
soft_legacy.software,
img_legacy.part,
@@ -551,16 +560,6 @@ static int og_resp_image_restore(json_t *data, struct og_client *cli)
return -1;
}
- err = og_dbi_get_computer_info(&computer, cli->addr.sin_addr);
- if (err < 0)
- return -1;
-
- snprintf(img_legacy.image_id, sizeof(img_legacy.image_id), "%s",
- image_id);
- snprintf(img_legacy.part, sizeof(img_legacy.part), "%s", partition);
- snprintf(img_legacy.disk, sizeof(img_legacy.disk), "%s", disk);
- snprintf(soft_legacy.id, sizeof(soft_legacy.id), "%d", computer.id);
-
dbi = og_dbi_open(&dbi_config);
if (!dbi) {
syslog(LOG_ERR, "cannot open connection database (%s:%d)\n",
@@ -587,6 +586,18 @@ static int og_resp_image_restore(json_t *data, struct og_client *cli)
"%d", dbi_result_get_uint(query_result, "idperfilsoft"));
dbi_result_free(query_result);
+ err = og_dbi_get_computer_info(dbi, &computer, cli->addr.sin_addr);
+ if (err < 0) {
+ og_dbi_close(dbi);
+ return -1;
+ }
+
+ snprintf(img_legacy.image_id, sizeof(img_legacy.image_id), "%s",
+ image_id);
+ snprintf(img_legacy.part, sizeof(img_legacy.part), "%s", partition);
+ snprintf(img_legacy.disk, sizeof(img_legacy.disk), "%s", disk);
+ snprintf(soft_legacy.id, sizeof(soft_legacy.id), "%d", computer.id);
+
res = actualizaRestauracionImagen(dbi,
img_legacy.image_id,
img_legacy.disk,