Fix checksum plugin when completed dir is set
This commit is contained in:
parent
53c6fe622f
commit
991d3d5401
@ -173,13 +173,22 @@ dccrecv_cb (char *word[], void *userdata)
|
|||||||
int result;
|
int result;
|
||||||
struct stat64 buffer; /* buffer for storing file info */
|
struct stat64 buffer; /* buffer for storing file info */
|
||||||
char sum[65]; /* buffer for checksum */
|
char sum[65]; /* buffer for checksum */
|
||||||
|
char *file;
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
file = word[2];
|
||||||
|
}
|
||||||
|
|
||||||
result = stat64 (word[2], &buffer);
|
result = stat64 (file, &buffer);
|
||||||
if (result == 0) /* stat returns 0 on success */
|
if (result == 0) /* stat returns 0 on success */
|
||||||
{
|
{
|
||||||
if (buffer.st_size <= (unsigned long long) get_limit () * 1048576)
|
if (buffer.st_size <= (unsigned long long) get_limit () * 1048576)
|
||||||
{
|
{
|
||||||
sha256_file (word[2], sum); /* word[2] is the full filename */
|
sha256_file (file, sum); /* file is the full filename even if completed dir set */
|
||||||
/* try to print the checksum in the privmsg tab of the sender */
|
/* try to print the checksum in the privmsg tab of the sender */
|
||||||
hexchat_set_context (ph, hexchat_find_context (ph, NULL, word[3]));
|
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);
|
hexchat_printf (ph, "SHA-256 checksum for %s (local): %s\n", word[1], sum);
|
||||||
@ -195,6 +204,7 @@ dccrecv_cb (char *word[], void *userdata)
|
|||||||
hexchat_printf (ph, "File access error!\n");
|
hexchat_printf (ph, "File access error!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_free (file);
|
||||||
return HEXCHAT_EAT_NONE;
|
return HEXCHAT_EAT_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user