X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fclient.c;h=885b50efa3601a019e4038001dbb84f9787eaae5;hb=502f900651a46b96008028945616a3b610d6cc7a;hp=98f5a668f96e62c17a5537b106fc62d372ade3e1;hpb=f155969d600561b9ef151a7ce2494a0c89aed033;p=spider.git diff --git a/src/client.c b/src/client.c index 98f5a668..885b50ef 100644 --- a/src/client.c +++ b/src/client.c @@ -90,6 +90,8 @@ char *root = "/spider"; /* root of data tree, can be overridden by DXSPI int timeout = 60; /* default timeout for logins and things */ int paclen = DEFPACLEN; /* default buffer size for outgoing packets */ int tabsize = 8; /* default tabsize for text messages */ +char *connsort = "local"; /* the connection variety */ + myregex_t iscallreg[] = { /* regexes to determine whether this is a reasonable callsign */ { @@ -289,7 +291,7 @@ int fcb_handler(sel_t *sp, int in, int out, int err) unsigned char c; /* input modes */ - if (in) { + if (ending == 0 && in) { char *p, buf[MAXBUFL]; int r; @@ -507,11 +509,11 @@ lend:; */ void setmode(char *m) { - char *connsort = strlower(m); - if (eq(connsort, "telnet") || eq(connsort, "local") || eq(connsort, "nlonly") { + connsort = strlower(m); + if (eq(connsort, "telnet") || eq(connsort, "local") || eq(connsort, "nlonly")) { nl = '\n'; echo = 1; - mode = eq(connsort, "nlonly") 2 : 1; + mode = eq(connsort, "nlonly") ? 2 : 1; } else if (eq(connsort, "ax25")) { nl = '\r'; echo = 0; @@ -577,7 +579,7 @@ lerr: } /* this is kludgy, but hey so is the rest of this! */ - if (!eq(connsort, "ax25") && paclen == DEFPACLEN) { + if (mode != 0 && paclen == DEFPACLEN) { paclen = MAXPACLEN; } } @@ -627,9 +629,11 @@ void term_timeout(int i) void terminate(int i) { +#if 0 if (node && send_Z && call) { send_msg(node, 'Z', "bye", 3); } +#endif signal(SIGALRM, term_timeout); alarm(10); @@ -770,8 +774,6 @@ main(int argc, char *argv[]) /* is this a login? */ if (eq(call, "LOGIN") || eq(call, "login")) { - chgstate(LOGIN); - } else if (eq( char buf[MAXPACLEN+1]; char callsign[MAXCALLSIGN+1]; @@ -850,9 +852,9 @@ lgotcall: send_msg(node, 'A', connsort, strlen(connsort)); /* main processing loop */ - while (!ending) { + while (ending == 0) { sel_run(); - if (!ending) { + if (ending == 0) { process_stdin(); process_node(); }