summaryrefslogtreecommitdiffstats
path: root/doc/TODO
blob: 5841b15f53ea865cd0eb33c236aeb2ba5e41d076 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
*** 0.3.5 TODO:
+Generic parsing function
+WEP key config input validator
+WEP Keys config
+WEP Selection dialog
+Key setting (iwconfig)
+Add "key off" arguments when connecting to unencrypted netw.
+RadioButtons OPEN / RESTRICTED
+getVal -> if no endstr specified, parse till QString::length()
+getVal -> if no startstr specified, parse from the beginning
+set/improve TAB order for ui files


*** 0.3.6 TODO:
+sensible column widths
+encrypted? icon in netList
+graphical link quality
+find a nice icon for link quality
+add statusbar info if ad-hoc and/or encrypted skipped.
+automatically use WEP key if name matches ESSID (bool autoKey)
+default mode ui (defaultMode)


*** 0.3.7 TODO:
+fix sort order when scanned
+fix wrong device detection if more than 1 present (maybe regexp (^[a-zA-Z]{3,4}\\d$)
+fix: disable 'detect' & 'configure...' button when connecting
+change mode to Managed before scanning
+change quality calculation method.
+add channel column & config (thanks to Michael Long)


*** 0.3.8 TODO:
+make all columns resizable
+'name-essid matching case-sensitive' option
+show frequency if channel not available. (no other adjustments needed)
+reimplement NetListViewItem::width(...)
+proper column width setting taking scrollbars into account
+remove "Auto mode" - causes only problems.
+honor single click (option)
+quit upon successful connection (option)
*** HEY! Now you can connect with just ONE click! ***
+while getting quality, first try to find "Quality:" and calculate if not found, estimate if no noise level reported.
+move WEP stuff in netConnect() to a separate function (getWepKey())
+support for .pid files
+manual (not DHCP) config possibility
+option to run custom command upon connection
+connectionOk() function
+icon

*** 0.3.8a (BUGFIX RELEASE) TODO:
+quality detection: support "Quality=" and "Noise level=" (maybe additional 'int offset' parameter?)
+masterToManaged flag to be on for orinoco_cs driver -> set as default for all cards.
+fix handling of ESSIDs with space
+proper error-handling in runCommand(...)
+install waconfig.kcfg to $KDE/share/config.kcfg/ (sf)
+fix path detection (skip /mnt etc)
+code cleanup: error messages to be called from within runCommand(...)

*** 0.3.9 TODO:
+dhclient support
+terminate process button



*** 0.5.0 TODO:
+hide device combo if only one found
+rewrite device detection (2.6 kernel only)
+path detection on startup. No more manual configuration.
+path detection upon WACommands initialization ( 'init()' function )
+.desktop file: 'Exec=sudo wlassistant'
+remove Ad-Hoc support
+remove Ad-Hoc code
+remove GUI for options:
+	scan upon startup
+	skip ad-hoc
+	skip encrypted
+net params read/write to config framework
+paint "<hidden>" in italics.
+first time connection wizard
+wizard: don't ask if WEP is needed, get it from NetParams (which gets it from selected item in the list view)
+debugging code! (stdout) (std::cout << "ERROR MSG")
+code cleanup: forward declarations ('class') in headers
+support for <hidden> ESSIDs (modify wizard dialog, additional page)
+rewrite runCommand(...) function
+manual DNS setup ( 'setDNS()' function )
+new, detailed description on KDE-Apps.org

*** 0.5.1 TODO:
+add 'wasHiddenEssid' and 'wasWep' booleans as part of NetParams for change monitoring.
+NetParams change monitoring & actions.
+move to i18n(..) strings
+refine ui (as suggested by Stephan Binner)
+dialog: edit connection
+error handling: connecting failed? Ask if the user wishes to review network parameters.
+"Settings Updated." status bar message.
+fix newly hidden essid handling
+try to kill both dhcpcd AND dhclient, regardless of current DHCP client, in case e.g. dhclient is running but wlassistant defaults to dhcpcd when it's available
+Check if radio on and ask if should be turned on if necessary (before scanning).
+Get channel from list, not config.
+column widths still are wrong sometimes.
+change scan results parsing to use QRegExp, adapt to wireless-tools-27 (e.g. always get channel #, etc)
+function to get ESSID of network connected to
+write essid of network connected to in bold letters (new setConnected() function of NetListViewItem, private bool mConnected)
+change connectedNetwork when interface changes.
+dynamic quality updating for connected network.
+revise/rewrite paintCell function, reduce flicker.
+'disconnect' button/option in the context menu (when appropriate)
+option to reconnect to currently connected network.
+cvs repository

*** 0.5.1a TODO:
+fix: don't set network as connected if link quality=0.
+fix column width calculation (last time hopefully. Was using wrong font metrics for connectedItem)
+bring back the 'AP' column.
+fix: tab order in "Edit settings..." dialog.
+remove wlassistant.rc file, update Makefile.am accordingly.
+fix action taken when clicking on connectedItem when its network is not configured.
+create 'itemAction()' function to run config/connect/disconnect/reconnect/etc after single click depending on item's status.

*** 0.5.2 TODO:
+icon marking connected network.
+fix crash on startup/scan.
+reduce flicker when populating netList.
+report 1/2 STAR *only if* link quality is 1+
+workaround to fix problems with some drivers wrongly reporting that interface is connected when it is not.
+connection status monitoring + actions.
+review netReconnect and netDisconnect functions.
+function to check if radio is physically turned off (with a switch on a laptop) if no scan results.
+fix overusing of cache
+'Do not ask again' checkboxes. (Conn lost, reconnect?, Conn failed, review settings?,...)

*** 0.5.2a-c:
+when detecting active connection: ping prints some errors on stdout, not stderr. :| Try to catch them.
+only check for active connection if there was none before scan.

*** 0.5.2d TODO:
+wait 1sec(1.5?) after killing dhcp client to make sure it quits.
+don't ifdown immediately after connection check fails.
+revert default action of connected item to disconnect.

*** 0.5.2e TODO:
+BUG REPORTED: dhclient doesn't get killed when connection fails.
+other fixes

*** 0.5.3 TODO:
+'Connect' button caption change when currentItem is selected.
+Connect the 'connect' button to itemAction().
+get mouse behaviour from KGlobalSettings::singleClick()
+make change of KGlobalSettings::singleClick() immediately apply in wlassistant.
+remove "Honor KDE single click" UI.
+connect signals/slots in wlassistant.cpp, not in the .ui files.
+remove "Honor KDE single click" from kcfg.
+remove 'netReconnect()' function, replacing with 'netConnect()' does the job.
+rework the config gui - replace netList&statusBar with config options (use WidgetStack, 'Settings' toggle-button).
+	gui for 'Quit upon successful connection'
+	gui for "Enable All Messages" option (KMessageBox::enableAllMessages()) ToolTip/WhatsThis: "Enable all messages which have been turned off with the 'Don't Show Again' feature."
+drop 'kconfigdialog.h' dependancy.
+remvoe showCfgDlg()
+reimplement 'close()' to save settings on quit.
+add timeout to dhclient & dhcpcd (not command line args), GUI
+when process running: change 'Close' button to 'Stop'. Pressing it should kill any running process.
+save last used interface in config.
+Formatting in message boxes.
+change button 'close' to 'stop' only if process runs longer than ca 1.5sec.
+change 'Settings' to 'Options' (application options).
+add 'What's This'help & tooltips.
+improve keyboard navigation (accels, tabs etc)

*** 0.5.4 TODO:
+create WATools
+create int WATools::quality(iface)
+create char* WATools::devices() [preferred]
+function to get gateway address from 'route'
+make wlassistant usable with cafes (login pages):
+	if ping_gateway ok: isConnected=true, isInternet=false.
+	show grayed out connectedIcon.
+	add 'isInternet' NetListViewItem property - set to 'true' when google reached.
+	quietly ping in the bg - if internet reached -> isInternet=true -> redraw change '?' to '->', change
+rewrite function to get gateway address to parse DHCP client files, so 'route' output is the last resort. (fast VS very slow).
+detect if connected AFTER scanning and showing network list. Otherwise it takes too long before something shows up.
+add paths to DHCP files with lease info to WAConfig, so user can modify them by hand-editing config file when necessary.
+create WATools::ap, WATools::ifname, WATools::setIfname, WATools::txpower
+review 'timerConnectionCheck' occurences. Make it work regardless of connectedItem presence (to detect if connected from an outside app)
+change QTimer::singleShot(...,..., SLOT(checkConnectionStatus()) ) to an timer object so it can be stopped at scan/disconnect -> this fixes 'wlassistant crashes when pressing 'scan' a lot' bug.
+set config groups
+create README with usage hints
+change 'restricted' to 'shared key'
+change 'open' to 'open system'
+change 'connect from selected network' to 'connect to connected network'
+add Portugese Brazilian translation (by Daniel Nascimento)
+add Polish description to .desktop file (Comment[pl])

*** 0.5.4a TODO:
+remove setIfname and ifname from WATools, get it from argument of each function.
+don't check for active connection when no scan results.
+change linux/socket.h to sys/socket.h in watools.cpp
+fix 'no scan results' problem
+make WATools::txpower return -1 if radio is disabled.
+add spanish translation by mariodebian

*** 0.5.5 TODO:
+add 'ASCII' checkbox for WEP key field. (prepends "s:")
+change "Checking radio..." and "ok"/not ok to "Radio OK" or "Radio not ok".
+apply patch for config.in.in (by Sheldon Lee-Wen)
+version in title
+?review WATools and fix crash reason.
+add QStringList dependancy to WATools, update functions to utilize it.
+get we_version from iw_something_kernel_we function, cache it. (watools)
+migrate to bksys/scons
+detect paths to .pid and .info files. It's too hard to figure it out by the users. Fixes "can't switch network" bug.
+no console output if radio ok.
+add missing i18n (wlassistant.cpp, line 382
+make kernel socket number static. open when needed, reuse later. Create WATools::cleanup.
+normalize quality returned by scan results.


*** 0.5.6 TODO:
+skip channel setting if not supported
+wait a bit before connection state checking
+per-network option to run user-specified commands after/before (dis)connecting.
+option to auto connect on startup

*** 0.5.7 TODO:
+hide WEP key in stdout and edit dialogs
+AP grouping
+horiz. center 'secured' icon
+fix bug: connected item NOT highlighted, when AP is "any"
+experimental WPA-PSK support:
+	get WPA settings from scanning
+	WPA support in connection wizard and edit dialog
+	WPA config file generator
+	wpa_supplicant status monitoring using wpa_cli
+	WPA driver detection
+	Show error when trying to connect to WPA-protected net and wpa_supplicant is not available.
+change "Group APs with same ESSID" label
+remove "...supported by iwconfig..." label (WEP key, wizard)
+fix dhclient association not being recognized -> ping to verify connection ONLY with manual settings.
+fix regression from 0.5.5: dhclient fails to connect
+don't check for connection while wizard is running.
+implement WATools::setUp/isUp using ioctl, no more ifconfig calls and output parsing
+implement WATools::doRequest/doWirelessRequest to minimize code duplication
+don't resolve names when getting gateway from route (faster)
+fix crash when "Active connection found." for AP=any
+remove all "ifup" action instances
+define and use global WA_CONNECTION_CHECK_INTERVAL
+define and use WA_TX_THRESHOLD in WATools
+remove gateway detection code
+fix "Group Access Points..." label capitalization
+adapt NetListViewItem to new connection status checking
+fix: background check not disabled when connecting on startup.
+remove redundant actions in netparams.h
+fix flags operators
+show channel of best AP if they're grouped
+run wpa_supplicant detached. Monitor using wpa_cli
+don't check status when reconnection dialog is open
+remove wlassistantwpa file on disconnection
+detect running DHCP client when connection detected on startup ( get NetParams.dhcp from setParamsFromConfig? )
+run setParamsFromItem before auto connecting (to properly set encryption settings)
+update Polish translation (help from riklaunim)
+remove default gateway upon disconnection if not managed by DHCP client (add "route_del" action)
+new connection detection. Incremental, in WATools, no more pings. Removed isConnected in wlasssistant.*
+remove cluttering borders in user interface & more
+review possible iwlist scan outputs for WPA/WPA2-PSK
+review/fix bugs on sf formus
+TEST TEST TEST

*** 0.5.8 TODO:
-Drop dependancy on ifconfig and route
-	replace "ifconfig_manual" with new WATools functions.
-	replace 'route' calls with ioctls SIOCADDRT and SIOCDELRT
-review netConnect function.
-fix keyboard navigation (enter should connect, not quit!)
-UI polish
-checkbox "Connect now!" in the last page of wizard
-meaningful messages about possible wpa_supplicant errors
-check for iwlib in configure script
-if connection lost and user wants to reconnect: disconnect and then scan before connecting to check if network is still available.
-real system tray support
-change "Quit upon successful connection" checkbox to "Minimize to system tray on successful connection"

*** 0.5.9 TODO:
-integrade kvpnc via dcop ( profiles(), setProfile(), doConnect(), doDisconnect() )
-fix all outstanding bugs
-update as many translations as possible
-make WPA-PSK support rock-stable
-code cleanup
-update/create WhatsThis and tooltips

*** 0.6.0 TODO:
-DCOP interface
-passive popups

0.6.9 TODO:
-preliminary support for wlan-ng

*** 0.7.0 TODO:
-wlan-ng support



*** I'm really bored TODO:
-About dialog
-Help


***************************************************************************************
***                                      IDEAS                                      ***
***************************************************************************************

*** GENERAL ***

+ Do not show interface combo if only one interface found
+- detect paths
+	- pidof, ifconfig, iwconfig, iwlist, dhcpcd/dhclient...

+ no UI for path selection
+ wizard with net params config (auto/manual, DNS etc, ESSID if needed) for unknown APs. Returns config string (AP::ESSID::NetScore::<parameters>).
+ NetParams structure
+ save settings to AP (but also store ESSID)
+ if more that one AP with same ESSID - allow settings for all APs.

+ on scanning:
+	if more that one AP with same ESSID - show a single entry

- on connecting: 
+	if AP & ESSID match - connect.
+	if match, but ENCRYPTION setting changed - disable enc/ask to enable.
-	if AP matches, ESSID does not - ask if settings for AP should be used, change ESSID in config
-	if only ESSID matches - ask. 
+	if none match - ask.(show 1st connection wizard)

- tray icon menu:
-	<some statistics>
-	-----------------------
-	disconnect (if connected)
-	reconnect (if connected)
-	connect (use preferred)
-       -----------------------
-	connect to -> ...
-	-----------------------
-	quit

- connection monitoring:
+	ping every 10/15/20s (?). if connection down:
-		reconnect (if AP still found)
-		connect to different AP same ESSID (if present)
-		connect to known network with highest NetScore
-		popup main win to select new network if any present, but none known
-		popup error message if no network found. disconnect.

+ RMB on network entry:
+	connect
+	disconnect
+	reconnect
+	edit settings... (if network known)
+	forget settings...


*********************************************************
*** ALWAYS CHANGE VERSION REQUIREMENTS IN UI FILES!!! ***
***  ALWAYS CHANGE VERSION IN PACKAGE INFORMATION!!!  ***
***         ALWAYS CHECK 'REMOVE ME' code!!!          ***
*********************************************************