]> git.pond.sub.org Git - empserver/commitdiff
Make struct telstr members tel_type and tel_length unsigned
authorMarkus Armbruster <armbru@pond.sub.org>
Sat, 7 Feb 2009 18:58:59 +0000 (19:58 +0100)
committerMarkus Armbruster <armbru@pond.sub.org>
Sun, 8 Feb 2009 13:21:15 +0000 (14:21 +0100)
They are simpler to use that way.

include/tel.h
src/lib/commands/rea.c
src/lib/commands/turn.c
src/lib/player/player.c
src/lib/subs/wu.c
src/lib/update/anno.c

index 272bf27b2e1993e9a34fadda853009e3853b5358..aa31c3c874db58127504f3c13e59ca27e01d4042 100644 (file)
@@ -49,8 +49,8 @@
 
 struct telstr {
     natid tel_from;            /* sender */
-    signed char tel_type;
-    long tel_length;           /* how long */
+    unsigned char tel_type;
+    unsigned tel_length;       /* how long */
     time_t tel_date;           /* when sent */
 };
 
index be79809e7253ae278c93ee53d85796fb251b3e23..b53c8ba92ce28e8e5e62cf70ed7a2318e1cf3bd0 100644 (file)
@@ -114,11 +114,7 @@ rea(void)
     lasttype = -1;
     while (fread(&tgm, sizeof(tgm), 1, telfp) == 1) {
        readit = 1;
-       if (tgm.tel_length < 0) {
-           logerror("bad telegram file header in %s", mbox);
-           break;
-       }
-       if (tgm.tel_type < 0 || tgm.tel_type > TEL_LAST) {
+       if (tgm.tel_type > TEL_LAST) {
            pr("Bad telegram header.  Skipping telegram...\n");
            readit = 0;
            goto skip;
@@ -146,7 +142,7 @@ rea(void)
            pr("\n> ");
            lastcnum = tgm.tel_from;
            lasttype = tgm.tel_type;
-           pr("%s ", telnames[(int)tgm.tel_type]);
+           pr("%s ", telnames[tgm.tel_type]);
            if ((tgm.tel_type == TEL_NORM) ||
                (tgm.tel_type == TEL_ANNOUNCE) ||
                (tgm.tel_type == TEL_BULLETIN))
index eef95bbadbbc82f119a1f1068e0749981ee9ec0c..752001edd28d8d496926265c9ad71c26c4976642 100644 (file)
@@ -52,6 +52,7 @@ turn(void)
     char buf[1024];
     char msgbuf[MAXTELSIZE + 1]; /* UTF-8 */
     char *msgfilepath;
+    int len;
 
     p = getstarg(player->argp[1], "on, off or motd? ", buf);
     if (!p)
@@ -76,14 +77,14 @@ turn(void)
     else
        pr("Enter a new message of the day.\n");
 
-    time(&tgm.tel_date);
-    tgm.tel_length = getele("The World", msgbuf);
-    if (tgm.tel_length < 0) {
+    len = getele("The World", msgbuf);
+    if (len < 0) {
        pr("Ignored\n");
        if (msgfilepath == downfil)
            pr("NOT disabling logins.\n");
        return RET_FAIL;
-    } else if (tgm.tel_length == 0) {
+    }
+    if (len == 0) {
        if (msgfilepath == motdfil) {
            pr("Removing exsting motd.\n");
            if ((unlink(msgfilepath) == -1) && (errno != ENOENT)) {
@@ -108,6 +109,8 @@ turn(void)
        pr("Logins disabled.\n");
 
     memset(&tgm, 0, sizeof(tgm));
+    time(&tgm.tel_date);
+    tgm.tel_length = len;
     if ((fwrite(&tgm, sizeof(tgm), 1, fptr) != 1) ||
        (fwrite(msgbuf, tgm.tel_length, 1, fptr) != 1)) {
        fclose(fptr);
index 29a2692f8e0106a641db35be9fd6161e526e6c52..8a95d7dc3fbf36ea00c76416d95cebfbb63d5eb6 100644 (file)
@@ -284,14 +284,14 @@ show_first_tel(char *fname)
        fclose(fp);
        return -1;
     }
-    if (tgm.tel_length >= (long)sizeof(buf)) {
-       logerror("text length (%ld) is too long for login message (%s)",
-                tgm.tel_length, fname);
+    if (tgm.tel_length >= sizeof(buf)) {
+       logerror("text length (%u) is too long for login message (motdfil)",
+                tgm.tel_length);
        fclose(fp);
        return -1;
     }
     if (fread(buf, tgm.tel_length, 1, fp) != 1) {
-       logerror("bad length %ld on login message", tgm.tel_length);
+       logerror("bad length %u on login message", tgm.tel_length);
        fclose(fp);
        return -1;
     }
index ee7b7407b9ca8ae376e86562d8bb8adacb239fbd..d880cd534ea52fec23c4c13edcdf5d57050bcf72 100644 (file)
@@ -115,7 +115,7 @@ wu(natid from, natid to, char *format, ...)
 int
 typed_wu(natid from, natid to, char *message, int type)
 {
-    int len;
+    size_t len;
     struct telstr tel;
     struct natstr *np;
     struct iovec iov[2];
index 94dff3fb4f9f6db773afe56405f8c680447085fb..f40c6e5055cb705cec538725bbbdbe73b1eea680 100644 (file)
@@ -118,14 +118,13 @@ copy_and_expire(FILE *annfp, FILE *tmpfp, char *tmp_filename,
 
     while (fread(&tgm, sizeof(tgm), 1, annfp) == 1) {
        writeit = 1;
-       if (tgm.tel_length < 0 || tgm.tel_length > MAXTELSIZE) {
-           logerror("bad telegram file header (length=%ld)",
+       if (tgm.tel_length > MAXTELSIZE) {
+           logerror("bad telegram file header (length=%d)",
                     tgm.tel_length);
            return 0;
        }
-       if (tgm.tel_type < 0 || tgm.tel_type > TEL_LAST) {
-           logerror("bad telegram file header (type=%d)",
-                    tgm.tel_type);
+       if (tgm.tel_type > TEL_LAST) {
+           logerror("bad telegram file header (type=%d)", tgm.tel_type);
            return 0;
        }
 
@@ -146,15 +145,14 @@ copy_and_expire(FILE *annfp, FILE *tmpfp, char *tmp_filename,
            ++saved;
        } else
            ++deleted;
-       if (fread(message, 1, tgm.tel_length, annfp) !=
-           (size_t)tgm.tel_length) {
+       if (fread(message, 1, tgm.tel_length, annfp) != tgm.tel_length) {
            logerror("error reading body from telegram file %s",
                     annfil);
            return 0;
        }
        if (writeit) {
-           if (fwrite(message, 1, tgm.tel_length, tmpfp) !=
-               (size_t)tgm.tel_length) {
+           if (fwrite(message, 1, tgm.tel_length, tmpfp)
+               != tgm.tel_length) {
                logerror("error writing body to temporary telegram "
                         "file %s", tmp_filename);
                return 0;