author | alwin <alwin> | 2004-03-02 12:21:11 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-03-02 12:21:11 (UTC) |
commit | b6b1c97559c0ed9f2e33632272426bf98f289232 (patch) (unidiff) | |
tree | d3a9987704770cdf5eb14e1136f6e3ecb2f36a04 /library/network.cpp | |
parent | 0d59c780513da78033f4d9040475dee9db0256d4 (diff) | |
download | opie-b6b1c97559c0ed9f2e33632272426bf98f289232.zip opie-b6b1c97559c0ed9f2e33632272426bf98f289232.tar.gz opie-b6b1c97559c0ed9f2e33632272426bf98f289232.tar.bz2 |
applied the patch generated by the optimize_connect script from
TT.
-rw-r--r-- | library/network.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/library/network.cpp b/library/network.cpp index 991e11a..df28857 100644 --- a/library/network.cpp +++ b/library/network.cpp | |||
@@ -68,194 +68,194 @@ void Network::start(const QString& choice, const QString& password) | |||
68 | 68 | ||
69 | /*! | 69 | /*! |
70 | \class Network network.h | 70 | \class Network network.h |
71 | \brief The Network class provides network access functionality. | 71 | \brief The Network class provides network access functionality. |
72 | \internal | 72 | \internal |
73 | */ | 73 | */ |
74 | 74 | ||
75 | // copy the proxy settings of the active config over to the Proxies.conf file | 75 | // copy the proxy settings of the active config over to the Proxies.conf file |
76 | /*! | 76 | /*! |
77 | \internal | 77 | \internal |
78 | */ | 78 | */ |
79 | void Network::writeProxySettings( Config &cfg ) | 79 | void Network::writeProxySettings( Config &cfg ) |
80 | { | 80 | { |
81 | Config proxy( Network::settingsDir() + "/Proxies.conf", Config::File ); | 81 | Config proxy( Network::settingsDir() + "/Proxies.conf", Config::File ); |
82 | proxy.setGroup("Properties"); | 82 | proxy.setGroup("Properties"); |
83 | cfg.setGroup("Proxy"); | 83 | cfg.setGroup("Proxy"); |
84 | proxy.writeEntry("type", cfg.readEntry("type") ); | 84 | proxy.writeEntry("type", cfg.readEntry("type") ); |
85 | proxy.writeEntry("autoconfig", cfg.readEntry("autoconfig") ); | 85 | proxy.writeEntry("autoconfig", cfg.readEntry("autoconfig") ); |
86 | proxy.writeEntry("httphost", cfg.readEntry("httphost") ); | 86 | proxy.writeEntry("httphost", cfg.readEntry("httphost") ); |
87 | proxy.writeEntry("httpport", cfg.readEntry("httpport") ); | 87 | proxy.writeEntry("httpport", cfg.readEntry("httpport") ); |
88 | proxy.writeEntry("ftphost", cfg.readEntry("ftphost") ); | 88 | proxy.writeEntry("ftphost", cfg.readEntry("ftphost") ); |
89 | proxy.writeEntry("ftpport", cfg.readEntry("ftpport") ); | 89 | proxy.writeEntry("ftpport", cfg.readEntry("ftpport") ); |
90 | proxy.writeEntry("noproxies", cfg.readEntry("noproxies") ); | 90 | proxy.writeEntry("noproxies", cfg.readEntry("noproxies") ); |
91 | cfg.setGroup("Properties"); | 91 | cfg.setGroup("Properties"); |
92 | } | 92 | } |
93 | 93 | ||
94 | 94 | ||
95 | 95 | ||
96 | /*! | 96 | /*! |
97 | \internal | 97 | \internal |
98 | 98 | ||
99 | Stops the current network service. | 99 | Stops the current network service. |
100 | */ | 100 | */ |
101 | void Network::stop() | 101 | void Network::stop() |
102 | { | 102 | { |
103 | QCopEnvelope e("QPE/Network", "stop()"); | 103 | QCopEnvelope e("QPE/Network", "stop()"); |
104 | } | 104 | } |
105 | 105 | ||
106 | static NetworkEmitter *emitter = 0; | 106 | static NetworkEmitter *emitter = 0; |
107 | 107 | ||
108 | /*! | 108 | /*! |
109 | \internal | 109 | \internal |
110 | */ | 110 | */ |
111 | void Network::connectChoiceChange(QObject* receiver, const char* slot) | 111 | void Network::connectChoiceChange(QObject* receiver, const char* slot) |
112 | { | 112 | { |
113 | if ( !emitter ) | 113 | if ( !emitter ) |
114 | emitter = new NetworkEmitter; | 114 | emitter = new NetworkEmitter; |
115 | QObject::connect(emitter,SIGNAL(changed()),receiver,slot); | 115 | QObject::connect(emitter,SIGNAL(changed()),receiver,slot); |
116 | } | 116 | } |
117 | 117 | ||
118 | #endif// QT_NO_COP | 118 | #endif// QT_NO_COP |
119 | /*! | 119 | /*! |
120 | \internal | 120 | \internal |
121 | */ | 121 | */ |
122 | QString Network::settingsDir() | 122 | QString Network::settingsDir() |
123 | { | 123 | { |
124 | return Global::applicationFileName("Network", "modules"); | 124 | return Global::applicationFileName("Network", "modules"); |
125 | } | 125 | } |
126 | 126 | ||
127 | #ifndef QT_NO_COP | 127 | #ifndef QT_NO_COP |
128 | /*! | 128 | /*! |
129 | \internal | 129 | \internal |
130 | */ | 130 | */ |
131 | QStringList Network::choices(QListBox* lb, const QString& dir) | 131 | QStringList Network::choices(QListBox* lb, const QString& dir) |
132 | { | 132 | { |
133 | QStringList list; | 133 | QStringList list; |
134 | 134 | ||
135 | if ( lb ) | 135 | if ( lb ) |
136 | lb->clear(); | 136 | lb->clear(); |
137 | 137 | ||
138 | QString adir = dir.isEmpty() ? settingsDir() : dir; | 138 | QString adir = dir.isEmpty() ? settingsDir() : dir; |
139 | QDir settingsdir(adir); | 139 | QDir settingsdir(adir); |
140 | settingsdir.mkdir(adir); | 140 | settingsdir.mkdir(adir); |
141 | 141 | ||
142 | QStringList files = settingsdir.entryList("*.conf"); | 142 | QStringList files = settingsdir.entryList("*.conf"); |
143 | for (QStringList::ConstIterator it=files.begin(); it!=files.end(); ++it ) { | 143 | for (QStringList::ConstIterator it=files.begin(); it!=files.end(); ++it ) { |
144 | QString filename = settingsdir.filePath(*it); | 144 | QString filename = settingsdir.filePath(*it); |
145 | Config cfg(filename, Config::File); | 145 | Config cfg(filename, Config::File); |
146 | cfg.setGroup("Info"); | 146 | cfg.setGroup("Info"); |
147 | if ( lb ) | 147 | if ( lb ) |
148 | lb->insertItem(Resource::loadPixmap("Network/" + cfg.readEntry("Type")), | 148 | lb->insertItem(Resource::loadPixmap("Network/" + cfg.readEntry("Type")), |
149 | cfg.readEntry("Name")); | 149 | cfg.readEntry("Name")); |
150 | list.append(filename); | 150 | list.append(filename); |
151 | } | 151 | } |
152 | 152 | ||
153 | return list; | 153 | return list; |
154 | } | 154 | } |
155 | 155 | ||
156 | class NetworkServer : public QCopChannel { | 156 | class NetworkServer : public QCopChannel { |
157 | Q_OBJECT | 157 | Q_OBJECT |
158 | public: | 158 | public: |
159 | NetworkServer(QObject* parent) : QCopChannel("QPE/Network",parent), wait(0) | 159 | NetworkServer(QObject* parent) : QCopChannel("QPE/Network",parent), wait(0) |
160 | { | 160 | { |
161 | up = FALSE; | 161 | up = FALSE; |
162 | examineNetworks( TRUE ); | 162 | examineNetworks( TRUE ); |
163 | QCopChannel* card = new QCopChannel("QPE/Card",parent); | 163 | QCopChannel* card = new QCopChannel("QPE/Card",parent); |
164 | connect(card,SIGNAL(received(const QCString &, const QByteArray&)), | 164 | connect(card,SIGNAL(received(const QCString&,const QByteArray&)), |
165 | this,SLOT(cardMessage(const QCString &, const QByteArray&))); | 165 | this,SLOT(cardMessage(const QCString&,const QByteArray&))); |
166 | } | 166 | } |
167 | 167 | ||
168 | ~NetworkServer() | 168 | ~NetworkServer() |
169 | { | 169 | { |
170 | stop(); | 170 | stop(); |
171 | } | 171 | } |
172 | 172 | ||
173 | bool networkOnline() const | 173 | bool networkOnline() const |
174 | { | 174 | { |
175 | return up; | 175 | return up; |
176 | } | 176 | } |
177 | 177 | ||
178 | private: | 178 | private: |
179 | void receive(const QCString &msg, const QByteArray& data) | 179 | void receive(const QCString &msg, const QByteArray& data) |
180 | { | 180 | { |
181 | if ( msg == "start(QString,QString)" ) { | 181 | if ( msg == "start(QString,QString)" ) { |
182 | QDataStream stream(data,IO_ReadOnly); | 182 | QDataStream stream(data,IO_ReadOnly); |
183 | QString file,password; | 183 | QString file,password; |
184 | stream >> file >> password; | 184 | stream >> file >> password; |
185 | if ( file.isEmpty() ) { | 185 | if ( file.isEmpty() ) { |
186 | QStringList l = Network::choices(); | 186 | QStringList l = Network::choices(); |
187 | for (QStringList::ConstIterator i=l.begin(); i!=l.end(); ++i) { | 187 | for (QStringList::ConstIterator i=l.begin(); i!=l.end(); ++i) { |
188 | Config cfg(*i,Config::File); | 188 | Config cfg(*i,Config::File); |
189 | cfg.setGroup("Info"); | 189 | cfg.setGroup("Info"); |
190 | QString type = cfg.readEntry("Type"); | 190 | QString type = cfg.readEntry("Type"); |
191 | NetworkInterface* plugin = Network::loadPlugin(type); | 191 | NetworkInterface* plugin = Network::loadPlugin(type); |
192 | cfg.setGroup("Properties"); | 192 | cfg.setGroup("Properties"); |
193 | if ( plugin && plugin->isAvailable(cfg) ) { | 193 | if ( plugin && plugin->isAvailable(cfg) ) { |
194 | file = *i; | 194 | file = *i; |
195 | break; | 195 | break; |
196 | } | 196 | } |
197 | } | 197 | } |
198 | if ( file.isEmpty() ) { | 198 | if ( file.isEmpty() ) { |
199 | QCopEnvelope("QPE/Network", "failed()"); | 199 | QCopEnvelope("QPE/Network", "failed()"); |
200 | return; | 200 | return; |
201 | } | 201 | } |
202 | } | 202 | } |
203 | start(file,password); | 203 | start(file,password); |
204 | } else if ( msg == "stop()" ) { | 204 | } else if ( msg == "stop()" ) { |
205 | stop(); | 205 | stop(); |
206 | } else if ( msg == "choicesChanged()" ) { | 206 | } else if ( msg == "choicesChanged()" ) { |
207 | examineNetworks(); | 207 | examineNetworks(); |
208 | } | 208 | } |
209 | } | 209 | } |
210 | 210 | ||
211 | private slots: | 211 | private slots: |
212 | void cardMessage(const QCString &msg, const QByteArray&) | 212 | void cardMessage(const QCString &msg, const QByteArray&) |
213 | { | 213 | { |
214 | if ( msg == "stabChanged()" ) | 214 | if ( msg == "stabChanged()" ) |
215 | examineNetworks(); | 215 | examineNetworks(); |
216 | } | 216 | } |
217 | 217 | ||
218 | private: | 218 | private: |
219 | void examineNetworks( bool firstStart = FALSE ) | 219 | void examineNetworks( bool firstStart = FALSE ) |
220 | { | 220 | { |
221 | QStringList l = Network::choices(); | 221 | QStringList l = Network::choices(); |
222 | bool wasup = up; up=FALSE; | 222 | bool wasup = up; up=FALSE; |
223 | QStringList pavailable = available; | 223 | QStringList pavailable = available; |
224 | available.clear(); | 224 | available.clear(); |
225 | for (QStringList::ConstIterator it=l.begin(); it!=l.end(); ++it) { | 225 | for (QStringList::ConstIterator it=l.begin(); it!=l.end(); ++it) { |
226 | Config cfg(*it,Config::File); | 226 | Config cfg(*it,Config::File); |
227 | cfg.setGroup("Info"); | 227 | cfg.setGroup("Info"); |
228 | QString type = cfg.readEntry("Type"); | 228 | QString type = cfg.readEntry("Type"); |
229 | NetworkInterface* plugin = Network::loadPlugin(type); | 229 | NetworkInterface* plugin = Network::loadPlugin(type); |
230 | cfg.setGroup("Properties"); | 230 | cfg.setGroup("Properties"); |
231 | if ( plugin ) { | 231 | if ( plugin ) { |
232 | if ( plugin->isActive(cfg) ) { | 232 | if ( plugin->isActive(cfg) ) { |
233 | up = TRUE; | 233 | up = TRUE; |
234 | if ( firstStart ) | 234 | if ( firstStart ) |
235 | plugin->start( cfg ); | 235 | plugin->start( cfg ); |
236 | } | 236 | } |
237 | if ( plugin->isAvailable(cfg) ) | 237 | if ( plugin->isAvailable(cfg) ) |
238 | available.append(*it); | 238 | available.append(*it); |
239 | } | 239 | } |
240 | } | 240 | } |
241 | 241 | ||
242 | // Try to work around unreproducible bug whereby | 242 | // Try to work around unreproducible bug whereby |
243 | // the netmon applet shows wrong state. | 243 | // the netmon applet shows wrong state. |
244 | bool reannounce = wait<0; | 244 | bool reannounce = wait<0; |
245 | 245 | ||
246 | if ( available != pavailable || reannounce ) { | 246 | if ( available != pavailable || reannounce ) { |
247 | QCopEnvelope e("QPE/Network", "available(QStringList)"); | 247 | QCopEnvelope e("QPE/Network", "available(QStringList)"); |
248 | e << available; | 248 | e << available; |
249 | } | 249 | } |
250 | if ( up != wasup || reannounce ) { | 250 | if ( up != wasup || reannounce ) { |
251 | QCopEnvelope("QPE/Network", up ? "up()" : "down()"); | 251 | QCopEnvelope("QPE/Network", up ? "up()" : "down()"); |
252 | } | 252 | } |
253 | } | 253 | } |
254 | 254 | ||
255 | void start( const QString& file, const QString& password ) | 255 | void start( const QString& file, const QString& password ) |
256 | { | 256 | { |
257 | if ( !current.isEmpty() ) | 257 | if ( !current.isEmpty() ) |
258 | stop(); | 258 | stop(); |
259 | current = QString::null; | 259 | current = QString::null; |
260 | Config cfg(file, Config::File); | 260 | Config cfg(file, Config::File); |
261 | cfg.setGroup("Info"); | 261 | cfg.setGroup("Info"); |