| 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 |