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; |