diff options
Diffstat (limited to 'plugins/checksum/checksum.c')
-rw-r--r-- | plugins/checksum/checksum.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/plugins/checksum/checksum.c b/plugins/checksum/checksum.c index 6eb85e77..a4cadc19 100644 --- a/plugins/checksum/checksum.c +++ b/plugins/checksum/checksum.c @@ -170,22 +170,24 @@ dccrecv_cb (char *word[], void *userdata) int result; struct stat buffer; /* buffer for storing file info */ char sum[65]; /* buffer for checksum */ - char *file; + const char *file; + char *cfile; + if (hexchat_get_prefs (ph, "dcc_completed_dir", &file, NULL) == 1 && file[0] != 0) { - file = g_strconcat (file, G_DIR_SEPARATOR_S, word[1], NULL); + cfile = g_strconcat (file, G_DIR_SEPARATOR_S, word[1], NULL); } else { - file = g_strdup(word[2]); + cfile = g_strdup(word[2]); } - result = stat (file, &buffer); + result = stat (cfile, &buffer); if (result == 0) /* stat returns 0 on success */ { if (buffer.st_size <= (unsigned long long) get_limit () * 1048576) { - sha256_file (file, sum); /* file is the full filename even if completed dir set */ + sha256_file (cfile, sum); /* file is the full filename even if completed dir set */ /* try to print the checksum in the privmsg tab of the sender */ hexchat_set_context (ph, hexchat_find_context (ph, NULL, word[3])); hexchat_printf (ph, "SHA-256 checksum for %s (local): %s\n", word[1], sum); @@ -201,7 +203,7 @@ dccrecv_cb (char *word[], void *userdata) hexchat_printf (ph, "File access error!\n"); } - g_free (file); + g_free (cfile); return HEXCHAT_EAT_NONE; } |