X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=src%2Flib%2Fplayer%2Fplayer.c;h=29a2692f8e0106a641db35be9fd6161e526e6c52;hp=68851e8766610888d9f3cc512601c99a953f145b;hb=d2cd46ce204349e00097322cc9952ffaf1a85908;hpb=1dba1fccee562ead9a1245c4eadb86580974cd1f diff --git a/src/lib/player/player.c b/src/lib/player/player.c index 68851e876..29a2692f8 100644 --- a/src/lib/player/player.c +++ b/src/lib/player/player.c @@ -257,37 +257,48 @@ execute(void) int show_motd(void) { - FILE *motd_fp; + show_first_tel(motdfil); + return RET_OK; +} + +/* + * Print first telegram in file FNAME. + */ +int +show_first_tel(char *fname) +{ + FILE *fp; struct telstr tgm; char buf[MAXTELSIZE + 1]; /* UTF-8 */ - if ((motd_fp = fopen(motdfil, "rb")) == NULL) { + if ((fp = fopen(fname, "rb")) == NULL) { if (errno == ENOENT) - return RET_OK; + return 0; else { - logerror("Could not open motd (%s).\n", motdfil); - return RET_OK; + logerror("Could not open %s.\n", fname); + return -1; } } - if (fread(&tgm, sizeof(tgm), 1, motd_fp) != 1) { - logerror("bad header on login message (motdfil)"); - fclose(motd_fp); - return RET_OK; + if (fread(&tgm, sizeof(tgm), 1, fp) != 1) { + logerror("bad header on login message (%s)", fname); + fclose(fp); + return -1; } if (tgm.tel_length >= (long)sizeof(buf)) { - logerror("text length (%ld) is too long for login message (motdfil)", tgm.tel_length); - fclose(motd_fp); - return RET_OK; + logerror("text length (%ld) is too long for login message (%s)", + tgm.tel_length, fname); + fclose(fp); + return -1; } - if (fread(buf, tgm.tel_length, 1, motd_fp) != 1) { + if (fread(buf, tgm.tel_length, 1, fp) != 1) { logerror("bad length %ld on login message", tgm.tel_length); - fclose(motd_fp); - return RET_OK; + fclose(fp); + return -1; } buf[tgm.tel_length] = 0; uprnf(buf); - fclose(motd_fp); - return RET_OK; + fclose(fp); + return 0; } int