fixed for new vesrion of usefull_macros

This commit is contained in:
2026-01-26 16:54:50 +03:00
parent 50cbaea550
commit a80347643f
25 changed files with 107 additions and 103 deletions

View File

@@ -180,9 +180,10 @@ static void toomuch(int fd){
LOGWARN("Client fd=%d tried to connect after MAX reached", fd);
}
// new connections handler
static void connected(sl_sock_t *c){
static int connected(sl_sock_t *c){
if(c->type == SOCKT_UNIX) LOGMSG("New client fd=%d connected", c->fd);
else LOGMSG("New client fd=%d, IP=%s connected", c->fd, c->IP);
return TRUE;
}
// disconnected handler
static void disconnected(sl_sock_t *c){
@@ -196,12 +197,12 @@ void server_run(sl_socktype_e type, const char *node, sl_tty_t *serial){
ERRX("server_run(): wrong parameters");
}
dome_serialdev(serial);
sl_sock_changemaxclients(5);
sl_sock_maxclhandler(toomuch);
sl_sock_connhandler(connected);
sl_sock_dischandler(disconnected);
s = sl_sock_run_server(type, node, -1, handlers);
if(!s) ERRX("Can't create socket and/or run threads");
sl_sock_changemaxclients(s, 5);
sl_sock_maxclhandler(s, toomuch);
sl_sock_connhandler(s, connected);
sl_sock_dischandler(s, disconnected);
while(s && s->connected){
if(!s->rthread){
LOGERR("Server handlers thread is dead");

View File

@@ -54,7 +54,7 @@ glob_pars const Gdefault = {
* Define command line options by filling structure:
* name has_arg flag val type argptr help
*/
myoption cmdlnopts[] = {
sl_option_t cmdlnopts[] = {
// common options
{"help", NO_ARGS, NULL, 'h', arg_int, APTR(&help), _("show this help")},
{"device", NEED_ARG, NULL, 'i', arg_string, APTR(&G.device), _("serial device name (default: none)")},
@@ -79,10 +79,10 @@ glob_pars *parse_args(int argc, char **argv){
void *ptr;
ptr = memcpy(&G, &Gdefault, sizeof(G)); assert(ptr);
// format of help: "Usage: progname [args]\n"
change_helpstring("Usage: %s [args]\n\n\tWhere args are:\n");
sl_helpstring("Usage: %s [args]\n\n\tWhere args are:\n");
// parse arguments
parseargs(&argc, &argv, cmdlnopts);
if(help) showhelp(-1, cmdlnopts);
sl_parseargs(&argc, &argv, cmdlnopts);
if(help) sl_showhelp(-1, cmdlnopts);
if(argc > 0){
G.rest_pars_num = argc;
G.rest_pars = calloc(argc, sizeof(char*));

View File

@@ -30,14 +30,14 @@
glob_pars *GP;
void signals(int signo){
restore_console();
if(ttydescr) close_tty(&ttydescr);
sl_restore_con();
if(ttydescr) sl_tty_close(&ttydescr);
LOGERR("exit with status %d", signo);
exit(signo);
}
int main(int argc, char **argv){
initial_setup();
sl_init();
signal(SIGTERM, signals); // kill (-15) - quit
signal(SIGHUP, SIG_IGN); // hup - ignore
signal(SIGINT, signals); // ctrl+C - quit
@@ -52,7 +52,7 @@ int main(int argc, char **argv){
signals(0); // never reached!
}
if(GP->logfile){
sl_loglevel lvl = LOGLEVEL_ERR;
sl_loglevel_e lvl = LOGLEVEL_ERR;
for(; GP->verb && lvl < LOGLEVEL_ANY; --GP->verb) ++lvl;
DBG("Loglevel: %d", lvl);
if(!OPENLOG(GP->logfile, lvl, 1)) ERRX("Can't open log file");

View File

@@ -28,7 +28,7 @@
#define BUFLEN 1024
TTY_descr *ttydescr = NULL;
sl_tty_t *ttydescr = NULL;
static char buf[BUFLEN];
@@ -50,14 +50,14 @@ static char *read_string(){
return ptr;
}
ptr = buf;
double d0 = dtime();
double d0 = sl_dtime();
do{
if((l = read_tty(ttydescr))){
if((l = sl_tty_read(ttydescr))){
r += l; LL -= l; ptr += l;
if(ptr[-1] == '\n') break;
d0 = dtime();
d0 = sl_dtime();
}
}while(dtime() - d0 < WAIT_TMOUT && LL);
}while(sl_dtime() - d0 < WAIT_TMOUT && LL);
if(r){
buf[r] = 0;
//DBG("r=%zd, got string: %s", r, buf);
@@ -75,10 +75,10 @@ static char *read_string(){
int try_connect(char *device, int baudrate){
if(!device) return 0;
fflush(stdout);
ttydescr = new_tty(device, baudrate, 1024);
if(ttydescr) ttydescr = tty_open(ttydescr, 1); // exclusive open
ttydescr = sl_tty_new(device, baudrate, 1024);
if(ttydescr) ttydescr = sl_tty_open(ttydescr, 1); // exclusive open
if(!ttydescr) return 0;
while(read_tty(ttydescr)); // clear rbuf
while(sl_tty_read(ttydescr)); // clear rbuf
LOGMSG("Connected to %s", device);
return 1;
}
@@ -91,14 +91,14 @@ void run_terminal(){
green(_("Work in terminal mode without echo\n"));
int rb;
size_t l;
setup_con();
sl_setup_con();
while(1){
if((l = read_tty(ttydescr))){
if((l = sl_tty_read(ttydescr))){
printf("%s", ttydescr->buf);
}
if((rb = read_console())){
if((rb = sl_read_con())){
char c = (char) rb;
write_tty(ttydescr->comfd, &c, 1);
sl_tty_write(ttydescr->comfd, &c, 1);
}
}
}
@@ -109,8 +109,8 @@ void run_terminal(){
*/
char *poll_device(){
char *ans;
double t0 = dtime();
while(dtime() - t0 < T_POLLING_TMOUT){
double t0 = sl_dtime();
while(sl_dtime() - t0 < T_POLLING_TMOUT){
if((ans = read_string())){ // parse new data
DBG("got %s", ans);
/*

View File

@@ -31,7 +31,7 @@
// Terminal polling timeout - 1 second
#define T_POLLING_TMOUT (1.0)
extern TTY_descr *ttydescr;
extern sl_tty_t *ttydescr;
void run_terminal();
int try_connect(char *device, int baudrate);
char *poll_device();

View File

@@ -46,7 +46,7 @@ static glob_pars const Gdefault = {
* Define command line options by filling structure:
* name has_arg flag val type argptr help
*/
static myoption cmdlnopts[] = {
static sl_option_t cmdlnopts[] = {
// common options
{"help", NO_ARGS, NULL, 'h', arg_int, APTR(&help), _("show this help")},
{"port", NEED_ARG, NULL, 'P', arg_string, APTR(&G.port), _("port to connect (default: " DEFAULT_PORT ")")},
@@ -73,13 +73,13 @@ glob_pars *parse_args(int argc, char **argv){
char helpstring[1024], *hptr = helpstring;
snprintf(hptr, hlen, "Usage: %%s [args]\n\n\tWhere args are:\n");
// format of help: "Usage: progname [args]\n"
change_helpstring(helpstring);
sl_helpstring(helpstring);
// parse arguments
parseargs(&argc, &argv, cmdlnopts);
if(help) showhelp(-1, cmdlnopts);
sl_parseargs(&argc, &argv, cmdlnopts);
if(help) sl_showhelp(-1, cmdlnopts);
if(argc > 0){
fprintf(stderr, "Undefined extra parameters!\n");
showhelp(-1, cmdlnopts);
sl_showhelp(-1, cmdlnopts);
G.rest_pars_num = argc;
G.rest_pars = MALLOC(char *, argc);
for (i = 0; i < argc; i++)

View File

@@ -36,7 +36,7 @@ void signals(int sig){
signal(sig, SIG_IGN);
DBG("Get signal %d, quit.\n", sig);
}
restore_console();
sl_restore_con();
exit(sig);
}
@@ -45,7 +45,7 @@ void iffound_default(pid_t pid){
}
int main(int argc, char *argv[]){
initial_setup();
sl_init();
char *self = strdup(argv[0]);
GP = parse_args(argc, argv);
DBG("here");
@@ -66,7 +66,7 @@ int main(int argc, char *argv[]){
signal(SIGQUIT, signals); // ctrl+\ - quit
signal(SIGTSTP, SIG_IGN); // ignore ctrl+Z
DBG("here");
setup_con();
sl_setup_con();
/*
if(GP->rest_pars_num){
for(int i = 0; i < GP->rest_pars_num; ++i)

View File

@@ -56,7 +56,7 @@ void signals(int signo){
exit(signo);
}
static myoption cmdlnopts[] = {
static sl_option_t cmdlnopts[] = {
{"help", NO_ARGS, NULL, 'h', arg_int, APTR(&G.help), "show this help"},
{"address", NEED_ARG, NULL, 'a', arg_string, APTR(&G.server), "server name or IP"},
{"port", NEED_ARG, NULL, 'p', arg_string, APTR(&G.port), "server port"},
@@ -68,19 +68,19 @@ static myoption cmdlnopts[] = {
int main(int argc, char **argv){
char *self = strdup(argv[0]);
initial_setup();
parseargs(&argc, &argv, cmdlnopts);
if(G.help) showhelp(-1, cmdlnopts);
sl_init();
sl_parseargs(&argc, &argv, cmdlnopts);
if(G.help) sl_showhelp(-1, cmdlnopts);
if(argc > 0) WARNX("Got %d unused keys", argc);
if(!G.dbname) ERRX("Point database file name");
if(!G.server) ERRX("Point server IP or name");
if(!G.port) ERRX("Point server port");
sl_loglevel lvl = LOGLEVEL_ERR + G.v;
sl_loglevel_e lvl = LOGLEVEL_ERR + G.v;
if(lvl > LOGLEVEL_ANY) lvl = LOGLEVEL_ANY;
if(G.logfile) OPENLOG(G.logfile, lvl, 1);
LOGMSG("hello, start");
LOGDBG("SQLite version: %s", sqlite3_libversion());
check4running(self, G.pidfile);
sl_check4running(self, G.pidfile);
// signal reactions:
signal(SIGTERM, signals); // kill (-15) - quit
signal(SIGHUP, SIG_IGN); // hup - ignore
@@ -93,11 +93,11 @@ int main(int argc, char **argv){
while(1){
childpid = fork();
if(childpid){ // master
double t0 = dtime();
double t0 = sl_dtime();
LOGMSG("Created child with pid %d", childpid);
wait(NULL);
LOGWARN("Child %d died", childpid);
if(dtime() - t0 < 1.) pause += 5;
if(sl_dtime() - t0 < 1.) pause += 5;
else pause = 1;
if(pause > 900) pause = 900;
sleep(pause); // wait a little before respawn

View File

@@ -78,7 +78,7 @@ static void sendmessage(int fd, const char *msg, int l){
LOGWARN("write()");
WARN("write()");
}else{
if(globlog){ // logging turned ON
if(sl_globlog){ // logging turned ON
tmpbuf[l-1] = 0; // remove trailing '\n' for logging
LOGMSG("SEND to fd %d: %s", fd, tmpbuf);
}
@@ -125,10 +125,10 @@ static int canberead(int fd){
// collect data and write into database
// @return FALSE if can't get full data string
static int getdata(int fd){
double t0 = dtime();
double t0 = sl_dtime();
char buf[BUFSIZ];
int len = 0, leave = BUFSIZ, got = 0;
while(dtime() - t0 < ANS_TIMEOUT){
while(sl_dtime() - t0 < ANS_TIMEOUT){
int r = canberead(fd);
if(r == 0) continue;
r = read(fd, buf + len, leave);
@@ -169,7 +169,7 @@ static int getdata(int fd){
void run_socket(int fd){
double t0 = 0.;
while(1){
double tlast = dtime();
double tlast = sl_dtime();
if(tlast - t0 >= POLLING_INTERVAL){
sendstrmessage(fd, SERVER_COMMAND);
if(getdata(fd)) t0 = tlast;