summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlejandro Colomar <colomar.6.4.3@gmail.com>2020-02-28 19:48:23 +0100
committerAlejandro Colomar <colomar.6.4.3@gmail.com>2020-02-28 19:48:23 +0100
commit54d32951da94e11e5e6fe76917b052a462326e8e (patch)
tree522d7d396fbf5d9d7cba40e4ebf44df0a468a46d
parent3c716f4134ca2c5be0dd4d98bb9ec5c979c94148 (diff)
Improve robrob_0.2.2
-rw-r--r--rob/rob.c45
1 files changed, 40 insertions, 5 deletions
diff --git a/rob/rob.c b/rob/rob.c
index df6e986..3f38848 100644
--- a/rob/rob.c
+++ b/rob/rob.c
@@ -1,5 +1,12 @@
+/******************************************************************************
+ * Copyright (C) 2020 Alejandro Colomar Andrés *
+ * SPDX-License-Identifier: GPL-2.0-only *
+ ******************************************************************************/
+/******************************************************************************
+ ******* include **************************************************************
+ ******************************************************************************/
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
@@ -15,6 +22,9 @@
#include "libalx/extra/telnet-tcp/client/client.h"
+/******************************************************************************
+ ******* define ***************************************************************
+ ******************************************************************************/
#define ROBOT_ADDR "robot"
#define ROBOT_PORT "23"
#define ROBOT_USER "user"
@@ -27,9 +37,25 @@
#define DELAY_US (10 * 1000)
+/******************************************************************************
+ ******* enum *****************************************************************
+ ******************************************************************************/
+
+
+/******************************************************************************
+ ******* struct / union *******************************************************
+ ******************************************************************************/
+
+
+/******************************************************************************
+ ******* static functions (prototypes) ****************************************
+ ******************************************************************************/
void cam_session (int cam, FILE *telnet);
+/******************************************************************************
+ ******* main *****************************************************************
+ ******************************************************************************/
int main (void)
{
FILE *telnet;
@@ -59,10 +85,11 @@ int main (void)
cam_addr_len = sizeof(cam_addr);
while (true) {
- usleep(DELAY_US);
cam = accept(tcp, (struct sockaddr *)&cam_addr, &cam_addr_len);
- if (cam < 0)
+ if (cam < 0) {
+ usleep(DELAY_US);
continue;
+ }
cam_session(cam, telnet);
close(cam);
@@ -80,6 +107,10 @@ out0:
return status;
}
+
+/******************************************************************************
+ ******* static functions (definitions) ***************************************
+ ******************************************************************************/
void cam_session (int cam, FILE *telnet)
{
static int i = 0;
@@ -88,16 +119,20 @@ void cam_session (int cam, FILE *telnet)
i++;
while (true) {
- usleep(DELAY_US);
n = read(cam, buf, ARRAY_SIZE(buf) - 1);
if (n < 0)
return;
buf[n] = 0;
- if (telnet_send(telnet, buf))
- return;
if (!n)
return;
+ if (telnet_send(telnet, buf))
+ return;
+ usleep(DELAY_US);
}
}
+/******************************************************************************
+ ******* end of file **********************************************************
+ ******************************************************************************/
+