diff options
author | dequis <dx@dxzone.com.ar> | 2016-10-18 03:57:41 -0300 |
---|---|---|
committer | dequis <dx@dxzone.com.ar> | 2016-10-18 03:57:41 -0300 |
commit | b7fec480e00b1b9ba68a403d0b08366161c7c303 (patch) | |
tree | 1a2d04439318532ed2df58d86c578f05ddfd313c /irc_send.c | |
parent | f95e606e153c785dab62a2ac4eab1bc34d41e50a (diff) |
Support motd.txt files bigger than 2048 chars
By using g_file_get_contents()
Diffstat (limited to 'irc_send.c')
-rw-r--r-- | irc_send.c | 16 |
1 files changed, 7 insertions, 9 deletions
@@ -53,19 +53,18 @@ void irc_send_login(irc_t *irc) void irc_send_motd(irc_t *irc) { - char motd[2048]; - ssize_t len; - int fd; + char *motd; + size_t len; - fd = open(global.conf->motdfile, O_RDONLY); - if (fd == -1 || (len = read(fd, motd, sizeof(motd) - 1)) <= 0) { + g_file_get_contents(global.conf->motdfile, &motd, &len, NULL); + + if (!motd || !len) { irc_send_num(irc, 422, ":We don't need MOTDs."); } else { char linebuf[80]; char *add = "", max, *in; in = motd; - motd[len] = '\0'; linebuf[79] = len = 0; max = sizeof(linebuf) - 1; @@ -100,9 +99,8 @@ void irc_send_motd(irc_t *irc) irc_send_num(irc, 376, ":End of MOTD"); } - if (fd != -1) { - close(fd); - } + g_free(motd); + } /* Used by some funcs that generate PRIVMSGs to figure out if we're talking to |