From e6fb7206040ce3d3621b526f695ce34a77c731fa Mon Sep 17 00:00:00 2001 From: Edward Emelianov Date: Tue, 28 Nov 2023 11:19:23 +0300 Subject: [PATCH] fixed bugs --- Daemons/weather_database/loghere | 7 ------- Daemons/weather_database/main.c | 4 ++-- Daemons/weather_database/socket.c | 7 ++++++- Daemons/weatherdaemon_newmeteo/term.c | 5 +++-- 4 files changed, 11 insertions(+), 12 deletions(-) delete mode 100644 Daemons/weather_database/loghere diff --git a/Daemons/weather_database/loghere b/Daemons/weather_database/loghere deleted file mode 100644 index 4a00b31..0000000 --- a/Daemons/weather_database/loghere +++ /dev/null @@ -1,7 +0,0 @@ -[MSG] 2023/06/01-17:54:37 hello, start -[DBG] 2023/06/01-17:54:37 SQLite version: 3.42.0 -[MSG] 2023/06/01-17:54:37 Started -[MSG] 2023/06/01-17:54:37 Created child with pid 10010 -[MSG] 2023/06/01-17:54:37 SEND to fd 3: statsimple60 -[WARN] 2023/06/01-17:54:49 Child killed with sig=2 -[ERR] 2023/06/01-17:54:49 Received signal 2, die diff --git a/Daemons/weather_database/main.c b/Daemons/weather_database/main.c index d7b70f8..3edccba 100644 --- a/Daemons/weather_database/main.c +++ b/Daemons/weather_database/main.c @@ -80,8 +80,6 @@ int main(int argc, char **argv){ if(G.logfile) OPENLOG(G.logfile, lvl, 1); LOGMSG("hello, start"); LOGDBG("SQLite version: %s", sqlite3_libversion()); - int sock = open_socket(G.server, G.port); - if(sock < 0) ERRX("Can't open socket to %s:%s", G.server, G.port); check4running(self, G.pidfile); // signal reactions: signal(SIGTERM, signals); // kill (-15) - quit @@ -110,6 +108,8 @@ int main(int argc, char **argv){ } #endif if(!opendb(G.dbname)) return 1; + int sock = open_socket(G.server, G.port); + if(sock < 0) ERRX("Can't open socket to %s:%s", G.server, G.port); run_socket(sock); LOGERR("Unreachable code reached"); signals(1); diff --git a/Daemons/weather_database/socket.c b/Daemons/weather_database/socket.c index 0413318..53cddc3 100644 --- a/Daemons/weather_database/socket.c +++ b/Daemons/weather_database/socket.c @@ -69,7 +69,12 @@ static void sendmessage(int fd, const char *msg, int l){ char *tmpbuf = MALLOC(char, l+1); memcpy(tmpbuf, msg, l); if(msg[l-1] != '\n') tmpbuf[l++] = '\n'; - if(l != send(fd, tmpbuf, l, MSG_NOSIGNAL)){ + ssize_t s = send(fd, tmpbuf, l, MSG_NOSIGNAL); + if(l != s){ + if(s < 0){ + LOGERR("Server disconnected!"); + ERR("Disconnected"); + } LOGWARN("write()"); WARN("write()"); }else{ diff --git a/Daemons/weatherdaemon_newmeteo/term.c b/Daemons/weatherdaemon_newmeteo/term.c index 5b4459f..c3e4bcc 100644 --- a/Daemons/weatherdaemon_newmeteo/term.c +++ b/Daemons/weatherdaemon_newmeteo/term.c @@ -120,10 +120,11 @@ static int parseans(char *str, weather_t *w){ str += el->parlen; char *endptr; *el->weatherpar = strtod(str, &endptr); - //DBG("found par: %s, val=%g", el->parname, *el->weatherpar); + DBG("found par: %s, val=%g", el->parname, *el->weatherpar); if(endptr == str){ DBG("Wrong double value"); - return FALSE; + *el->weatherpar = 0.; + //return FALSE; } break; }