summaryrefslogtreecommitdiff
path: root/protocols/JabberG/src
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/JabberG/src')
-rw-r--r--protocols/JabberG/src/jabber_ft.cpp7
-rwxr-xr-xprotocols/JabberG/src/stdafx.h4
2 files changed, 8 insertions, 3 deletions
diff --git a/protocols/JabberG/src/jabber_ft.cpp b/protocols/JabberG/src/jabber_ft.cpp
index 19fc9f0c44..a2a11e259f 100644
--- a/protocols/JabberG/src/jabber_ft.cpp
+++ b/protocols/JabberG/src/jabber_ft.cpp
@@ -99,8 +99,13 @@ void CJabberProto::FtInitiate(const char* jid, filetransfer *ft)
struct _stat64 st;
_wstat64(ft->std.szCurrentFile.w, &st);
+ auto *pwszContentType = ProtoGetAvatarMimeType(ProtoGetAvatarFileFormat(ft->std.szCurrentFile.w));
+ if (pwszContentType == nullptr)
+ pwszContentType = "application/octet-stream";
+
XmlNodeIq iq(AddIQ(&CJabberProto::OnHttpSlotAllocated, JABBER_IQ_TYPE_GET, szUploadService, ft));
- iq << XCHILDNS("request", "urn:xmpp:http:upload:0") << XATTR("filename", T2Utf(filename)) << XATTRI64("size", st.st_size);
+ iq << XCHILDNS("request", "urn:xmpp:http:upload:0")
+ << XATTR("filename", T2Utf(filename)) << XATTRI64("size", st.st_size) << XATTR("content-type", pwszContentType);
m_ThreadInfo->send(iq);
return;
}
diff --git a/protocols/JabberG/src/stdafx.h b/protocols/JabberG/src/stdafx.h
index cb2c171274..5c43a7d9e7 100755
--- a/protocols/JabberG/src/stdafx.h
+++ b/protocols/JabberG/src/stdafx.h
@@ -405,8 +405,8 @@ struct JABBER_MODEMSGS
char *szFreechat;
};
-typedef enum { FT_SI, FT_OOB, FT_BYTESTREAM, FT_IBB, FT_HTTP } JABBER_FT_TYPE;
-typedef enum { FT_CONNECTING, FT_INITIALIZING, FT_RECEIVING, FT_DONE, FT_ERROR, FT_DENIED } JABBER_FILE_STATE;
+enum JABBER_FT_TYPE { FT_SI, FT_OOB, FT_BYTESTREAM, FT_IBB, FT_HTTP };
+enum JABBER_FILE_STATE { FT_CONNECTING, FT_INITIALIZING, FT_RECEIVING, FT_DONE, FT_ERROR, FT_DENIED };
struct filetransfer
{