This service will be undergoing maintenance at 00:00 UTC, 2016-08-01. It is expected to last about 1 hours
Bug 408181 - wpa_supplicant service script is completely FUBARed
wpa_supplicant service script is completely FUBARed
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: wpa_supplicant (Show other bugs)
8
All Linux
low Severity low
: ---
: ---
Assigned To: Dan Williams
Fedora Extras Quality Assurance
: Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-12-02 20:19 EST by sarcastic.mannequin
Modified: 2007-12-03 17:35 EST (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-12-03 17:35:24 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)

  None (edit)
Description sarcastic.mannequin 2007-12-02 20:19:28 EST
Description of problem:

wpa_supplicant service script is completely FUBARed.

Version-Release number of selected component (if applicable):

current release at 2007-11-02

How reproducible:

Try to get wpa_supplicant service to work.


Steps to Reproduce:
1.
2.
3.
  
Actual results:


Expected results:


Additional info: The wpa_supplicant service script won't work and I don't see
how it can ever work the way the script is written. I don't mean to be mean, but
is this stuff not tested or what!!!???
Comment 1 Peter Lemenkov 2007-12-03 04:55:35 EST
Please be more descriptive. 

Speaking closely to topic of your question - looks like wpa_supplicant not
tested by its Fedora maintainers in any configuration w/o NetworkManager.
Comment 2 Dan Williams 2007-12-03 09:59:43 EST
In what way is it not working?  The known issues are that options to enable the
D-Bus interface are used, but that the dynamic initscript dependency calculation
introduced with Fedora 8 broke the manual dependency that made wpa_supplicant
start after the messagebus service, leading to a failure to start at boot.  As a
workaround for hte moment, please remove the "-u" option from
/etc/init.d/wpa_supplicant.
Comment 3 sarcastic.mannequin 2007-12-03 13:07:05 EST
The wpa_supplicant initscript picks up $INTERFACES and $DRIVERS configuration
items from /etc/sysconfig/wpa_supplicant but the initscript uses the
configuration items incorrectly. The result is that wpa_supplicant cannot find
the interface and it does not know which driver to use.

This happens every time because the configuration items are passed incorrectly
to the wpa_supplicant program. Would fail any testing.
Comment 4 Dan Williams 2007-12-03 13:22:46 EST
It doesn't use them incorrectly, the problem is that wpa_supplicant is somewhat
special in the way that it orders and processes arguments.  So either the
INTERFACES & DRIVERS needs to be INTERFACES1, DRIVERS1, INTERFACES2, DRIVERS2,
INTERFACES3, DRIVERS3, etc, and there needs to be CONFFILE1, CONFFILE2,
CONFFILE3, OR the onus is on the person who's configuring the supplicant
_manually_ (at which point you have enough knowledge to figure this out) to make
the arguments correct.  Piling on more shell logic in the initscript to parse
space-separated arguments in each of DRIVERS INTERFACES CONFFILE is just way too
ugly and totally not an option.
Comment 5 sarcastic.mannequin 2007-12-03 16:45:47 EST
Have you tested this?

wpa_supplicant requires a '-i' before the interface name and a '-D' before the
driver name but the initscript does not add these bits when it uses $INTERFACES
and $DRIVERS from /etc/sysconfig/wpa_supplicant.

This is correct: wpa_supplicant -D wext -i wlan0 ...

This is wrong: wpa_supplicant wext wlan0 ...  <=== the way it is now

I've changed my initscript to add these missing bits and it now works. Sadly, my
linux-fu is too weak to write production scripts so I'll leave that to someone else.

I do agree that it would be overkill to modify the initscript to handle more
than a single wlan. That would seem to be a very rare case. Perhaps just a
comment in the initscript pointing out that it is for a single wlan would suffice.

In that case, to be completely correct, the variables should drop the plurals
and become $INTERFACE and $DRIVER (in both the initscript and the config file).
That assumes the variable names won't conflict with any other network scripts. A
better choice might be $WLAN_INTERFACE and $WLAN_DRIVER. Picky, picky, eh!
Comment 6 Dan Williams 2007-12-03 17:35:24 EST
Please reread my comments.  You, as the person modifying
/etc/sysconfig/wpa_supplicant, need to put the -i and -D in yourself.  SO, in
that file, you likely need:

INTERFACES="-ieth0"
DRIVERS="-Dwext"

I have added comments in that file in the next build to let users who need to
modify the arguments know what to put there. 

Note You need to log in before you can comment on or make changes to this bug.