comparison data/fileio/HttpClient.cpp @ 104:40effd83ebcf

servlet name in the file xml \ user name and pwd are encoding
author benoitrigolleau
date Thu, 12 Jul 2007 15:06:41 +0000
parents ca3a5912fd78
children 9441b45b1e7f
comparison
equal deleted inserted replaced
103:33105d5afff8 104:40effd83ebcf
77 s += indent; 77 s += indent;
78 s += QString("\t"); 78 s += QString("\t");
79 s += QString("<proxy name=\"%1\" port=\"%2\" user=\"%3\" pwd=\"%4\" />\n") 79 s += QString("<proxy name=\"%1\" port=\"%2\" user=\"%3\" pwd=\"%4\" />\n")
80 .arg(getProxy()) 80 .arg(getProxy())
81 .arg(QString::number(getProxyPort())) 81 .arg(QString::number(getProxyPort()))
82 .arg(getUserProxyId()) 82 .arg(encodeString(getUserProxyId()))
83 .arg(getPwdProxyId()); 83 .arg(encodeString(getPwdProxyId()));
84 } 84 }
85 85
86 s += indent; 86 s += indent;
87 s += QString("\t"); 87 s += QString("\t");
88 s += QString("<host name=\"%1\" port=\"%2\" />\n") 88 s += QString("<host name=\"%1\" port=\"%2\" />\n")
89 .arg(getHost()) 89 .arg(getHost())
90 .arg(QString::number(getHostPort())); 90 .arg(QString::number(getHostPort()));
91 91
92 s += indent; 92 s += indent;
93 s += QString("\t");
94 s += QString("<servlet adresse=\"%1\" />\n")
95 .arg(getServletName());
96
97 s += indent;
93 s += QString("</connexionSettings>\n"); 98 s += QString("</connexionSettings>\n");
94 99
95 return s; 100 return s;
96 } 101 }
97 102
142 147
143 m_httpClient->setProxyInfo(attributes.value("name")); 148 m_httpClient->setProxyInfo(attributes.value("name"));
144 if (attributes.value("name") != "") 149 if (attributes.value("name") != "")
145 m_httpClient->setUseProxy(true); 150 m_httpClient->setUseProxy(true);
146 m_httpClient->setProxyPortInfo(attributes.value("port").toInt()); 151 m_httpClient->setProxyPortInfo(attributes.value("port").toInt());
147 m_httpClient->setUserProxyId(attributes.value("user")); 152 m_httpClient->setUserProxyId(HttpClient::decodeString(attributes.value("user")));
148 m_httpClient->setPwdProxyId(attributes.value("pwd")); 153 m_httpClient->setPwdProxyId(HttpClient::decodeString(attributes.value("pwd")));
149 ok = true; 154 ok = true;
150 155
151 } else if (name == "host") { 156 } else if (name == "host") {
152 157
153 m_httpClient->setHostInfo(attributes.value("name")); 158 m_httpClient->setHostInfo(attributes.value("name"));
154 m_httpClient->setHostPortInfo(attributes.value("port").toUShort()); 159 m_httpClient->setHostPortInfo(attributes.value("port").toUShort());
155 ok = true; 160 ok = true;
156 161
162 } else if (name == "servlet") {
163
164 m_httpClient->setServletNameInfo(attributes.value("adresse"));
165 ok = true;
157 } 166 }
158 167
159 if (!ok) { 168 if (!ok) {
160 std::cerr << "WARNING: connexion config-XML: Failed to completely process element \"" 169 std::cerr << "WARNING: connexion config-XML: Failed to completely process element \""
161 << name.toLocal8Bit().data() << "\"" << std::endl; 170 << name.toLocal8Bit().data() << "\"" << std::endl;
194 .arg(exception.lineNumber()) 203 .arg(exception.lineNumber())
195 .arg(exception.columnNumber()); 204 .arg(exception.columnNumber());
196 std::cerr << errorString.toLocal8Bit().data() << std::endl; 205 std::cerr << errorString.toLocal8Bit().data() << std::endl;
197 return QXmlDefaultHandler::fatalError(exception); 206 return QXmlDefaultHandler::fatalError(exception);
198 } 207 }
208
209 QString HttpClient::encodeString(const QString& str){
210 QByteArray bytes = str.toAscii();
211 for(int i=0; i<bytes.count();i++){
212 bytes[i] = bytes[i] ^ 1;
213 }
214 return QString(bytes.toBase64());
215 }
216
217 QString HttpClient::decodeString(const QString& str){
218 QByteArray bytes = str.toAscii().fromBase64(str.toAscii());
219 for(int i=0; i<bytes.count();i++){
220 bytes[i] = bytes[i] ^ 1;
221 }
222 return QString(bytes);
223 }