~ubuntu-branches/ubuntu/lucid/wpasupplicant/lucid-updates

« back to all changes in this revision

Viewing changes to eap_methods.c

  • Committer: Bazaar Package Importer
  • Author(s): Kel Modderman
  • Date: 2006-10-05 08:04:01 UTC
  • mfrom: (1.1.5 upstream) (3 etch)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20061005080401-r8lqlix4390yos7b
Tags: 0.5.5-2
* Update madwifi headers to latest SVN. (Closes: #388316)
* Remove failed attempt at action locking. [debian/functions.sh,
  debian/wpa_action.sh]
* Add hysteresis checking functions, to avoid "event loops" while
  using wpa-roam. [debian/functions.sh, debian/wpa_action.sh]
* Change of co-maintainer email address.
* Add ishex() function to functions.sh to determine wpa-psk value type in
  plaintext or hex. This effectively eliminates the need for the bogus and
  somewhat confusing wpa-passphrase contruct specific to our scripts and
  allows wpa-psk to work with either a 8 to 63 character long plaintext
  string or 64 character long hex string.
* Adjust README.modes to not refer to the redundant wpa-passphrase stuff.
* Add big fat NOTE about acceptable wpa-psk's to top of example gallery.
* Strip surrounding quotes from wpa-ssid if present, instead of just whining
  about them.
* Update email address in copyright blurb of functions.sh, ifupdown.sh and
  wpa_action.sh.  

Show diffs side-by-side

added added

removed removed

Lines of Context:
96
96
{
97
97
        char *pos, *end;
98
98
        struct eap_method *m;
 
99
        int ret;
 
100
 
 
101
        if (buflen == 0)
 
102
                return 0;
99
103
 
100
104
        pos = buf;
101
105
        end = pos + buflen;
102
106
 
103
107
        for (m = eap_methods; m; m = m->next) {
104
 
                pos += snprintf(pos, end - pos, "%s%s",
105
 
                                m == eap_methods ? "" : " ", m->name);
 
108
                ret = snprintf(pos, end - pos, "%s%s",
 
109
                               m == eap_methods ? "" : " ", m->name);
 
110
                if (ret < 0 || ret >= end - pos)
 
111
                        break;
 
112
                pos += ret;
106
113
        }
 
114
        buf[buflen - 1] = '\0';
107
115
 
108
116
        return pos - buf;
109
117
}
110
118
 
111
119
 
112
120
/**
 
121
 * eap_get_names_as_string_array - Get supported EAP methods as string array
 
122
 * @len: Buffer for returning the number of items in array, not including %NULL
 
123
 * terminator. This parameter can be %NULL if the length is not needed.
 
124
 * Returns: A %NULL-terminated array of strings, or %NULL on error.
 
125
 *
 
126
 * This function returns the list of names for all supported EAP methods as an
 
127
 * array of strings. The caller must free the returned array items and the
 
128
 * array.
 
129
 */
 
130
char ** eap_get_names_as_string_array(size_t *num)
 
131
{
 
132
        struct eap_method *m;
 
133
        size_t array_len = 0;
 
134
        char **array;
 
135
        int i = 0;
 
136
 
 
137
        for (m = eap_methods; m; m = m->next)
 
138
                array_len++;
 
139
 
 
140
        array = wpa_zalloc(sizeof(char *) * (array_len + 1));
 
141
        if (array == NULL)
 
142
                return NULL;
 
143
 
 
144
        for (m = eap_methods; m; m = m->next)
 
145
                array[i++] = strdup(m->name);
 
146
        array[i] = NULL;
 
147
 
 
148
        if (num)
 
149
                *num = array_len;
 
150
 
 
151
        return array;
 
152
}
 
153
 
 
154
 
 
155
/**
113
156
 * eap_peer_get_methods - Get a list of enabled EAP peer methods
114
157
 * @count: Set to number of available methods
115
158
 * Returns: List of enabled EAP peer methods