thermferm/server.c

changeset 677
c867eb3f7fc1
parent 676
09b5efe0c633
child 678
cc49115e769e
equal deleted inserted replaced
676:09b5efe0c633 677:c867eb3f7fc1
44 extern pthread_mutex_t mutexes[5]; 44 extern pthread_mutex_t mutexes[5];
45 45
46 46
47 int my_server_state = 0; /* Thread running state */ 47 int my_server_state = 0; /* Thread running state */
48 int my_server_shutdown = 0; /* Thread shutdown */ 48 int my_server_shutdown = 0; /* Thread shutdown */
49 //int s; /* connected socket */
50 int ls; /* listen socket */ 49 int ls; /* listen socket */
51 50
52 struct sockaddr_in myaddr_in; /* for local socket address */ 51 struct sockaddr_in myaddr_in; /* for local socket address */
53 struct sockaddr_in peeraddr_in; /* for peer socket address */ 52 struct sockaddr_in peeraddr_in; /* for peer socket address */
54 53
1315 srv_send(s, (char *)"UNIT ADD name Add a new Unit with name"); 1314 srv_send(s, (char *)"UNIT ADD name Add a new Unit with name");
1316 srv_send(s, (char *)"UNIT DEL uuid Delete Unit by uuid"); 1315 srv_send(s, (char *)"UNIT DEL uuid Delete Unit by uuid");
1317 srv_send(s, (char *)"UNIT LIST List all Units"); 1316 srv_send(s, (char *)"UNIT LIST List all Units");
1318 srv_send(s, (char *)"UNIT GET uuid Get Unit record by uuid"); 1317 srv_send(s, (char *)"UNIT GET uuid Get Unit record by uuid");
1319 srv_send(s, (char *)"UNIT PUT uuid Put Unit record by uuid"); 1318 srv_send(s, (char *)"UNIT PUT uuid Put Unit record by uuid");
1319 srv_send(s, (char *)"UNIT JSON uuid Get Unit record in json");
1320 srv_send(s, (char *)"."); 1320 srv_send(s, (char *)".");
1321 return 0; 1321 return 0;
1322 } 1322 }
1323 1323
1324 if ((strcmp(opt, (char *)"LIST") == 0) && (param == NULL)) { 1324 if ((strcmp(opt, (char *)"LIST") == 0) && (param == NULL)) {
1532 } 1532 }
1533 srv_send(s, (char *)"440 No such unit"); 1533 srv_send(s, (char *)"440 No such unit");
1534 return 0; 1534 return 0;
1535 } 1535 }
1536 1536
1537 if (strcmp(opt, (char *)"JSON") == 0) {
1538 for (unit = Config.units; unit; unit = unit->next) {
1539 if (strcmp(param, unit->uuid) == 0) {
1540 char *payload, *payloadu;
1541
1542 srv_send(s, (char *)"213 Unit json data follows:");
1543 payload = xstrcpy((char *)"{\"fermenter\":");
1544 payloadu = unit_data(unit, true);
1545 payload = xstrcat(payload, payloadu);
1546 payload = xstrcat(payload, (char *)"}");
1547 srv_send(s, payload);
1548 free(payload);
1549 free(payloadu);
1550 payload = payloadu = NULL;
1551 srv_send(s, (char *)".");
1552 return 0;
1553 }
1554 }
1555 srv_send(s, (char *)"440 No such unit");
1556 return 0;
1557 }
1558
1537 if (strcmp(opt, (char *)"PUT") == 0) { 1559 if (strcmp(opt, (char *)"PUT") == 0) {
1538 /* 1560 /*
1539 * Block main process 1561 * Block main process
1540 */ 1562 */
1541 run_pause = TRUE; 1563 run_pause = TRUE;

mercurial