summaryrefslogtreecommitdiffstats
path: root/src/server/main.c
diff options
context:
space:
mode:
authorGravatar Gediminas Jakutis <gediminas@varciai.lt> 2018-05-05 23:36:10 +0300
committerGravatar Gediminas Jakutis <gediminas@varciai.lt> 2018-05-05 23:36:10 +0300
commitfc517f9113b012a9872dcb7938846bcc94a5fd4d (patch)
treee39cd4fdae64ffda9150fa5628e4c1e866ad0d77 /src/server/main.c
parentf6acbbc474e956c46ef09f85f74e964c773cc754 (diff)
downloadcoffeetemp-fc517f9113b012a9872dcb7938846bcc94a5fd4d.tar.gz
coffeetemp-fc517f9113b012a9872dcb7938846bcc94a5fd4d.tar.bz2
coffeetemp-fc517f9113b012a9872dcb7938846bcc94a5fd4d.zip
server: separate networking code into its own thread[s].
Diffstat (limited to 'src/server/main.c')
-rw-r--r--src/server/main.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/server/main.c b/src/server/main.c
index 5c0628a..f4d9fdc 100644
--- a/src/server/main.c
+++ b/src/server/main.c
@@ -33,22 +33,26 @@
#include <time.h>
#include "net.h"
-static struct netstate *init(const unsigned int port);
+int init(const unsigned short int port);
static void draw_idle(void);
static void draw_busy(const char * const data);
static float digest_temp(const short int rawdata);
int main(void)
{
- struct netstate *state;
- char data[32] = {0};
+ static const struct timespec wait = {0, 200 * 1000 * 1000}; /* 200 ms */
+ char data[dgsize] = {0};
int status;
- struct timespec wait = {0, 100 * 1000 * 1000};
+ int nd;
- state = init(2191);
+ nd = init(2191);
+
+ if (nd == NET_ERROR) {
+ goto fail;
+ }
do {
- status = state->getlastdata(data, state);
+ status = net_getlastdata(nd, data);
switch (status) {
case NET_OK:
/*fall-through */
@@ -65,15 +69,15 @@ int main(void)
} while (getch() != 'q');
fail:
- net_close(&state);
+ net_close(nd);
endwin();
return 0;
}
-static struct netstate *init(const unsigned int port)
+int init(const unsigned short int port)
{
- struct netstate *ret;
+ int ret;
ret = net_init(port);
initscr();