summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/daemon/source/daemon.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/noncore/net/wellenreiter/daemon/source/daemon.cc b/noncore/net/wellenreiter/daemon/source/daemon.cc
index 46a50ed..d77d987 100644
--- a/noncore/net/wellenreiter/daemon/source/daemon.cc
+++ b/noncore/net/wellenreiter/daemon/source/daemon.cc
@@ -137,57 +137,66 @@ int main(int argc, char **argv)
137 if(FD_ISSET(pcap_fileno(handletopcap), &rset)) 137 if(FD_ISSET(pcap_fileno(handletopcap), &rset))
138 { 138 {
139 139
140 /* Grab one single packet */ 140 /* Grab one single packet */
141 packet = pcap_next(handletopcap, &header); 141 packet = pcap_next(handletopcap, &header);
142 142
143 /* process the packet */ 143 /* process the packet */
144 process_packets(&header,*&packet, GUIADDR, GUIPORT); 144 process_packets(&header,*&packet, GUIADDR, GUIPORT);
145 } 145 }
146 146
147 } /* while(1) */ 147 } /* while(1) */
148 148
149 close(sock); 149 close(sock);
150 exit(EXIT_SUCCESS); 150 exit(EXIT_SUCCESS);
151} 151}
152 152
153void 153void
154usage(void) 154usage(void)
155{ 155{
156 fprintf(stderr, "Usage: wellenreiter <device> <cardtype>\n" \ 156 fprintf(stderr, "Usage: wellenreiter <device> <cardtype>\n" \
157 "\t<device> = Wirelessdevice (e.g. wlan0)\n" \ 157 "\t<device> = Wirelessdevice (e.g. wlan0)\n" \
158 "\t<cardtype> = Cardtype:\tCisco\t= 1\n" \ 158 "\t<cardtype> = Cardtype:\tCisco\t= 1\n" \
159 "\t\t\t\tNG\t= 2\n" \ 159 "\t\t\t\tNG\t= 2\n" \
160 "\t\t\t\tHOSTAP\t= 3\n" \ 160 "\t\t\t\tHOSTAP\t= 3\n" \
161 "\t\t\t\tLUCENT\t= 4\n"); 161 "\t\t\t\tLUCENT\t= 4\n");
162 exit(EXIT_FAILURE); 162 exit(EXIT_FAILURE);
163} 163}
164 164
165void * 165void *
166channel_switcher(void *cardtypeptr) 166channel_switcher(void *cardtypeptr)
167{ 167{
168 wl_cardtype_t *cardtype; 168 wl_cardtype_t *cardtype;
169 int maxchan=0;
169 int channel=1; 170 int channel=1;
170
171 /* Get card info struct */ 171 /* Get card info struct */
172 cardtype = (wl_cardtype_t *)cardtypeptr; 172 cardtype = (wl_cardtype_t *)cardtypeptr;
173 173 /* Get from the wireless extension the amount of available channels
174 this prevents a fail in switching on us cards */
175 maxchan = card_detect_channels(cardtype->iface);
176
177 if (maxchan < MAXCHANNEL)
178 {
179 #undef MAXCHANNEL
180 #define MAXCHANNEL maxchan
181 }
182
174 while(1) 183 while(1)
175 { 184 {
176 185
177 /* If channel bigger than maxchannel, set to 1 */ 186 /* If channel bigger than maxchannel, set to 1 */
178 if(channel > MAXCHANNEL) 187 if(channel > MAXCHANNEL)
179 channel=1; 188 channel=1;
180 189
181 /* Set channel */ 190 /* Set channel */
182 if(!card_set_channel(cardtype->iface, channel, cardtype->type)) 191 if(!card_set_channel(cardtype->iface, channel, cardtype->type))
183 { 192 {
184 wl_logerr("Cannot set channel, thread exiting"); 193 wl_logerr("Cannot set channel, thread exiting");
185 pthread_exit(NULL); 194 pthread_exit(NULL);
186 } 195 }
187 196
188 /* sleep */ 197 /* sleep */
189 usleep(CHANINTERVAL); 198 usleep(CHANINTERVAL);
190 199
191 channel++; 200 channel++;
192 } /* while */ 201 } /* while */
193} 202}