annotate src/vmime-1-fixes.patch @ 2353:99516e73b368

Move doc/index.html -> index.html
author Volker Grabsch <vog@notjusthosting.com>
date Thu, 29 Mar 2012 12:14:15 +0200
parents f653602a0500
children ebe77bc7e002
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2333
f653602a0500 Rebrand to new project name MXE
Volker Grabsch <vog@notjusthosting.com>
parents: 2265
diff changeset
1 This file is part of MXE.
2353
99516e73b368 Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
2 See index.html for further information.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
3
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
4 Cherry picked fixes from svn
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
5 http://sourceforge.net/projects/vmime/develop
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
6
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
7 Produced with this script:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
8 #--------------------------------------------------------------------#
1870
55b66816ba0a fix #! lines for bash
Volker Grabsch <vog@notjusthosting.com>
parents: 1710
diff changeset
9 #!/usr/bin/env bash
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
10
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
11 (
2333
f653602a0500 Rebrand to new project name MXE
Volker Grabsch <vog@notjusthosting.com>
parents: 2265
diff changeset
12 echo "This file is part of MXE."
2353
99516e73b368 Move doc/index.html -> index.html
Volker Grabsch <vog@notjusthosting.com>
parents: 2333
diff changeset
13 echo "See index.html for further information."
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
14 echo
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
15 echo "Cherry picked fixes from svn"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
16 echo "http://sourceforge.net/projects/vmime/develop"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
17 echo
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
18 echo "Produced with this script:"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
19 echo "#--------------------------------------------------------------------#"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
20 cat "$0"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
21 echo "#--------------------------------------------------------------------#"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
22 ) > src/vmime-1-fixes.patch
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
23
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
24 # setup git svn clone
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
25 #cd ~/projects/vmime/git
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
26 #git svn clone -s https://vmime.svn.sourceforge.net/svnroot/vmime
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
27 #git reset --hard
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
28 # get updates
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
29 #git svn fetch
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
30 #git svn rebase
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
31
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
32 GITDIR=~/projects/vmime/git/vmime
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
33
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
34 (
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
35 cd $GITDIR
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
36 echo
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
37 git format-patch -p --relative=vmime --stdout ":/Version 0.9.1"..master-fixed
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
38 ) >> src/vmime-1-fixes.patch
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
39 #--------------------------------------------------------------------#
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
40
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
41 From ed4451fd3c86faf9ecc03a59ba9f1ad78417a9f9 Mon Sep 17 00:00:00 2001
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
42 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
43 Date: Tue, 16 Nov 2010 13:28:05 +0000
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
44 Subject: [PATCH 01/27] Started version 0.9.2.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
45
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
46 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@576 5301114d-f842-0410-bbdd-996ee0417009
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
47
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
48 diff --git a/ChangeLog b/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
49 index 871d055..8fdcdb0 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
50 --- a/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
51 +++ b/ChangeLog
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
52 @@ -1,4 +1,12 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
53
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
54 +VERSION 0.9.2svn
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
55 +================
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
56 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
57 +2010-11-16 Vincent Richard <vincent@vincent-richard.net>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
58 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
59 + * Started version 0.9.2.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
60 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
61 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
62 VERSION 0.9.1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
63 =============
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
64
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
65 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
66 index fb01edf..55f9223 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
67 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
68 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
69 @@ -29,7 +29,7 @@ import string
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
70 # Package version number
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
71 packageVersionMajor = 0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
72 packageVersionMinor = 9
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
73 -packageVersionMicro = 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
74 +packageVersionMicro = 2
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
75
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
76 # API version number (libtool)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
77 #
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
78 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
79 1.7.7.3
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
80
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
81
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
82 From bf282a05cdbbb538a1cafbd7305cece14f5b1571 Mon Sep 17 00:00:00 2001
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
83 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
84 Date: Tue, 30 Nov 2010 14:57:03 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
85 Subject: [PATCH 02/27] Initialize and delete object.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
86
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
87 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@577 5301114d-f842-0410-bbdd-996ee0417009
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
88
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
89 diff --git a/vmime/net/imap/IMAPParser.hpp b/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
90 index 0f3e9ec..d71c3ca 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
91 --- a/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
92 +++ b/vmime/net/imap/IMAPParser.hpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
93 @@ -3823,7 +3823,9 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
94
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
95 msg_att_item()
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
96 : m_date_time(NULL), m_number(NULL), m_envelope(NULL),
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
97 - m_uniqueid(NULL), m_nstring(NULL), m_body(NULL), m_flag_list(NULL)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
98 + m_uniqueid(NULL), m_nstring(NULL), m_body(NULL), m_flag_list(NULL),
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
99 + m_section(NULL)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
100 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
101 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
102 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
103
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
104 @@ -3836,6 +3838,7 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
105 delete (m_nstring);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
106 delete (m_body);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
107 delete (m_flag_list);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
108 + delete (m_section);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
109 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
110
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
111 void go(IMAPParser& parser, string& line, string::size_type* currentPos)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
112 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
113 1.7.7.3
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
114
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
115
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
116 From 941b10bca8e89ca61eebee1345ee3e5cbebd7530 Mon Sep 17 00:00:00 2001
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
117 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
118 Date: Mon, 6 Dec 2010 11:57:44 +0000
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
119 Subject: [PATCH 03/27] Updated deprecated function.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
120
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
121 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@578 5301114d-f842-0410-bbdd-996ee0417009
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
122
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
123 SKIPPED
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
124 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
125 1.7.7.3
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
126
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
127
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
128 From 4a4c3a94db671ff7750b32ebf2c998a914717367 Mon Sep 17 00:00:00 2001
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
129 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
130 Date: Wed, 8 Dec 2010 08:52:54 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
131 Subject: [PATCH 04/27] No extra space between ':' and '<' in MAIL FROM and
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
132 RCPT TO. Wait for server response after QUIT and
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
133 before closing connection.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
134
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
135 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@579 5301114d-f842-0410-bbdd-996ee0417009
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
136
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
137 diff --git a/src/net/smtp/SMTPTransport.cpp b/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
138 index 204daae..d9fb7b8 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
139 --- a/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
140 +++ b/src/net/smtp/SMTPTransport.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
141 @@ -516,6 +516,7 @@ void SMTPTransport::internalDisconnect()
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
142 try
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
143 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
144 sendRequest("QUIT");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
145 + readResponse();
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
146 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
147 catch (exception&)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
148 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
149 @@ -565,7 +566,7 @@ void SMTPTransport::send(const mailbox& expeditor, const mailboxList& recipients
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
150 // Emit the "MAIL" command
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
151 ref <SMTPResponse> resp;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
152
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
153 - sendRequest("MAIL FROM: <" + expeditor.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
154 + sendRequest("MAIL FROM:<" + expeditor.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
155
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
156 if ((resp = readResponse())->getCode() != 250)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
157 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
158 @@ -578,7 +579,7 @@ void SMTPTransport::send(const mailbox& expeditor, const mailboxList& recipients
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
159 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
160 const mailbox& mbox = *recipients.getMailboxAt(i);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
161
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
162 - sendRequest("RCPT TO: <" + mbox.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
163 + sendRequest("RCPT TO:<" + mbox.getEmail() + ">");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
164
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
165 if ((resp = readResponse())->getCode() != 250)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
166 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
167 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
168 1.7.7.3
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
169
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
170
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
171 From 4ea325c953f0cdc669b932aa4961a434656f3ecf Mon Sep 17 00:00:00 2001
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
172 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
173 Date: Fri, 10 Dec 2010 16:24:06 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
174 Subject: [PATCH 05/27] Fixed unit test after bug fix.
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
175
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
176 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@580 5301114d-f842-0410-bbdd-996ee0417009
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
177
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
178 diff --git a/tests/net/smtp/SMTPTransportTest.cpp b/tests/net/smtp/SMTPTransportTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
179 index 5015552..6552f9e 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
180 --- a/tests/net/smtp/SMTPTransportTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
181 +++ b/tests/net/smtp/SMTPTransportTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
182 @@ -165,7 +165,7 @@ public:
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
183 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
184 else if (cmd == "MAIL")
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
185 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
186 - VASSERT_EQ("MAIL", std::string("MAIL FROM: <expeditor@test.vmime.org>"), line);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
187 + VASSERT_EQ("MAIL", std::string("MAIL FROM:<expeditor@test.vmime.org>"), line);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
188
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
189 localSend("250 OK\r\n");
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
190 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
191 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
192 1.7.7.3
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
193
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
194
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
195 From ff207927a5aab002f38af0224133b345ab458144 Mon Sep 17 00:00:00 2001
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
196 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
197 Date: Fri, 10 Dec 2010 16:54:38 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
198 Subject: [PATCH 06/27] Fixed boundary parsing (thanks to John van der Kamp,
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
199 Zarafa).
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
200
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
201 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@581 5301114d-f842-0410-bbdd-996ee0417009
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
202
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
203 diff --git a/src/body.cpp b/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
204 index 13dff6b..738d3e7 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
205 --- a/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
206 +++ b/src/body.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
207 @@ -127,10 +127,30 @@ void body::parse(const string& buffer, const string::size_type position,
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
208 const string boundarySep("--" + boundary);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
209
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
210 string::size_type partStart = position;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
211 - string::size_type pos = buffer.find(boundarySep, position);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
212 + string::size_type pos = position;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
213
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
214 bool lastPart = false;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
215
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
216 + while (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
217 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
218 + pos = buffer.find(boundarySep, pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
219 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
220 + if (pos == string::npos ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
221 + ((pos == 0 || buffer[pos - 1] == '\n') &&
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
222 + (buffer[pos + boundarySep.length()] == '\r' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
223 + buffer[pos + boundarySep.length()] == '\n' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
224 + buffer[pos + boundarySep.length()] == '-'
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
225 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
226 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
227 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
228 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
229 + break;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
230 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
231 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
232 + // boundary not a beginning of line, or just a prefix of another, continue the search.
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
233 + pos++;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
234 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
235 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
236 if (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
237 {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
238 m_prologText = string(buffer.begin() + position, buffer.begin() + pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
239 @@ -181,7 +201,26 @@ void body::parse(const string& buffer, const string::size_type position,
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
240 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
241
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
242 partStart = pos;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
243 - pos = buffer.find(boundarySep, partStart);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
244 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
245 + while (pos != string::npos && pos < end)
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
246 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
247 + pos = buffer.find(boundarySep, pos);
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
248 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
249 + if (pos == string::npos ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
250 + ((pos == 0 || buffer[pos - 1] == '\n') &&
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
251 + (buffer[pos + boundarySep.length()] == '\r' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
252 + buffer[pos + boundarySep.length()] == '\n' ||
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
253 + buffer[pos + boundarySep.length()] == '-'
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
254 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
255 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
256 + )
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
257 + {
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
258 + break;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
259 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
260 +
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
261 + // boundary not a beginning of line, or just a prefix of another, continue the search.
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
262 + pos++;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
263 + }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
264 }
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
265
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
266 m_contents = vmime::create <emptyContentHandler>();
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
267 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
268 index 12c4f74..df2bf85 100644
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
269 --- a/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
270 +++ b/tests/parser/bodyPartTest.cpp
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
271 @@ -84,7 +84,7 @@ VMIME_TEST_SUITE_BEGIN
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
272 vmime::string str =
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
273 "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
274 "\r\n\r\n"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
275 - "--MY-BOUNDARY\r\nHEADER1\r\n\r\nBODY1"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
276 + "--MY-BOUNDARY\r\nHEADER1\r\n\r\nBODY1\r\n"
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
277 "--MY-BOUNDARY\r\nHEADER2\r\n\r\nBODY2";
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
278
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
279 vmime::bodyPart p;
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
280 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
281 1.7.7.3
1506
9b092697dd12 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents:
diff changeset
282
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
283
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
284 From 3f5172e47f75f64952adef349bec875416ae9b89 Mon Sep 17 00:00:00 2001
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
285 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
286 Date: Fri, 21 Jan 2011 15:28:06 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
287 Subject: [PATCH 07/27] Fixed possible infinite loop (thanks to John van der
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
288 Kamp, Zarafa).
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
289
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
290 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@582 5301114d-f842-0410-bbdd-996ee0417009
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
291
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
292 diff --git a/src/word.cpp b/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
293 index db720dc..1c1c1a6 100644
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
294 --- a/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
295 +++ b/src/word.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
296 @@ -386,7 +386,7 @@ void word::generate(utility::outputStream& os, const string::size_type maxLineLe
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
297
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
298 maxRunLength = std::max(maxRunLength, curRunLength);
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
299
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
300 - if (maxRunLength >= maxLineLength - 3)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
301 + if (((flags & text::FORCE_NO_ENCODING) == 0) && maxRunLength >= maxLineLength - 3)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
302 {
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
303 // Generate with encoding forced
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
304 generate(os, maxLineLength, curLinePos, newLinePos, flags | text::FORCE_ENCODING, state);
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
305 diff --git a/tests/parser/textTest.cpp b/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
306 index b84f376..746ac94 100644
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
307 --- a/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
308 +++ b/tests/parser/textTest.cpp
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
309 @@ -52,6 +52,7 @@ VMIME_TEST_SUITE_BEGIN
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
310 VMIME_TEST(testWhitespaceMBox)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
311
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
312 VMIME_TEST(testFoldingAscii)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
313 + VMIME_TEST(testForcedNonEncoding)
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
314 VMIME_TEST_LIST_END
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
315
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
316
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
317 @@ -442,5 +443,15 @@ VMIME_TEST_SUITE_BEGIN
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
318 " =?us-ascii?Q?9012345678901234567890123456789?=", w.generate(50));
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
319 }
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
320
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
321 + void testForcedNonEncoding()
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
322 + {
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
323 + // Testing long unbreakable and unencodable header
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
324 + vmime::relay r;
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
325 + r.parse(" from User (Ee9GMqZQ8t7IQwftfAFHd2KyScCYRrFSJ50tKEoXv2bVCG4HcPU80GGWiFabAvG77FekpGgF1h@[127.0.0.1]) by servername.hostname.com\n\t"
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
326 + "with esmtp id 1NGTS9-2C0sqG0; Fri, 4 Dec 2009 09:23:49 +0100");
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
327 +
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
328 + VASSERT_EQ("received.long", "from User\r\n (Ee9GMqZQ8t7IQwftfAFHd2KyScCYRrFSJ50tKEoXv2bVCG4HcPU80GGWiFabAvG77FekpGgF1h@[127.0.0.1])\r\n by servername.hostname.com with esmtp id 1NGTS9-2C0sqG0; Fri, 4 Dec 2009\r\n 09:23:49 +0100", r.generate(78));
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
329 + }
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
330 +
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
331 VMIME_TEST_SUITE_END
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
332
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
333 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
334 1.7.7.3
1565
249814876c3a cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1506
diff changeset
335
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
336
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
337 From 4e9eb3191066dec7f17592c2ce099b16e6329941 Mon Sep 17 00:00:00 2001
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
338 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
339 Date: Fri, 28 Jan 2011 12:11:08 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
340 Subject: [PATCH 08/27] Fixed possible read to invalid memory location (thanks
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
341 to Alexander Konovalov).
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
342
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
343 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@583 5301114d-f842-0410-bbdd-996ee0417009
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
344
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
345 diff --git a/src/word.cpp b/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
346 index 1c1c1a6..fa08d33 100644
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
347 --- a/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
348 +++ b/src/word.cpp
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
349 @@ -460,7 +460,7 @@ void word::generate(utility::outputStream& os, const string::size_type maxLineLe
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
350
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
351 os << string(curLineStart, p);
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
352
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
353 - if (parserHelpers::isSpace(*(p - 1)))
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
354 + if (p != m_buffer.begin() && parserHelpers::isSpace(*(p - 1)))
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
355 state->lastCharIsSpace = true;
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
356 else
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
357 state->lastCharIsSpace = false;
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
358 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
359 1.7.7.3
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
360
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
361
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
362 From 07ebf241115eba44675223e307d212c772e1cc08 Mon Sep 17 00:00:00 2001
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
363 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
364 Date: Wed, 9 Mar 2011 18:03:31 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
365 Subject: [PATCH 09/27] Fixed bug #3174903. Fixed word parsing when buffer
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
366 does not end with NL. Fixed 'no encoding' when
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
367 forced.
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
368
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
369 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@584 5301114d-f842-0410-bbdd-996ee0417009
1567
10fb4e947a6e cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1565
diff changeset
370
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
371 diff --git a/src/body.cpp b/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
372 index 738d3e7..8596833 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
373 --- a/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
374 +++ b/src/body.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
375 @@ -153,7 +153,10 @@ void body::parse(const string& buffer, const string::size_type position,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
376
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
377 if (pos != string::npos && pos < end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
378 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
379 - m_prologText = string(buffer.begin() + position, buffer.begin() + pos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
380 + vmime::text text;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
381 + text.parse(buffer, position, pos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
382 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
383 + m_prologText = text.getWholeBuffer();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
384 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
385
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
386 for (int index = 0 ; !lastPart && (pos != string::npos) && (pos < end) ; ++index)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
387 @@ -246,7 +249,10 @@ void body::parse(const string& buffer, const string::size_type position,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
388 // Treat remaining text as epilog
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
389 else if (partStart < end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
390 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
391 - m_epilogText = string(buffer.begin() + partStart, buffer.begin() + end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
392 + vmime::text text;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
393 + text.parse(buffer, partStart, end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
394 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
395 + m_epilogText = text.getWholeBuffer();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
396 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
397 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
398 // Treat the contents as 'simple' data
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
399 @@ -333,7 +339,7 @@ void body::generate(utility::outputStream& os, const string::size_type maxLineLe
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
400
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
401 if (!prologText.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
402 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
403 - text prolog(word(prologText, getCharset()));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
404 + text prolog(prologText, vmime::charset("us-ascii"));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
405
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
406 prolog.encodeAndFold(os, maxLineLength, 0,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
407 NULL, text::FORCE_NO_ENCODING | text::NO_NEW_LINE_SEQUENCE);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
408 @@ -356,7 +362,7 @@ void body::generate(utility::outputStream& os, const string::size_type maxLineLe
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
409
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
410 if (!epilogText.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
411 {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
412 - text epilog(word(epilogText, getCharset()));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
413 + text epilog(epilogText, vmime::charset("us-ascii"));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
414
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
415 epilog.encodeAndFold(os, maxLineLength, 0,
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
416 NULL, text::FORCE_NO_ENCODING | text::NO_NEW_LINE_SEQUENCE);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
417 diff --git a/src/word.cpp b/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
418 index fa08d33..aeaa737 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
419 --- a/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
420 +++ b/src/word.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
421 @@ -102,7 +102,9 @@ ref <word> word::parseNext(const string& buffer, const string::size_type positio
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
422 ++pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
423
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
424 unencoded += buffer.substr(startPos, endPos - startPos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
425 - unencoded += ' ';
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
426 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
427 + if (pos != end) // ignore white-spaces at end
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
428 + unencoded += ' ';
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
429
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
430 startPos = pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
431 continue;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
432 @@ -191,14 +193,15 @@ ref <word> word::parseNext(const string& buffer, const string::size_type positio
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
433 ++pos;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
434 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
435
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
436 - // Treat unencoded text at the end of the buffer
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
437 - if (end != startPos)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
438 - {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
439 - if (startPos != pos && !isFirst && prevIsEncoded)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
440 - unencoded += whiteSpaces;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
441 + if (startPos != end && !isFirst && prevIsEncoded)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
442 + unencoded += whiteSpaces;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
443
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
444 + if (startPos != end)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
445 unencoded += buffer.substr(startPos, end - startPos);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
446
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
447 + // Treat unencoded text at the end of the buffer
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
448 + if (!unencoded.empty())
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
449 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
450 ref <word> w = vmime::create <word>(unencoded, charset(charsets::US_ASCII));
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
451 w->setParsedBounds(position, end);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
452
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
453 @@ -337,12 +340,14 @@ void word::generate(utility::outputStream& os, const string::size_type maxLineLe
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
454 state = &defaultGeneratorState;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
455
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
456 // Find out if encoding is forced or required by contents + charset
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
457 - bool encodingNeeded = (flags & text::FORCE_ENCODING) != 0;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
458 + bool encodingNeeded = false;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
459
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
460 - if (encodingNeeded == false)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
461 - encodingNeeded = wordEncoder::isEncodingNeeded(m_buffer, m_charset);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
462 - else if ((flags & text::FORCE_NO_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
463 + if ((flags & text::FORCE_NO_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
464 encodingNeeded = false;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
465 + else if ((flags & text::FORCE_ENCODING) != 0)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
466 + encodingNeeded = true;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
467 + else // auto-detect
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
468 + encodingNeeded = wordEncoder::isEncodingNeeded(m_buffer, m_charset);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
469
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
470 // If possible and requested (with flag), quote the buffer (no folding is performed).
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
471 // Quoting is possible if and only if:
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
472 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
473 index df2bf85..b129913 100644
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
474 --- a/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
475 +++ b/tests/parser/bodyPartTest.cpp
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
476 @@ -34,6 +34,8 @@ VMIME_TEST_SUITE_BEGIN
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
477 VMIME_TEST(testParse)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
478 VMIME_TEST(testGenerate)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
479 VMIME_TEST(testParseMissingLastBoundary)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
480 + VMIME_TEST(testPrologEpilog)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
481 + VMIME_TEST(testPrologEncoding)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
482 VMIME_TEST_LIST_END
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
483
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
484
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
485 @@ -105,5 +107,79 @@ VMIME_TEST_SUITE_BEGIN
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
486 VASSERT_EQ("1", "Foo: bar\r\n\r\nBaz", p1.generate());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
487 }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
488
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
489 + void testPrologEpilog()
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
490 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
491 + const char testMail[] =
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
492 + "To: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
493 + "From: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
494 + "Subject: Prolog and epilog test\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
495 + "Content-Type: multipart/mixed; \r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
496 + " boundary=\"=_boundary\"\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
497 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
498 + "Prolog text\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
499 + "--=_boundary\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
500 + "Content-Type: text/plain\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
501 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
502 + "Part1\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
503 + "--=_boundary--\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
504 + "Epilog text";
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
505 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
506 + vmime::bodyPart part;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
507 + part.parse(testMail);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
508 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
509 + VASSERT_EQ("prolog", "Prolog text", part.getBody()->getPrologText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
510 + VASSERT_EQ("epilog", "Epilog text", part.getBody()->getEpilogText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
511 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
512 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
513 + // Test for bug fix: prolog should not be encoded
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
514 + // http://sourceforge.net/tracker/?func=detail&atid=525568&aid=3174903&group_id=69724
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
515 + void testPrologEncoding()
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
516 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
517 + const char testmail[] =
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
518 + "To: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
519 + "From: test@vmime.org\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
520 + "Subject: Prolog encoding test\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
521 + "Content-Type: multipart/mixed; \r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
522 + " boundary=\"=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\"\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
523 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
524 + "This is a multi-part message in MIME format. Your mail reader does not\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
525 + "understand MIME message format.\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
526 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
527 + "Content-Type: text/html; charset=windows-1251\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
528 + "Content-Transfer-Encoding: quoted-printable\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
529 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
530 + "=DD=F2=EE =F2=E5=EA=F1=F2=EE=E2=E0=FF =F7=E0=F1=F2=FC =F1=EB=EE=E6=ED=EE=E3=\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
531 + "=EE =F1=EE=EE=E1=F9=E5=ED=E8=FF\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
532 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
533 + "Content-Type: application/octet-stream; charset=windows-1251\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
534 + "Content-Disposition: attachment; filename=FNS.zip\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
535 + "Content-Transfer-Encoding: base64\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
536 + "\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
537 + "UEsDBB...snap...EEAAAAAA==\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
538 + "--=_+ZWjySayKqSf2CyrfnNpaAcO6-G1HpoXdHZ4YyswAWqEY39Q--\r\n"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
539 + "Epilog text";
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
540 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
541 + vmime::ref<vmime::message> msg = vmime::create<vmime::message>();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
542 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
543 + std::string istr(testmail);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
544 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
545 + std::string ostr;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
546 + vmime::utility::outputStreamStringAdapter out(ostr);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
547 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
548 + for (int i = 0 ; i < 10 ; ++i)
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
549 + {
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
550 + ostr.clear();
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
551 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
552 + msg->parse(istr);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
553 + msg->generate(out);
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
554 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
555 + istr = ostr;
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
556 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
557 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
558 + VASSERT_EQ("prolog", "This is a multi-part message in MIME format. Your mail reader"
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
559 + " does not understand MIME message format.", msg->getBody()->getPrologText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
560 + VASSERT_EQ("epilog", "Epilog text", msg->getBody()->getEpilogText());
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
561 + }
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
562 +
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
563 VMIME_TEST_SUITE_END
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
564
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
565 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
566 1.7.7.3
1659
60b6921403e5 cherry-picked fixes for package vmime
Mark Brand <mabrand@mabrand.nl>
parents: 1567
diff changeset
567
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
568
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
569 From 22ca7dc23b6bbbc8cc6aedd569ec938ecae96e92 Mon Sep 17 00:00:00 2001
1710
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
570 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
571 Date: Sun, 27 Mar 2011 11:26:55 +0000
2333
f653602a0500 Rebrand to new project name MXE
Volker Grabsch <vog@notjusthosting.com>
parents: 2265
diff changeset
572 Subject: [PATCH 10/27] Allow static linking in MXE. Added 'iconv'
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
573 and uses 'ws2_32' instead of 'winsock32' (#3213487).
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
574
1710
d3bf5db5a40f patch provenance
Mark Brand <mabrand@mabrand.nl>
parents: 1668
diff changeset
575 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@585 5301114d-f842-0410-bbdd-996ee0417009
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
576
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
577 diff --git a/SConstruct b/SConstruct
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
578 index 55f9223..177f5b4 100644
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
579 --- a/SConstruct
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
580 +++ b/SConstruct
1668
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
581 @@ -1089,7 +1089,7 @@ def generateAutotools(target, source, env):
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
582 vmime_pc_in.write("Description: " + packageDescription + "\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
583 vmime_pc_in.write("Version: @VERSION@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
584 vmime_pc_in.write("Requires: @GSASL_REQUIRED@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
585 - vmime_pc_in.write("Libs: -L${libdir} -l@GENERIC_VERSIONED_LIBRARY_NAME@ @GSASL_LIBS@ @LIBGNUTLS_LIBS@ @VMIME_ADDITIONAL_PC_LIBS@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
586 + vmime_pc_in.write("Libs: -L${libdir} -l@GENERIC_VERSIONED_LIBRARY_NAME@ @GSASL_LIBS@ @LIBGNUTLS_LIBS@ @LIBICONV@ @PTHREAD_LIBS@ @VMIME_ADDITIONAL_PC_LIBS@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
587 #vmime_pc_in.write("Cflags: -I${includedir}/@GENERIC_VERSIONED_LIBRARY_NAME@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
588 vmime_pc_in.write("Cflags: -I${includedir}/ @LIBGNUTLS_CFLAGS@\n")
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
589 vmime_pc_in.close()
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
590 @@ -1709,7 +1709,7 @@ fi
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
591
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
592 # -- Link with Winsock (Windows)
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
593 if test "x$VMIME_DETECT_PLATFORM" = "xwindows"; then
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
594 - VMIME_ADDITIONAL_PC_LIBS="$VMIME_ADDITIONAL_PC_LIBS -lwsock32"
1668
4ee38be1b1cd package vmime: fix and use .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1660
diff changeset
595 + VMIME_ADDITIONAL_PC_LIBS="$VMIME_ADDITIONAL_PC_LIBS -lws2_32"
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
596 fi
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
597
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
598 # -- getaddrinfo (POSIX)
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
599 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
600 1.7.7.3
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
601
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
602
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
603 From 9e06cc39d47e2eba8f554b337d472cc995be0d9d Mon Sep 17 00:00:00 2001
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
604 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
605 Date: Thu, 31 Mar 2011 19:13:03 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
606 Subject: [PATCH 11/27] Flush stateful data from iconv (thanks to John van der
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
607 Kamp, Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
608
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
609 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@586 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
610
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
611 diff --git a/src/charsetConverter.cpp b/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
612 index 38b9e5e..2135788 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
613 --- a/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
614 +++ b/src/charsetConverter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
615 @@ -119,6 +119,7 @@ void charsetConverter::convert(utility::inputStream& in, utility::outputStream&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
616 size_t inPos = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
617
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
618 bool prevIsInvalid = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
619 + bool breakAfterNext = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
620
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
621 while (true)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
622 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
623 @@ -126,11 +127,12 @@ void charsetConverter::convert(utility::inputStream& in, utility::outputStream&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
624 size_t inLength = static_cast <size_t>(in.read(inBuffer + inPos, sizeof(inBuffer) - inPos) + inPos);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
625 size_t outLength = sizeof(outBuffer);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
626
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
627 - const char* inPtr = inBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
628 + const char* inPtr = breakAfterNext ? NULL : inBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
629 + size_t *ptrLength = breakAfterNext ? NULL : &inLength;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
630 char* outPtr = outBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
631
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
632 // Convert input bytes
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
633 - if (iconv(cd, ICONV_HACK(&inPtr), &inLength,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
634 + if (iconv(cd, ICONV_HACK(&inPtr), ptrLength,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
635 &outPtr, &outLength) == static_cast <size_t>(-1))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
636 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
637 // Illegal input sequence or input sequence has no equivalent
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
638 @@ -170,9 +172,12 @@ void charsetConverter::convert(utility::inputStream& in, utility::outputStream&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
639 prevIsInvalid = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
640 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
641
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
642 - // Check for end of data
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
643 - if (in.eof() && inPos == 0)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
644 + if (breakAfterNext)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
645 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
646 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
647 + // Check for end of data, loop again to flush stateful data from iconv
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
648 + if (in.eof() && inPos == 0)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
649 + breakAfterNext = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
650 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
651 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
652
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
653 diff --git a/tests/parser/charsetTest.cpp b/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
654 index 8ad71d7..54a09a7 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
655 --- a/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
656 +++ b/tests/parser/charsetTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
657 @@ -100,6 +100,7 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
658 VMIME_TEST(testFilterValid1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
659 VMIME_TEST(testFilterValid2)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
660 VMIME_TEST(testFilterValid3)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
661 + VMIME_TEST(testEncodingHebrew1255)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
662
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
663 // Test invalid input
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
664 VMIME_TEST(testFilterInvalid1)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
665 @@ -227,6 +228,15 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
666 VASSERT_EQ("1", toHex(expectedOut), toHex(actualOut));
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
667 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
668
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
669 + void testEncodingHebrew1255()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
670 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
671 + // hewbrew string in windows-1255 charset
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
672 + const char data[] = "\xe9\xf9\xf7\xf8\xe9\xf9\xf8\xf7\xe9\xe9\xf9";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
673 + vmime::word w = vmime::word(data, "windows-1255");
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
674 + vmime::string encoded = w.generate();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
675 + // less than 60% ascii, base64 received
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
676 + VASSERT_EQ("1", "=?windows-1255?B?6fn3+On5+Pfp6fk=?=", encoded);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
677 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
678
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
679 // Conversion to hexadecimal for easier debugging
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
680 static const vmime::string toHex(const vmime::string str)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
681 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
682 1.7.7.3
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
683
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
684
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
685 From 418a39a7d33921672bd1c4beb31c8a31bc87d8dd Mon Sep 17 00:00:00 2001
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
686 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
687 Date: Fri, 10 Jun 2011 19:39:09 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
688 Subject: [PATCH 12/27] Requested email change.
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
689
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
690 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@587 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
691
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
692 diff --git a/AUTHORS b/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
693 index 20a0181..bbddb30 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
694 --- a/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
695 +++ b/AUTHORS
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
696 @@ -21,7 +21,7 @@ AUTHORS file.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
697 - Rafael Fernandez <prf@adinet.com.uy>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
698 - Xin Li <lixin3@staff.sina.com.cn>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
699 - Benjamin Biron <benbiron@gmail.com>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
700 - - Bertrand Benoit <bsquare@bsquare.levillage.org>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
701 + - Bertrand Benoit <projettwk@users.sourceforge.net>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
702 - Tim Teulings <rael@edge.ping.de>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
703 - Georg Sauthoff <gsauthof@techfak.uni-bielefeld.de>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
704 - Pierre Thierry <nowhere.man@levallois.eu.org> (patches for STL algorithms)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
705 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
706 1.7.7.3
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
707
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
708
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
709 From 4008955783ef566b98b16762c7bfa28df26e9198 Mon Sep 17 00:00:00 2001
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
710 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
711 Date: Tue, 14 Jun 2011 18:37:54 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
712 Subject: [PATCH 13/27] Fixed compilation issue following namespace change.
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
713
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
714 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@588 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
715
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
716 diff --git a/examples/example7.cpp b/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
717 index 1ddb3d0..243b1da 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
718 --- a/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
719 +++ b/examples/example7.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
720 @@ -43,18 +43,18 @@ int main()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
721 vmime::platform::setHandler<vmime::platforms::posix::posixHandler>();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
722
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
723 // Enumerate encoders
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
724 - vmime::encoderFactory* ef = vmime::encoderFactory::getInstance();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
725 + vmime::utility::encoder::encoderFactory* ef = vmime::utility::encoder::encoderFactory::getInstance();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
726
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
727 std::cout << "Available encoders:" << std::endl;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
728
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
729 for (int i = 0 ; i < ef->getEncoderCount() ; ++i)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
730 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
731 - vmime::ref <const vmime::encoderFactory::registeredEncoder>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
732 + vmime::ref <const vmime::utility::encoder::encoderFactory::registeredEncoder>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
733 enc = ef->getEncoderAt(i);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
734
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
735 std::cout << " * " << enc->getName() << std::endl;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
736
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
737 - vmime::ref <vmime::encoder> e = enc->create();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
738 + vmime::ref <vmime::utility::encoder::encoder> e = enc->create();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
739
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
740 std::vector <vmime::string> props = e->getAvailableProperties();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
741
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
742 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
743 1.7.7.3
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
744
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
745
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
746 From e80db1ce802a45b71659d16d77ea47368beeabc1 Mon Sep 17 00:00:00 2001
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
747 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
748 Date: Sun, 19 Jun 2011 17:51:33 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
749 Subject: [PATCH 14/27] Fixed parsing of an attachment filename that is
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
750 between 66 and 76 characters long (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
751
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
752 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@589 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
753
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
754 diff --git a/src/parameter.cpp b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
755 index 91a7e5c..f59d5ab 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
756 --- a/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
757 +++ b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
758 @@ -281,7 +281,8 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
759 bool needQuoting = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
760 string::size_type valueLength = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
761
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
762 - for (string::size_type i = 0 ; (i < value.length()) && (pos + valueLength < maxLineLength - 4) ; ++i, ++valueLength)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
763 + // Use worst-case length name.length()+2 for 'name=' part of line
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
764 + for (string::size_type i = 0 ; (i < value.length()) && (pos + name.length() + 2 + valueLength < maxLineLength - 4) ; ++i, ++valueLength)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
765 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
766 switch (value[i])
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
767 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
768 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
769 1.7.7.3
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
770
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
771
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
772 From 58316dddddbfe8a7c582aa52e9abff8ca3a227b6 Mon Sep 17 00:00:00 2001
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
773 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
774 Date: Sun, 19 Jun 2011 18:08:12 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
775 Subject: [PATCH 15/27] Correctly generate attachment names which are long and
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
776 have high characters for Outlook Express (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
777
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
778 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@590 5301114d-f842-0410-bbdd-996ee0417009
1660
2af2bc5dca3f package vmime: fix .pc file
Mark Brand <mabrand@mabrand.nl>
parents: 1659
diff changeset
779
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
780 diff --git a/src/parameter.cpp b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
781 index f59d5ab..d757e1b 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
782 --- a/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
783 +++ b/src/parameter.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
784 @@ -268,17 +268,19 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
785 // value is to be generated.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
786
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
787 // A stream for a temporary storage
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
788 - std::ostringstream sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
789 + std::string sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
790 + utility::outputStreamStringAdapter sevenBitStream(sevenBitBuffer);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
791
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
792 string::size_type pos = curLinePos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
793
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
794 if (pos + name.length() + 10 + value.length() > maxLineLength)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
795 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
796 - sevenBitBuffer << NEW_LINE_SEQUENCE;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
797 + sevenBitStream << NEW_LINE_SEQUENCE;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
798 pos = NEW_LINE_SEQUENCE_LENGTH;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
799 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
800
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
801 bool needQuoting = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
802 + bool needQuotedPrintable = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
803 string::size_type valueLength = 0;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
804
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
805 // Use worst-case length name.length()+2 for 'name=' part of line
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
806 @@ -308,6 +310,16 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
807
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
808 needQuoting = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
809 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
810 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
811 + default:
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
812 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
813 + if (!parserHelpers::isAscii(value[i]))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
814 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
815 + needQuotedPrintable = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
816 + needQuoting = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
817 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
818 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
819 + break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
820 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
821 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
822
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
823 @@ -315,12 +327,12 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
824
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
825 if (needQuoting)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
826 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
827 - sevenBitBuffer << name << "=\"";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
828 + sevenBitStream << name << "=\"";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
829 pos += name.length() + 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
830 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
831 else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
832 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
833 - sevenBitBuffer << name << "=";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
834 + sevenBitStream << name << "=";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
835 pos += name.length() + 1;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
836 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
837
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
838 @@ -332,29 +344,43 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
839 const bool alwaysEncode = m_value.getCharset().getRecommendedEncoding(recommendedEnc);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
840 bool extended = alwaysEncode;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
841
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
842 - for (string::size_type i = 0 ; (i < value.length()) && (pos < maxLineLength - 4) ; ++i)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
843 + if (needQuotedPrintable)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
844 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
845 - const char_t c = value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
846 -
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
847 - if (/* needQuoting && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
848 - {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
849 - sevenBitBuffer << '\\' << value[i]; // escape 'x' with '\x'
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
850 - pos += 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
851 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
852 - else if (parserHelpers::isAscii(c))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
853 - {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
854 - sevenBitBuffer << value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
855 - ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
856 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
857 - else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
858 + // Send the name in quoted-printable, so outlook express et.al.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
859 + // will understand the real filename
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
860 + size_t oldLen = sevenBitBuffer.length();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
861 + m_value.generate(sevenBitStream);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
862 + pos += sevenBitBuffer.length() - oldLen;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
863 + extended = true; // also send with RFC-2231 encoding
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
864 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
865 + else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
866 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
867 + // Do not chop off this value, but just add the complete name as one header line.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
868 + for (string::size_type i = 0 ; i < value.length() ; ++i)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
869 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
870 - extended = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
871 + const char_t c = value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
872 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
873 + if (/* needQuoting && */ (c == '"' || c == '\\')) // 'needQuoting' is implicit
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
874 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
875 + sevenBitStream << '\\' << value[i]; // escape 'x' with '\x'
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
876 + pos += 2;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
877 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
878 + else if (parserHelpers::isAscii(c))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
879 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
880 + sevenBitStream << value[i];
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
881 + ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
882 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
883 + else
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
884 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
885 + extended = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
886 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
887 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
888 - }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
889 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
890 + } // !needQuotedPrintable
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
892 if (needQuoting)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
893 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
894 - sevenBitBuffer << '"';
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
895 + sevenBitStream << '"';
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
896 ++pos;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
897 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
898
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
899 @@ -532,7 +558,7 @@ void parameter::generate(utility::outputStream& os, const string::size_type maxL
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
900 // "7bit/us-ascii" will suffice in this case.
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
901
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
902 // Output what has been stored in temporary buffer so far
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
903 - os << sevenBitBuffer.str();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
904 + os << sevenBitBuffer;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
905 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
906 #endif // !VMIME_ALWAYS_GENERATE_7BIT_PARAMETER
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
907
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
908 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
909 1.7.7.3
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
910
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
911
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
912 From f7ad17cffea462faf8cbe4f785644da0f3ee812a Mon Sep 17 00:00:00 2001
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
913 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
914 Date: Sun, 19 Jun 2011 18:16:49 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
915 Subject: [PATCH 16/27] Alias for UTF-7 charset.
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
916
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
917 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@591 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
918
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
919 diff --git a/src/charset.cpp b/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
920 index e043186..0fda450 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
921 --- a/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
922 +++ b/src/charset.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
923 @@ -45,6 +45,9 @@ charset::charset()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
924 charset::charset(const string& name)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
925 : m_name(name)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
926 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
927 + // If we receive this rfc-1642 valid MIME charset, convert it to something usefull for iconv
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
928 + if (utility::stringUtils::isStringEqualNoCase(m_name, "unicode-1-1-utf-7"))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
929 + m_name = "utf-7";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
930 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
931
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
932
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
933 @@ -60,6 +63,10 @@ void charset::parse(const string& buffer, const string::size_type position,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
934 m_name = utility::stringUtils::trim
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
935 (string(buffer.begin() + position, buffer.begin() + end));
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
936
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
937 + // If we parsed this rfc-1642 valid MIME charset, convert it to something usefull for iconv
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
938 + if (utility::stringUtils::isStringEqualNoCase(m_name, "unicode-1-1-utf-7"))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
939 + m_name = "utf-7";
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
940 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
941 setParsedBounds(position, end);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
942
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
943 if (newPosition)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
944 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
945 1.7.7.3
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
946
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
947
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
948 From eac20f47a33a7fdd617f9fd905b8029621259269 Mon Sep 17 00:00:00 2001
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
949 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
950 Date: Sun, 19 Jun 2011 18:39:35 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
951 Subject: [PATCH 17/27] Fixed messageBuilder to accept an empty mailbox group
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
952 in 'To:' field, to allow for undisclosed-recipients
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
953 (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
954
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
955 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@592 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
956
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
957 diff --git a/src/messageBuilder.cpp b/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
958 index 870d59e..3597b3a 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
959 --- a/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
960 +++ b/src/messageBuilder.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
961 @@ -51,17 +51,15 @@ ref <message> messageBuilder::construct() const
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
962 // Generate the header fields
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
963 msg->getHeader()->Subject()->setValue(m_subject);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
964
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
965 - if (m_from.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
966 - throw exceptions::no_expeditor();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
967 -
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
968 - if ((m_to.isEmpty() || m_to.getAddressAt(0)->isEmpty()) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
969 + if (((m_to.isEmpty()) || (m_to.getAddressAt(0)->isEmpty() && !m_to.getAddressAt(0)->isGroup())) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
970 (m_cc.isEmpty() || m_cc.getAddressAt(0)->isEmpty()) &&
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
971 (m_bcc.isEmpty() || m_bcc.getAddressAt(0)->isEmpty()))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
972 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
973 throw exceptions::no_recipient();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
974 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
975
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
976 - msg->getHeader()->From()->setValue(m_from);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
977 + if (!m_from.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
978 + msg->getHeader()->From()->setValue(m_from);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
979
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
980 if (!m_to.isEmpty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
981 msg->getHeader()->To()->setValue(m_to);
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
982 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
983 1.7.7.3
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
984
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
985
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
986 From 1e5dfa80a63b0a7fe90406ce4a3de1593f2e4045 Mon Sep 17 00:00:00 2001
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
987 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
988 Date: Sun, 19 Jun 2011 18:49:55 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
989 Subject: [PATCH 18/27] Added support for mailboxes that specify an (encoded)
1891
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
990 full name with an empty email address, set by a <>
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
991 marker (Zarafa).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
992
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
993 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@593 5301114d-f842-0410-bbdd-996ee0417009
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
994
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
995 diff --git a/src/mailbox.cpp b/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
996 index 5cb0139..fea7479 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
997 --- a/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
998 +++ b/src/mailbox.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
999 @@ -88,6 +88,7 @@ void mailbox::parse(const string& buffer, const string::size_type position,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1000 // Temporary buffers for extracted name and address
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1001 string name;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1002 string address;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1003 + bool hadBrackets = false;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1004
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1005 while (p < pend)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1006 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1007 @@ -283,6 +284,7 @@ void mailbox::parse(const string& buffer, const string::size_type position,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1008 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1009 else if (*p == '>')
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1010 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1011 + hadBrackets = true;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1012 break;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1013 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1014 else if (!parserHelpers::isSpace(*p))
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1015 @@ -309,7 +311,7 @@ void mailbox::parse(const string& buffer, const string::size_type position,
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1016
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1017 // Swap name and address when no address was found
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1018 // (email address is mandatory, whereas name is optional).
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1019 - if (address.empty() && !name.empty())
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1020 + if (address.empty() && !name.empty() && !hadBrackets)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1021 {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1022 m_email.clear();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1023 m_email.reserve(name.size());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1024 diff --git a/tests/parser/mailboxTest.cpp b/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1025 index 8411daa..9ebadca 100644
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1026 --- a/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1027 +++ b/tests/parser/mailboxTest.cpp
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1028 @@ -32,6 +32,7 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1029
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1030 VMIME_TEST_LIST_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1031 VMIME_TEST(testParse)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1032 + VMIME_TEST(testEmptyEmailAddress)
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1033 VMIME_TEST_LIST_END
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1034
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1035
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1036 @@ -113,5 +114,19 @@ VMIME_TEST_SUITE_BEGIN
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1037 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1038 }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1039
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1040 + void testEmptyEmailAddress()
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1041 + {
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1042 + vmime::addressList addrList;
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1043 + addrList.parse("\"Full Name\" <>");
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1044 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1045 + VASSERT_EQ("count", 1, addrList.getAddressCount());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1046 + VASSERT_EQ("!group", false, addrList.getAddressAt(0)->isGroup());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1047 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1048 + vmime::ref <vmime::mailbox> mbox = addrList.getAddressAt(0).dynamicCast <vmime::mailbox>();
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1049 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1050 + VASSERT_EQ("name", "Full Name", mbox->getName());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1051 + VASSERT_EQ("email", "", mbox->getEmail());
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1052 + }
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1053 +
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1054 VMIME_TEST_SUITE_END
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1055
8b7126f6b0ff package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1710
diff changeset
1056 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1057 1.7.7.3
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1058
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1059
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1060 From 960f2195516eb776eea7b7e4f92612192edfdcd9 Mon Sep 17 00:00:00 2001
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1061 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1062 Date: Fri, 24 Jun 2011 15:46:23 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1063 Subject: [PATCH 19/27] Added missing libs in pkg-config file.
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1064
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1065 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@594 5301114d-f842-0410-bbdd-996ee0417009
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1066
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1067 diff --git a/SConstruct b/SConstruct
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1068 index 177f5b4..37c0ac6 100644
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1069 --- a/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1070 +++ b/SConstruct
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1071 @@ -1089,7 +1089,7 @@ def generateAutotools(target, source, env):
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1072 vmime_pc_in.write("Description: " + packageDescription + "\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1073 vmime_pc_in.write("Version: @VERSION@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1074 vmime_pc_in.write("Requires: @GSASL_REQUIRED@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1075 - vmime_pc_in.write("Libs: -L${libdir} -l@GENERIC_VERSIONED_LIBRARY_NAME@ @GSASL_LIBS@ @LIBGNUTLS_LIBS@ @LIBICONV@ @PTHREAD_LIBS@ @VMIME_ADDITIONAL_PC_LIBS@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1076 + vmime_pc_in.write("Libs: -L${libdir} -l@GENERIC_VERSIONED_LIBRARY_NAME@ @GSASL_LIBS@ @LIBGNUTLS_LIBS@ @LIBICONV@ @PTHREAD_LIBS@ @LIBICONV@ @PTHREAD_LIBS@ @VMIME_ADDITIONAL_PC_LIBS@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1077 #vmime_pc_in.write("Cflags: -I${includedir}/@GENERIC_VERSIONED_LIBRARY_NAME@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1078 vmime_pc_in.write("Cflags: -I${includedir}/ @LIBGNUTLS_CFLAGS@\n")
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1079 vmime_pc_in.close()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1080 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1081 1.7.7.3
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1082
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1083
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1084 From 9f9084b71b4e3c96edc6513020984ef76fe26e0c Mon Sep 17 00:00:00 2001
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1085 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1086 Date: Sat, 25 Jun 2011 17:07:53 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1087 Subject: [PATCH 20/27] Fixed parsing of empty body parts (thanks to John van
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1088 der Kamp, from Zarafa).
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1089
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1090 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@595 5301114d-f842-0410-bbdd-996ee0417009
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1091
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1092 diff --git a/src/body.cpp b/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1093 index 8596833..9d7d57f 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1094 --- a/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1095 +++ b/src/body.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1096 @@ -197,6 +197,11 @@ void body::parse(const string& buffer, const string::size_type position,
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1097 {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1098 ref <bodyPart> part = vmime::create <bodyPart>();
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1099
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1100 + // End before start may happen on empty bodyparts (directly
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1101 + // successive boundaries without even a line-break)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1102 + if (partEnd < partStart)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1103 + std::swap(partStart, partEnd);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1104 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1105 part->parse(buffer, partStart, partEnd, NULL);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1106 part->m_parent = m_part;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1107
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1108 diff --git a/tests/parser/bodyPartTest.cpp b/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1109 index b129913..075b8f9 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1110 --- a/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1111 +++ b/tests/parser/bodyPartTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1112 @@ -36,6 +36,7 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1113 VMIME_TEST(testParseMissingLastBoundary)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1114 VMIME_TEST(testPrologEpilog)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1115 VMIME_TEST(testPrologEncoding)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1116 + VMIME_TEST(testSuccessiveBoundaries)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1117 VMIME_TEST_LIST_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1118
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1119
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1120 @@ -181,5 +182,23 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1121 VASSERT_EQ("epilog", "Epilog text", msg->getBody()->getEpilogText());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1122 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1123
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1124 + void testSuccessiveBoundaries()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1125 + {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1126 + vmime::string str =
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1127 + "Content-Type: multipart/mixed; boundary=\"MY-BOUNDARY\""
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1128 + "\r\n\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1129 + "--MY-BOUNDARY\r\nHEADER1\r\n\r\nBODY1\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1130 + "--MY-BOUNDARY\r\n"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1131 + "--MY-BOUNDARY--\r\n";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1132 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1133 + vmime::bodyPart p;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1134 + p.parse(str);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1135 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1136 + VASSERT_EQ("count", 2, p.getBody()->getPartCount());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1137 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1138 + VASSERT_EQ("part1-body", "BODY1", extractContents(p.getBody()->getPartAt(0)->getBody()->getContents()));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1139 + VASSERT_EQ("part2-body", "", extractContents(p.getBody()->getPartAt(1)->getBody()->getContents()));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1140 + }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1141 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1142 VMIME_TEST_SUITE_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1143
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1144 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1145 1.7.7.3
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1146
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1147
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1148 From 318848aa87761214a6f21c1ea1a9776a7bcbf83c Mon Sep 17 00:00:00 2001
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1149 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1150 Date: Sun, 26 Jun 2011 08:19:11 +0000
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1151 Subject: [PATCH 21/27] Use gnutls_priority_set_direct() instead of GNUTLS
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1152 deprecated functions.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1153
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1154 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@596 5301114d-f842-0410-bbdd-996ee0417009
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1155
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1156 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1157 index 37c0ac6..01ad3f3 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1158 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1159 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1160 @@ -816,6 +816,7 @@ else:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1161 config_hpp.write('// -- TLS/SSL support\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1162 if env['with_tls'] == 'yes':
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1163 config_hpp.write('#define VMIME_HAVE_TLS_SUPPORT 1\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1164 + config_hpp.write('#define HAVE_GNUTLS_PRIORITY_FUNCS 1\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1165 else:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1166 config_hpp.write('#define VMIME_HAVE_TLS_SUPPORT 0\n')
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1167
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1168 @@ -1626,11 +1627,42 @@ if test "x$conf_tls" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1169 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1170 AC_MSG_ERROR(can't find an usable version of GNU TLS library)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1171 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1172 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1173 + # -- check for gnutls_priority_set_direct() function
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1174 + if test "x$have_gnutls" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1175 + AC_MSG_CHECKING(for gnutls_priority_set_direct)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1176 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1177 + LIBS_save="$LIBS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1178 + LIBS="$LIBS $LIBGNUTLS_LIBS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1179 + CPPFLAGS_save="$CPPFLAGS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1180 + CPPFLAGS="$CPPFLAGS $LIBGNUTLS_CFLAGS"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1181 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1182 + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <gnutls/gnutls.h>],
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1183 + [gnutls_session s; gnutls_priority_set_direct(s, NULL, NULL);])],
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1184 + [have_gnutls_priority_funcs=yes],
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1185 + [have_gnutls_priority_funcs=no])
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1186 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1187 + CPPFLAGS="$CPPFLAGS_save"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1188 + LIBS="$LIBS_save"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1189 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1190 + AC_MSG_RESULT([$have_gnutls_priority_funcs])
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1191 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1192 + if test "x$have_gnutls_priority_funcs" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1193 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, true)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1194 + HAVE_GNUTLS_PRIORITY_FUNCS=1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1195 + else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1196 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1197 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1198 + fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1199 + fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1200 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1201 AM_CONDITIONAL(VMIME_HAVE_TLS_SUPPORT, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1202 VMIME_HAVE_TLS_SUPPORT=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1203 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1204
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1205 +AC_SUBST(LIBGNUTLS_CFLAGS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1206 +AC_SUBST(LIBGNUTLS_LIBS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1207 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1208 # ** platform handlers
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1209
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1210 VMIME_BUILTIN_PLATFORMS=''
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1211 @@ -1919,6 +1951,7 @@ typedef unsigned ${VMIME_TYPE_INT32} vmime_uint32;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1212 #define VMIME_HAVE_SASL_SUPPORT ${VMIME_HAVE_SASL_SUPPORT}
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1213 // -- TLS support
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1214 #define VMIME_HAVE_TLS_SUPPORT ${VMIME_HAVE_TLS_SUPPORT}
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1215 +#define HAVE_GNUTLS_PRIORITY_FUNCS ${HAVE_GNUTLS_PRIORITY_FUNCS}
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1216 // -- Messaging support
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1217 #define VMIME_HAVE_MESSAGING_FEATURES ${VMIME_HAVE_MESSAGING_FEATURES}
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1218 """)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1219 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1220 index 010c007..af73a05 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1221 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1222 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1223 @@ -123,6 +123,21 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1224
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1225 // Sets some default priority on the ciphers, key exchange methods,
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1226 // macs and compression methods.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1227 +#if HAVE_GNUTLS_PRIORITY_FUNCS
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1228 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1229 + if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1230 + (*m_gnutlsSession, "NORMAL:%SSL3_RECORD_VERSION", NULL)) != 0)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1231 + {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1232 + if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1233 + (*m_gnutlsSession, "NORMAL", NULL)) != 0)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1234 + {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1235 + throwTLSException
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1236 + ("gnutls_priority_set_direct", res);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1237 + }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1238 + }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1239 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1240 +#else // !HAVE_GNUTLS_PRIORITY_FUNCS
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1241 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1242 gnutls_set_default_priority(*m_gnutlsSession);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1243
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1244 // Sets the priority on the certificate types supported by gnutls.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1245 @@ -197,6 +212,8 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1246
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1247 gnutls_compression_set_priority(*m_gnutlsSession, compressionPriority);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1248
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1249 +#endif // !HAVE_GNUTLS_PRIORITY_FUNCS
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1250 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1251 // Initialize credentials
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1252 gnutls_credentials_set(*m_gnutlsSession,
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1253 GNUTLS_CRD_ANON, g_gnutlsGlobal.anonCred);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1254 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1255 1.7.7.3
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1256
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1257
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1258 From 70a0282a3f96febf973475a298ac95ffaab82c3c Mon Sep 17 00:00:00 2001
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1259 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1260 Date: Sun, 26 Jun 2011 12:47:25 +0000
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1261 Subject: [PATCH 22/27] Fixed encoding of whitespace. Fixed old test case.
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1262
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1263 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@597 5301114d-f842-0410-bbdd-996ee0417009
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1264
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1265 diff --git a/src/text.cpp b/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1266 index 2454456..66c3b35 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1267 --- a/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1268 +++ b/src/text.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1269 @@ -320,12 +320,6 @@ void text::createFromString(const string& in, const charset& ch)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1270 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1271 else
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1272 {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1273 - if (count)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1274 - {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1275 - ref <word> w = getWordAt(getWordCount() - 1);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1276 - w->getBuffer() += ' ';
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1277 - }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1278 -
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1279 appendWord(vmime::create <word>
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1280 (chunk, charset(charsets::US_ASCII)));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1281
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1282 diff --git a/tests/parser/textTest.cpp b/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1283 index 746ac94..43ec836 100644
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1284 --- a/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1285 +++ b/tests/parser/textTest.cpp
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1286 @@ -53,6 +53,8 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1287
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1288 VMIME_TEST(testFoldingAscii)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1289 VMIME_TEST(testForcedNonEncoding)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1290 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1291 + VMIME_TEST(testBugFix20110511)
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1292 VMIME_TEST_LIST_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1293
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1294
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1295 @@ -149,7 +151,7 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1296 VASSERT_EQ("2.1", 3, t2.getWordCount());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1297 VASSERT_EQ("2.2", "some ASCII characters and special chars: ", t2.getWordAt(0)->getBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1298 VASSERT_EQ("2.3", vmime::charset(vmime::charsets::US_ASCII), t2.getWordAt(0)->getCharset());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1299 - VASSERT_EQ("2.4", "\xf1\xf2\xf3\xf4 ", t2.getWordAt(1)->getBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1300 + VASSERT_EQ("2.4", "\xf1\xf2\xf3\xf4", t2.getWordAt(1)->getBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1301 VASSERT_EQ("2.5", c2, t2.getWordAt(1)->getCharset());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1302 VASSERT_EQ("2.6", "and then more ASCII chars.", t2.getWordAt(2)->getBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1303 VASSERT_EQ("2.7", vmime::charset(vmime::charsets::US_ASCII), t2.getWordAt(2)->getCharset());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1304 @@ -453,5 +455,43 @@ VMIME_TEST_SUITE_BEGIN
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1305 VASSERT_EQ("received.long", "from User\r\n (Ee9GMqZQ8t7IQwftfAFHd2KyScCYRrFSJ50tKEoXv2bVCG4HcPU80GGWiFabAvG77FekpGgF1h@[127.0.0.1])\r\n by servername.hostname.com with esmtp id 1NGTS9-2C0sqG0; Fri, 4 Dec 2009\r\n 09:23:49 +0100", r.generate(78));
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1306 }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1307
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1308 + void testBugFix20110511()
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1309 + {
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1310 + /*
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1311 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1312 + Using the latest version of vmime (0.9.1), encoding the following string: Jean
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1313 + Gwenaël Dutourd will result in:
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1314 + Jean =?utf-8?Q?Gwena=C3=ABl_?= Dutourd
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1315 + However, decoding this will result in Jean Gwenaël Dutourd (notice two spaces
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1316 + between the last 2 words). The encoder adds a _ after the second word, but
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1317 + since the last word is not encoded, the space between them is not ignored, and
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1318 + is decoded into an additional space.
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1319 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1320 + See: http://sourceforge.net/projects/vmime/forums/forum/237357/topic/4531365
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1321 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1322 + */
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1323 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1324 + const std::string DECODED_TEXT = "Jean Gwenaël Dutourd";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1325 + const std::string ENCODED_TEXT = "Jean =?utf-8?Q?Gwena=C3=ABl?= Dutourd";
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1326 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1327 + // Encode
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1328 + VASSERT_EQ("encode", ENCODED_TEXT,
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1329 + vmime::text::newFromString(DECODED_TEXT, vmime::charset("utf-8"))->generate());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1330 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1331 + // Decode
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1332 + vmime::text t;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1333 + t.parse(ENCODED_TEXT);
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1334 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1335 + // -- words
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1336 + std::ostringstream oss; oss << t;
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1337 + VASSERT_EQ("decode1",
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1338 + "[text: [[word: charset=us-ascii, buffer=Jean ],"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1339 + "[word: charset=utf-8, buffer=Gwenaël],"
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1340 + "[word: charset=us-ascii, buffer= Dutourd]]]", oss.str());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1341 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1342 + // -- getWholeBuffer
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1343 + VASSERT_EQ("decode2", DECODED_TEXT, t.getWholeBuffer());
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1344 + }
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1345 +
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1346 VMIME_TEST_SUITE_END
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1347
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1348 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1349 1.7.7.3
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1350
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1351
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1352 From 7d399583a458abe5cd16ce0974bd4dc11daba9f6 Mon Sep 17 00:00:00 2001
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1353 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1354 Date: Sat, 20 Aug 2011 06:35:06 +0000
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1355 Subject: [PATCH 23/27] Use gnutls_strerror() for reporting errors.
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1356
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1357 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@598 5301114d-f842-0410-bbdd-996ee0417009
1920
1f0b8dadb2e8 package vmime: cherry picked fixes
Mark Brand <mabrand@mabrand.nl>
parents: 1891
diff changeset
1358
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1359 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1360 index af73a05..7426a73 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1361 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1362 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1363 @@ -41,6 +41,9 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1364 //#define GNUTLS_DEBUG 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1365
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1366
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1367 +#include <sstream>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1368 +#include <iomanip>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1369 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1370 #if VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1371 #include <iostream>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1372 #endif // VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1373 @@ -257,119 +260,14 @@ ref <security::cert::certificateVerifier> TLSSession::getCertificateVerifier()
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1374
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1375 void TLSSession::throwTLSException(const string& fname, const int code)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1376 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1377 - string msg = fname + "() returned ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1378 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1379 -#define ERROR(x) \
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1380 - case x: msg += #x; break;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1381 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1382 - switch (code)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1383 - {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1384 - ERROR(GNUTLS_E_SUCCESS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1385 - ERROR(GNUTLS_E_UNKNOWN_COMPRESSION_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1386 - ERROR(GNUTLS_E_UNKNOWN_CIPHER_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1387 - ERROR(GNUTLS_E_LARGE_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1388 - ERROR(GNUTLS_E_UNSUPPORTED_VERSION_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1389 - ERROR(GNUTLS_E_UNEXPECTED_PACKET_LENGTH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1390 - ERROR(GNUTLS_E_INVALID_SESSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1391 - ERROR(GNUTLS_E_FATAL_ALERT_RECEIVED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1392 - ERROR(GNUTLS_E_UNEXPECTED_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1393 - ERROR(GNUTLS_E_WARNING_ALERT_RECEIVED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1394 - ERROR(GNUTLS_E_ERROR_IN_FINISHED_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1395 - ERROR(GNUTLS_E_UNEXPECTED_HANDSHAKE_PACKET)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1396 - ERROR(GNUTLS_E_UNKNOWN_CIPHER_SUITE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1397 - ERROR(GNUTLS_E_UNWANTED_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1398 - ERROR(GNUTLS_E_MPI_SCAN_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1399 - ERROR(GNUTLS_E_DECRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1400 - ERROR(GNUTLS_E_MEMORY_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1401 - ERROR(GNUTLS_E_DECOMPRESSION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1402 - ERROR(GNUTLS_E_COMPRESSION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1403 - ERROR(GNUTLS_E_AGAIN)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1404 - ERROR(GNUTLS_E_EXPIRED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1405 - ERROR(GNUTLS_E_DB_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1406 - ERROR(GNUTLS_E_SRP_PWD_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1407 - ERROR(GNUTLS_E_INSUFFICIENT_CREDENTIALS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1408 - ERROR(GNUTLS_E_HASH_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1409 - ERROR(GNUTLS_E_BASE64_DECODING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1410 - ERROR(GNUTLS_E_MPI_PRINT_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1411 - ERROR(GNUTLS_E_REHANDSHAKE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1412 - ERROR(GNUTLS_E_GOT_APPLICATION_DATA)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1413 - ERROR(GNUTLS_E_RECORD_LIMIT_REACHED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1414 - ERROR(GNUTLS_E_ENCRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1415 - ERROR(GNUTLS_E_PK_ENCRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1416 - ERROR(GNUTLS_E_PK_DECRYPTION_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1417 - ERROR(GNUTLS_E_PK_SIGN_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1418 - ERROR(GNUTLS_E_X509_UNSUPPORTED_CRITICAL_EXTENSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1419 - ERROR(GNUTLS_E_KEY_USAGE_VIOLATION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1420 - ERROR(GNUTLS_E_NO_CERTIFICATE_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1421 - ERROR(GNUTLS_E_INVALID_REQUEST)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1422 - ERROR(GNUTLS_E_SHORT_MEMORY_BUFFER)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1423 - ERROR(GNUTLS_E_INTERRUPTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1424 - ERROR(GNUTLS_E_PUSH_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1425 - ERROR(GNUTLS_E_PULL_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1426 - ERROR(GNUTLS_E_RECEIVED_ILLEGAL_PARAMETER)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1427 - ERROR(GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1428 - ERROR(GNUTLS_E_PKCS1_WRONG_PAD)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1429 - ERROR(GNUTLS_E_RECEIVED_ILLEGAL_EXTENSION)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1430 - ERROR(GNUTLS_E_INTERNAL_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1431 - ERROR(GNUTLS_E_DH_PRIME_UNACCEPTABLE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1432 - ERROR(GNUTLS_E_FILE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1433 - ERROR(GNUTLS_E_TOO_MANY_EMPTY_PACKETS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1434 - ERROR(GNUTLS_E_UNKNOWN_PK_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1435 - ERROR(GNUTLS_E_INIT_LIBEXTRA)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1436 - ERROR(GNUTLS_E_LIBRARY_VERSION_MISMATCH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1437 - ERROR(GNUTLS_E_NO_TEMPORARY_RSA_PARAMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1438 - ERROR(GNUTLS_E_LZO_INIT_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1439 - ERROR(GNUTLS_E_NO_COMPRESSION_ALGORITHMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1440 - ERROR(GNUTLS_E_NO_CIPHER_SUITES)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1441 - ERROR(GNUTLS_E_OPENPGP_GETKEY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1442 - ERROR(GNUTLS_E_PK_SIG_VERIFY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1443 - ERROR(GNUTLS_E_ILLEGAL_SRP_USERNAME)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1444 - ERROR(GNUTLS_E_SRP_PWD_PARSING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1445 - ERROR(GNUTLS_E_NO_TEMPORARY_DH_PARAMS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1446 - ERROR(GNUTLS_E_ASN1_ELEMENT_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1447 - ERROR(GNUTLS_E_ASN1_IDENTIFIER_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1448 - ERROR(GNUTLS_E_ASN1_DER_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1449 - ERROR(GNUTLS_E_ASN1_VALUE_NOT_FOUND)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1450 - ERROR(GNUTLS_E_ASN1_GENERIC_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1451 - ERROR(GNUTLS_E_ASN1_VALUE_NOT_VALID)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1452 - ERROR(GNUTLS_E_ASN1_TAG_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1453 - ERROR(GNUTLS_E_ASN1_TAG_IMPLICIT)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1454 - ERROR(GNUTLS_E_ASN1_TYPE_ANY_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1455 - ERROR(GNUTLS_E_ASN1_SYNTAX_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1456 - ERROR(GNUTLS_E_ASN1_DER_OVERFLOW)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1457 - //ERROR(GNUTLS_E_OPENPGP_TRUSTDB_VERSION_UNSUPPORTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1458 - ERROR(GNUTLS_E_OPENPGP_UID_REVOKED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1459 - ERROR(GNUTLS_E_CERTIFICATE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1460 - //ERROR(GNUTLS_E_X509_CERTIFICATE_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1461 - ERROR(GNUTLS_E_CERTIFICATE_KEY_MISMATCH)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1462 - ERROR(GNUTLS_E_UNSUPPORTED_CERTIFICATE_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1463 - ERROR(GNUTLS_E_X509_UNKNOWN_SAN)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1464 - ERROR(GNUTLS_E_OPENPGP_FINGERPRINT_UNSUPPORTED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1465 - ERROR(GNUTLS_E_X509_UNSUPPORTED_ATTRIBUTE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1466 - ERROR(GNUTLS_E_UNKNOWN_HASH_ALGORITHM)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1467 - ERROR(GNUTLS_E_UNKNOWN_PKCS_CONTENT_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1468 - ERROR(GNUTLS_E_UNKNOWN_PKCS_BAG_TYPE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1469 - ERROR(GNUTLS_E_INVALID_PASSWORD)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1470 - ERROR(GNUTLS_E_MAC_VERIFY_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1471 - ERROR(GNUTLS_E_CONSTRAINT_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1472 - ERROR(GNUTLS_E_BASE64_ENCODING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1473 - ERROR(GNUTLS_E_INCOMPATIBLE_GCRYPT_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1474 - //ERROR(GNUTLS_E_INCOMPATIBLE_CRYPTO_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1475 - ERROR(GNUTLS_E_INCOMPATIBLE_LIBTASN1_LIBRARY)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1476 - ERROR(GNUTLS_E_OPENPGP_KEYRING_ERROR)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1477 - ERROR(GNUTLS_E_X509_UNSUPPORTED_OID)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1478 - //ERROR(GNUTLS_E_RANDOM_FAILED)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1479 - ERROR(GNUTLS_E_UNIMPLEMENTED_FEATURE)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1480 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1481 - default:
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1482 -
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1483 - msg += "unknown error";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1484 - break;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1485 - }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1486 + std::ostringstream msg;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1487
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1488 -#undef ERROR
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1489 + msg << fname + "() returned code ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1490 + msg << std::hex << code;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1491 + msg << ": ";
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1492 + msg << gnutls_strerror(code);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1493
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1494 - throw exceptions::tls_exception(msg);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1495 + throw exceptions::tls_exception(msg.str());
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1496 }
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1497
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1498
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1499 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1500 1.7.7.3
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1501
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1502
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1503 From aae321dede5e725140534a08a8b2ee997faa30be Mon Sep 17 00:00:00 2001
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1504 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1505 Date: Sun, 21 Aug 2011 08:55:46 +0000
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1506 Subject: [PATCH 24/27] Removed dependency on gcrypt for gnutls version >=
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1507 2.12.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1508
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1509 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@599 5301114d-f842-0410-bbdd-996ee0417009
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1510
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1511 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1512 index 7426a73..d3f6d49 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1513 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1514 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1515 @@ -26,9 +26,17 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1516
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1517 #include "vmime/config.hpp"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1518
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1519 +// Dependency on gcrypt is not needed since GNU TLS version 2.12.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1520 +// See here: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=638651
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1521 +#if GNUTLS_VERSION_NUMBER <= 0x020b00
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1522 +# define VMIME_GNUTLS_NEEDS_GCRYPT 1
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1523 +#endif
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1524 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1525 #if VMIME_HAVE_PTHREAD
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1526 # include <pthread.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1527 -# include <gcrypt.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1528 +# if VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1529 +# include <gcrypt.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1530 +# endif
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1531 # include <errno.h>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1532 #endif // VMIME_HAVE_PTHREAD
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1533
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1534 @@ -49,7 +57,7 @@
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1535 #endif // VMIME_DEBUG && GNUTLS_DEBUG
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1536
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1537
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1538 -#if VMIME_HAVE_PTHREAD && defined(GCRY_THREAD_OPTION_PTHREAD_IMPL)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1539 +#if VMIME_HAVE_PTHREAD && VMIME_GNUTLS_NEEDS_GCRYPT && defined(GCRY_THREAD_OPTION_PTHREAD_IMPL)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1540 extern "C"
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1541 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1542 GCRY_THREAD_OPTION_PTHREAD_IMPL;
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1543 @@ -70,7 +78,9 @@ struct TLSGlobal
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1544 TLSGlobal()
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1545 {
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1546 #if VMIME_HAVE_PTHREAD && defined(GCRY_THREAD_OPTION_PTHREAD_IMPL)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1547 + #if VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1548 gcry_control(GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1549 + #endif // VMIME_GNUTLS_NEEDS_GCRYPT
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1550 #endif // VMIME_HAVE_PTHREAD && defined(GCRY_THREAD_OPTION_PTHREAD_IMPL
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1551
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1552 gnutls_global_init();
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1553 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1554 1.7.7.3
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1555
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1556
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1557 From af1e5664afb663fb7d26d468adf675fb1b3f8737 Mon Sep 17 00:00:00 2001
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1558 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1559 Date: Sun, 21 Aug 2011 09:04:46 +0000
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1560 Subject: [PATCH 25/27] Fixed HAVE_GNUTLS_PRIORITY_FUNCS never defined when
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1561 configured with no TLS support.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1562
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1563 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@600 5301114d-f842-0410-bbdd-996ee0417009
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1564
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1565 diff --git a/SConstruct b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1566 index 01ad3f3..11e884b 100644
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1567 --- a/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1568 +++ b/SConstruct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1569 @@ -1654,10 +1654,16 @@ if test "x$conf_tls" = "xyes"; then
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1570 AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1571 HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1572 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1573 + else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1574 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1575 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1576 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1577 else
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1578 AM_CONDITIONAL(VMIME_HAVE_TLS_SUPPORT, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1579 VMIME_HAVE_TLS_SUPPORT=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1580 +
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1581 + AM_CONDITIONAL(HAVE_GNUTLS_PRIORITY_FUNCS, false)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1582 + HAVE_GNUTLS_PRIORITY_FUNCS=0
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1583 fi
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1584
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1585 AC_SUBST(LIBGNUTLS_CFLAGS)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1586 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1587 1.7.7.3
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1588
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1589
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1590 From 41079b2f188bb4a6d8aea9ec1328653faee3e2c9 Mon Sep 17 00:00:00 2001
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1591 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1592 Date: Tue, 15 Nov 2011 11:40:42 +0000
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1593 Subject: [PATCH 26/27] GNU TLS 3 has no 'extra' (thanks to mabrand).
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1594
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1595 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@601 5301114d-f842-0410-bbdd-996ee0417009
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1596
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1597 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1598 index d3f6d49..cb50acc 100644
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1599 --- a/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1600 +++ b/src/net/tls/TLSSession.cpp
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1601 @@ -22,7 +22,9 @@
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1602 //
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1603
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1604 #include <gnutls/gnutls.h>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1605 +#if GNUTLS_VERSION_NUMBER < 0x030000
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1606 #include <gnutls/extra.h>
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1607 +#endif
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1608
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1609 #include "vmime/config.hpp"
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1610
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1611 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1612 1.7.7.3
2055
c26efa95224d packages curl gsoap vmime: gnutls 3 compatibility
Mark Brand <mabrand@mabrand.nl>
parents: 1948
diff changeset
1613
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1614
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1615 From eafae52d9b8ec9682c229090b6208092b1d1e6f1 Mon Sep 17 00:00:00 2001
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1616 From: vincent-richard <vincent-richard@5301114d-f842-0410-bbdd-996ee0417009>
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1617 Date: Tue, 15 Nov 2011 11:46:07 +0000
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1618 Subject: [PATCH 27/27] Set Diffie-Hellman prime size (bug SF#3434852).
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1619
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1620 git-svn-id: https://vmime.svn.sourceforge.net/svnroot/vmime/trunk@602 5301114d-f842-0410-bbdd-996ee0417009
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1621
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1622 diff --git a/src/net/tls/TLSSession.cpp b/src/net/tls/TLSSession.cpp
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1623 index cb50acc..0606808 100644
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1624 --- a/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1625 +++ b/src/net/tls/TLSSession.cpp
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1626 @@ -139,6 +139,7 @@ TLSSession::TLSSession(ref <security::cert::certificateVerifier> cv)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1627 // Sets some default priority on the ciphers, key exchange methods,
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1628 // macs and compression methods.
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1629 #if HAVE_GNUTLS_PRIORITY_FUNCS
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1630 + gnutls_dh_set_prime_bits(*m_gnutlsSession, 128);
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1631
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1632 if ((res = gnutls_priority_set_direct
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1633 (*m_gnutlsSession, "NORMAL:%SSL3_RECORD_VERSION", NULL)) != 0)
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1634 --
2096
fe5ce8c1485d package vmime: update patch sources
Mark Brand <mabrand@mabrand.nl>
parents: 2084
diff changeset
1635 1.7.7.3
2084
79795dd7d90a package vmime: upstream instead of local patches
Mark Brand <mabrand@mabrand.nl>
parents: 2055
diff changeset
1636