X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fclient.c;h=fb7e5c137ccd12711061bf054882eb8f193a4e05;hb=refs%2Ftags%2FR_1_39b;hp=e22d84acf8cae4f752d3ee5ba114c73e50d39518;hpb=b4e7cb0bc2d11b44d496e139bab5948625641957;p=spider.git diff --git a/src/client.c b/src/client.c index e22d84ac..fb7e5c13 100644 --- a/src/client.c +++ b/src/client.c @@ -91,10 +91,22 @@ int tabsize = 8; /* default tabsize for text messages */ myregex_t iscallreg[] = { /* regexes to determine whether this is a reasonable callsign */ { - "^[A-Z]+[0-9]+[A-Z]+", 0 + "^[A-Z]+[0-9]+[A-Z]+[1-9]?$", 0 }, { - "^[0-9]+[A-Z]+[0-9]+[A-Z]+", 0 + "^[0-9]+[A-Z]+[0-9]+[A-Z]+[1-9]?$", 0 + }, + { + "^[A-Z]+[0-9]+[A-Z]+[1-9]?-[1-9]$", 0 + }, + { + "^[0-9]+[A-Z]+[0-9]+[A-Z]+[1-9]?-[1-9]$", 0 + }, + { + "^[A-Z]+[0-9]+[A-Z]+[1-9]?-1[0-5]$", 0 + }, + { + "^[0-9]+[A-Z]+[0-9]+[A-Z]+[1-9]?-1[0-5]$", 0 }, { 0, 0 @@ -200,6 +212,10 @@ void send_text(fcb_t *f, char *s, int l) f->obuf = mp = cmsg_new(paclen+1, f->sort, f); } + /* ignore trailing spaces */ + while (l > 0 &&isspace(s[l-1])) + --l; + for (p = s; p < s+l; ) { if (mp->inp >= mp->data + paclen) { flush_text(f); @@ -714,9 +730,11 @@ main(int argc, char *argv[]) } buf[r] = 0; call = strupper(buf); - if (!iscallsign(call)) { - die("Sorry, %s isn't a valid callsign", buf); - } + } + + /* check the callsign */ + if (!iscallsign(call)) { + die("Sorry, %s isn't a valid callsign", call); } /* connect up stdin */