OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2001 Dirk Mueller (mueller@kde.org) | 4 * (C) 2001 Dirk Mueller (mueller@kde.org) |
5 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. | 5 * Copyright (C) 2004, 2005, 2006, 2007, 2008 Apple Inc. All rights reserved. |
6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) | 6 * (C) 2006 Alexey Proskuryakov (ap@nypop.com) |
7 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) | 7 * Copyright (C) 2008 Torch Mobile Inc. All rights reserved. (http://www.torchmo
bile.com/) |
8 * | 8 * |
9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 Vector<char> randomBytes; | 129 Vector<char> randomBytes; |
130 | 130 |
131 for (unsigned i = 0; i < 4; ++i) { | 131 for (unsigned i = 0; i < 4; ++i) { |
132 uint32_t randomness = cryptographicallyRandomNumber(); | 132 uint32_t randomness = cryptographicallyRandomNumber(); |
133 randomBytes.append(alphaNumericEncodingMap[(randomness >> 24) & 0x3F]); | 133 randomBytes.append(alphaNumericEncodingMap[(randomness >> 24) & 0x3F]); |
134 randomBytes.append(alphaNumericEncodingMap[(randomness >> 16) & 0x3F]); | 134 randomBytes.append(alphaNumericEncodingMap[(randomness >> 16) & 0x3F]); |
135 randomBytes.append(alphaNumericEncodingMap[(randomness >> 8) & 0x3F]); | 135 randomBytes.append(alphaNumericEncodingMap[(randomness >> 8) & 0x3F]); |
136 randomBytes.append(alphaNumericEncodingMap[randomness & 0x3F]); | 136 randomBytes.append(alphaNumericEncodingMap[randomness & 0x3F]); |
137 } | 137 } |
138 | 138 |
139 boundary.append(randomBytes); | 139 boundary.appendVector(randomBytes); |
140 boundary.append(0); // Add a 0 at the end so we can use this as a C-style st
ring. | 140 boundary.append(0); // Add a 0 at the end so we can use this as a C-style st
ring. |
141 return boundary; | 141 return boundary; |
142 } | 142 } |
143 | 143 |
144 void FormDataBuilder::beginMultiPartHeader(Vector<char>& buffer, const CString&
boundary, const CString& name) | 144 void FormDataBuilder::beginMultiPartHeader(Vector<char>& buffer, const CString&
boundary, const CString& name) |
145 { | 145 { |
146 addBoundaryToMultiPartHeader(buffer, boundary); | 146 addBoundaryToMultiPartHeader(buffer, boundary); |
147 | 147 |
148 // FIXME: This loses data irreversibly if the input name includes characters
you can't encode | 148 // FIXME: This loses data irreversibly if the input name includes characters
you can't encode |
149 // in the website's character set. | 149 // in the website's character set. |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
217 else if (c == '\n' || (c == '\r' && (i + 1 >= length || string.data()[i
+ 1] != '\n'))) | 217 else if (c == '\n' || (c == '\r' && (i + 1 >= length || string.data()[i
+ 1] != '\n'))) |
218 append(buffer, "%0D%0A"); | 218 append(buffer, "%0D%0A"); |
219 else if (c != '\r') { | 219 else if (c != '\r') { |
220 append(buffer, '%'); | 220 append(buffer, '%'); |
221 appendByteAsHex(c, buffer); | 221 appendByteAsHex(c, buffer); |
222 } | 222 } |
223 } | 223 } |
224 } | 224 } |
225 | 225 |
226 } | 226 } |
OLD | NEW |