From: <sat...@us...> - 2010-03-19 15:39:06
|
Revision: 243 http://w-meter.svn.sourceforge.net/w-meter/?rev=243&view=rev Author: sathakselva Date: 2010-03-19 15:38:58 +0000 (Fri, 19 Mar 2010) Log Message: ----------- Dynamic memory allocation is removed. Modified Paths: -------------- frame_injection_g/trunk/INSTALL frame_injection_g/trunk/src/control_pspoll_cpp.moc frame_injection_g/trunk/src/injection_main_cpp.cpp frame_injection_g/trunk/src/mac_80211.h frame_injection_g/trunk/src/mgmt_asso_req_cpp.cpp frame_injection_g/trunk/src/mgmt_asso_req_cpp.h frame_injection_g/trunk/src/mgmt_asso_res_cpp.cpp frame_injection_g/trunk/src/mgmt_asso_res_cpp.h Modified: frame_injection_g/trunk/INSTALL =================================================================== --- frame_injection_g/trunk/INSTALL 2010-03-17 14:59:14 UTC (rev 242) +++ frame_injection_g/trunk/INSTALL 2010-03-19 15:38:58 UTC (rev 243) @@ -1,4 +1,4 @@ -We have tested the software on fedora based system using atheros based wireless devices. See list of supported hardware. There is no reason why it should not work on other distros but right now its fully functional on a fedora system. We plan to test it on other platforms and update the package. +We have tested the software on fedora based system using atheros based wireless devices. See the list of supported hardwares.There is no reason why it should not work on other distros but right now its fully functional on a fedora system. We plan to test it on other platforms and update the package. The dependencies of the w-meter package include the following @@ -38,4 +38,4 @@ Have a look at the list of supported frames to know the type of frames that can be injected as of now. -Send in your queries to w-m...@so... +Send in your queries to w-m...@so... Modified: frame_injection_g/trunk/src/control_pspoll_cpp.moc =================================================================== --- frame_injection_g/trunk/src/control_pspoll_cpp.moc 2010-03-17 14:59:14 UTC (rev 242) +++ frame_injection_g/trunk/src/control_pspoll_cpp.moc 2010-03-19 15:38:58 UTC (rev 243) @@ -1,7 +1,7 @@ /**************************************************************************** ** control_pspoll_cpp meta object code from reading C++ file 'control_pspoll_cpp.h' ** -** Created: Mon Mar 15 20:19:01 2010 +** Created: Fri Mar 19 20:07:11 2010 ** by: The Qt MOC ($Id: qt/moc_yacc.cpp 3.3.8 edited Feb 2 14:59 $) ** ** WARNING! All changes made in this file will be lost! Modified: frame_injection_g/trunk/src/injection_main_cpp.cpp =================================================================== --- frame_injection_g/trunk/src/injection_main_cpp.cpp 2010-03-17 14:59:14 UTC (rev 242) +++ frame_injection_g/trunk/src/injection_main_cpp.cpp 2010-03-19 15:38:58 UTC (rev 243) @@ -57,7 +57,7 @@ int frame_count; int channel_index; -char iface[5]; +char iface[6]; WLAN_inject inject; /* initial values to be loaded in main form */ Modified: frame_injection_g/trunk/src/mac_80211.h =================================================================== --- frame_injection_g/trunk/src/mac_80211.h 2010-03-17 14:59:14 UTC (rev 242) +++ frame_injection_g/trunk/src/mac_80211.h 2010-03-19 15:38:58 UTC (rev 243) @@ -20,6 +20,8 @@ #ifndef MAC_80211_H #define MAC_80211_H #include <stdint.h> + +#define MAC_ADDRESS_LEN 6 /** @author root <root@localhost.localdomain> */ Modified: frame_injection_g/trunk/src/mgmt_asso_req_cpp.cpp =================================================================== --- frame_injection_g/trunk/src/mgmt_asso_req_cpp.cpp 2010-03-17 14:59:14 UTC (rev 242) +++ frame_injection_g/trunk/src/mgmt_asso_req_cpp.cpp 2010-03-19 15:38:58 UTC (rev 243) @@ -34,206 +34,231 @@ #include "mac_80211.h" -uint16_t global_assoreq_flag=0; +uint16_t global_assoreq_flag = 0; char default_assoc_req[] = "default_AssocReq"; +//uint8_t msg[300]; -mgmt_asso_req_cpp::mgmt_asso_req_cpp( QWidget* parent, const char* name, WFlags fl ) - : inj_mgmt_association_form( parent,name,fl ) +mgmt_asso_req_cpp::mgmt_asso_req_cpp (QWidget* parent, const char* name, WFlags fl) + : inj_mgmt_association_form (parent, name, fl) { - char frame1[2], frame2[2], frame3[2], frame4[2], frame5[2], frame6[2], frame7[2], frame8[2], frame9[2], frame10[2], frame11[2], frame12[2], frame13[2], frame14[2], frame15[2], frame16[2], nav[6], add1_1[3], add1_2[3], add1_3[3], add1_4[3], add1_5[3], add1_6[3], add2_1[3], add2_2[3], add2_3[3], add2_4[3], add2_5[3], add2_6[3], add3_1[3], add3_2[3], add3_3[3], add3_4[3], add3_5[3], add3_6[3], fragno[3], seqno[5], capinfo1[2], capinfo2[2], capinfo3[2], capinfo4[2], capinfo5[2], capinfo6[2], capinfo7[2], capinfo8[2], capinfo9[2], capinfo10[2],capinfo11[2], capinfo12[2], capinfo13[2], capinfo14[2], capinfo15[2], capinfo16[2], listenint[10], ssid[35], srate1[2], srate2[2], srate3[2], srate4[2], srate5[2], srate6[2], srate7[2], srate8[2], esrate1[2], esrate2[2], esrate3[2], esrate4[2], mand1[2], mand2[2], mand3[2], mand4[2], mand5[2], mand6[2], mand7[2], mand8[2], mand9[2], mand10[2], mand11[2], mand12[2]; + char frame1[2], frame2[2], frame3[2], frame4[2], frame5[2], frame6[2], frame7[2], frame8[2], frame9[2], frame10[2], frame11[2], frame12[2], frame13[2], frame14[2], frame15[2], frame16[2], nav[6], add1_1[3], add1_2[3], add1_3[3], add1_4[3], add1_5[3], add1_6[3], add2_1[3], add2_2[3], add2_3[3], add2_4[3], add2_5[3], add2_6[3], add3_1[3], add3_2[3], add3_3[3], add3_4[3], add3_5[3], add3_6[3], fragno[3], seqno[5], capinfo1[2], capinfo2[2], capinfo3[2], capinfo4[2], capinfo5[2], capinfo6[2], capinfo7[2], capinfo8[2], capinfo9[2], capinfo10[2], capinfo11[2], capinfo12[2], capinfo13[2], capinfo14[2], capinfo15[2], capinfo16[2], listenint[10], ssid[35], srate1[2], srate2[2], srate3[2], srate4[2], srate5[2], srate6[2], srate7[2], srate8[2], esrate1[2], esrate2[2], esrate3[2], esrate4[2], mand1[2], mand2[2], mand3[2], mand4[2], mand5[2], mand6[2], mand7[2], mand8[2], mand9[2], mand10[2], mand11[2], mand12[2]; - FILE *file1; - file1=fopen( default_assoc_req,"r" ); - if ( file1==NULL ) - { - KMessageBox::error( this,"Unable to open file.Loading initial values" ); - reset_assoc_req(); - } - else - { - /* Reading from template files for filling default values */ + FILE *file1; + file1 = fopen (default_assoc_req, "r"); - while ( fscanf( file1,"%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", &frame1[0],&frame2[0],&frame3[0],&frame4[0],&frame5[0],&frame6[0],&frame7[0],&frame8[0],&frame9[0],&frame10[0],&frame11[0],&frame12[0],&frame13[0],&frame14[0],&frame15[0],&frame16[0],&nav[0],&add1_1[0],&add1_2[0],&add1_3[0],&add1_4[0],&add1_5[0],&add1_6[0],&add2_1[0],&add2_2[0],&add2_3[0],&add2_4[0],&add2_5[0],&add2_6[0],&add3_1[0],&add3_2[0],&add3_3[0],&add3_4[0],&add3_5[0],&add3_6[0],&fragno[0],&seqno[0],&capinfo1[0],&capinfo2[0],&capinfo3[0],&capinfo4[0],&capinfo5[0],&capinfo6[0],&capinfo7[0],&capinfo8[0],&capinfo9[0],&capinfo10[0],&capinfo11[0],&capinfo12[0],&capinfo13[0],&capinfo14[0],&capinfo15[0],&capinfo16[0],&listenint[0],&ssid[0],&srate1[0],&srate2[0],&srate3[0],&srate4[0],&srate5[0],&srate6[0],&srate7[0],&srate8[0],&esrate1[0],&esrate2[0],&esrate3[0],&esrate4[0],&mand1[0],&mand2[0],&mand3[0],&mand4[0],&mand5[0],&mand6[0],&mand7[0],&mand8[0],&mand9[0],&mand10[0],&mand11[0],&mand12[0] )!=EOF ) - { - /* Loading Frame Header details */ + if (file1 == NULL) + { + KMessageBox::error (this, "Unable to open file.Loading initial values"); + reset_assoc_req(); + } + else + { + /* Reading from template files for filling default values */ - lineedit_frame_1->setText( frame1 ); - lineedit_frame_2->setText( frame2 ); - lineedit_frame_3->setText( frame3 ); - lineedit_frame_4->setText( frame4 ); - lineedit_frame_5->setText( frame5 ); - lineedit_frame_6->setText( frame6 ); - lineedit_frame_7->setText( frame7 ); - lineedit_frame_8->setText( frame8 ); - lineedit_frame_9->setText( frame9 ); - lineedit_frame_10->setText( frame10 ); - lineedit_frame_11->setText( frame11 ); - lineedit_frame_12->setText( frame12 ); - lineedit_frame_13->setText( frame13 ); - lineedit_frame_14->setText( frame14 ); - lineedit_frame_15->setText( frame15 ); - lineedit_frame_16->setText( frame16 ); + while (fscanf (file1, "%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", &frame1[0], &frame2[0], &frame3[0], &frame4[0], &frame5[0], &frame6[0], &frame7[0], &frame8[0], &frame9[0], &frame10[0], &frame11[0], &frame12[0], &frame13[0], &frame14[0], &frame15[0], &frame16[0], &nav[0], &add1_1[0], &add1_2[0], &add1_3[0], &add1_4[0], &add1_5[0], &add1_6[0], &add2_1[0], &add2_2[0], &add2_3[0], &add2_4[0], &add2_5[0], &add2_6[0], &add3_1[0], &add3_2[0], &add3_3[0], &add3_4[0], &add3_5[0], &add3_6[0], &fragno[0], &seqno[0], &capinfo1[0], &capinfo2[0], &capinfo3[0], &capinfo4[0], &capinfo5[0], &capinfo6[0], &capinfo7[0], &capinfo8[0], &capinfo9[0], &capinfo10[0], &capinfo11[0], &capinfo12[0], &capinfo13[0], &capinfo14[0], &capinfo15[0], &capinfo16[0], &listenint[0], &ssid[0], &srate1[0], &srate2[0], &srate3[0], &srate4[0], &srate5[0], &srate6[0], &srate7[0], &srate8[0], &esrate1[0], &esrate2[0], &esrate3[0], &esrate4[0], &mand1[0], &mand2[0], &mand3[0], &mand4[0], &mand5[0], &mand6[0], &mand7[0], &mand8[0], &mand9[0], &mand10[0], &mand11[0], &mand12[0]) != EOF) + { + /* Loading Frame Header details */ - /* Loading NAV Values */ - lineedit_NAV->setText( nav ); + lineedit_frame_1->setText (frame1); + lineedit_frame_2->setText (frame2); + lineedit_frame_3->setText (frame3); + lineedit_frame_4->setText (frame4); + lineedit_frame_5->setText (frame5); + lineedit_frame_6->setText (frame6); + lineedit_frame_7->setText (frame7); + lineedit_frame_8->setText (frame8); + lineedit_frame_9->setText (frame9); + lineedit_frame_10->setText (frame10); + lineedit_frame_11->setText (frame11); + lineedit_frame_12->setText (frame12); + lineedit_frame_13->setText (frame13); + lineedit_frame_14->setText (frame14); + lineedit_frame_15->setText (frame15); + lineedit_frame_16->setText (frame16); - /* Loading Address Values */ - lineedit_address1_1->setText( add1_1 ); - lineedit_address1_2->setText( add1_2 ); - lineedit_address1_3->setText( add1_3 ); - lineedit_address1_4->setText( add1_4 ); - lineedit_address1_5->setText( add1_5 ); - lineedit_address1_6->setText( add1_6 ); + /* Loading NAV Values */ + lineedit_NAV->setText (nav); - lineedit_address2_1->setText( add2_1 ); - lineedit_address2_2->setText( add2_2 ); - lineedit_address2_3->setText( add2_3 ); - lineedit_address2_4->setText( add2_4 ); - lineedit_address2_5->setText( add2_5 ); - lineedit_address2_6->setText( add2_6 ); + /* Loading Address Values */ + lineedit_address1_1->setText (add1_1); + lineedit_address1_2->setText (add1_2); + lineedit_address1_3->setText (add1_3); + lineedit_address1_4->setText (add1_4); + lineedit_address1_5->setText (add1_5); + lineedit_address1_6->setText (add1_6); - lineedit_address3_1->setText( add3_1 ); - lineedit_address3_2->setText( add3_2 ); - lineedit_address3_3->setText( add3_3 ); - lineedit_address3_4->setText( add3_4 ); - lineedit_address3_5->setText( add3_5 ); - lineedit_address3_6->setText( add3_6 ); + lineedit_address2_1->setText (add2_1); + lineedit_address2_2->setText (add2_2); + lineedit_address2_3->setText (add2_3); + lineedit_address2_4->setText (add2_4); + lineedit_address2_5->setText (add2_5); + lineedit_address2_6->setText (add2_6); - /* Loading fragment number, sequence number and Capability information elements */ - lineedit_frag_no->setText( fragno ); - lineedit_seq_no->setText( seqno ); + lineedit_address3_1->setText (add3_1); + lineedit_address3_2->setText (add3_2); + lineedit_address3_3->setText (add3_3); + lineedit_address3_4->setText (add3_4); + lineedit_address3_5->setText (add3_5); + lineedit_address3_6->setText (add3_6); - lineedit_cap_info_1->setText( capinfo1 ); - lineedit_cap_info_2->setText( capinfo2 ); - lineedit_cap_info_3->setText( capinfo3 ); - lineedit_cap_info_4->setText( capinfo4 ); - lineedit_cap_info_5->setText( capinfo5 ); - lineedit_cap_info_6->setText( capinfo6 ); - lineedit_cap_info_7->setText( capinfo7 ); - lineedit_cap_info_8->setText( capinfo8 ); + /* Loading fragment number, sequence number and Capability information elements */ + lineedit_frag_no->setText (fragno); + lineedit_seq_no->setText (seqno); - lineedit_cap_info_9->setText( capinfo9 ); - lineedit_cap_info_10->setText( capinfo10 ); - lineedit_cap_info_11->setText( capinfo11 ); - lineedit_cap_info_12->setText( capinfo12 ); - lineedit_cap_info_13->setText( capinfo13 ); - lineedit_cap_info_14->setText( capinfo14 ); - lineedit_cap_info_15->setText( capinfo15 ); - lineedit_cap_info_16->setText( capinfo16 ); + lineedit_cap_info_1->setText (capinfo1); + lineedit_cap_info_2->setText (capinfo2); + lineedit_cap_info_3->setText (capinfo3); + lineedit_cap_info_4->setText (capinfo4); + lineedit_cap_info_5->setText (capinfo5); + lineedit_cap_info_6->setText (capinfo6); + lineedit_cap_info_7->setText (capinfo7); + lineedit_cap_info_8->setText (capinfo8); - /* Loading listen intervals and ssid */ + lineedit_cap_info_9->setText (capinfo9); + lineedit_cap_info_10->setText (capinfo10); + lineedit_cap_info_11->setText (capinfo11); + lineedit_cap_info_12->setText (capinfo12); + lineedit_cap_info_13->setText (capinfo13); + lineedit_cap_info_14->setText (capinfo14); + lineedit_cap_info_15->setText (capinfo15); + lineedit_cap_info_16->setText (capinfo16); - lineedit_listen_interval->setText( listenint ); - lineedit_ssid->setText( ssid ); + /* Loading listen intervals and ssid */ - /* Toggling checkboxes for various properties like rates etc based on values in files*/ + lineedit_listen_interval->setText (listenint); + lineedit_ssid->setText (ssid); - if ( atoi( srate1 ) ) - checkbox_srate_1->setChecked( 1 ); - else - checkbox_srate_1->setChecked( 0 ); - if ( atoi( srate2 ) ) - checkbox_srate_2->setChecked( 1 ); - else - checkbox_srate_2->setChecked( 0 ); - if ( atoi( srate3 ) ) - checkbox_srate_3->setChecked( 1 ); - else - checkbox_srate_3->setChecked( 0 ); - if ( atoi( srate4 ) ) - checkbox_srate_4->setChecked( 1 ); - else - checkbox_srate_4->setChecked( 0 ); - if ( atoi( srate5 ) ) - checkbox_srate_5->setChecked( 1 ); - else - checkbox_srate_5->setChecked( 0 ); - if ( atoi( srate6 ) ) - checkbox_srate_6->setChecked( 1 ); - else - checkbox_srate_6->setChecked( 0 ); - if ( atoi( srate7 ) ) - checkbox_srate_7->setChecked( 1 ); - else - checkbox_srate_7->setChecked( 0 ); - if ( atoi( srate8 ) ) - checkbox_srate_8->setChecked( 1 ); - else - checkbox_srate_8->setChecked( 0 ); + /* Toggling checkboxes for various properties like rates etc based on values in files*/ + if (atoi (srate1)) + checkbox_srate_1->setChecked (1); + else + checkbox_srate_1->setChecked (0); - if ( atoi( esrate1 ) ) - checkbox_esrate_1->setChecked( 1 ); - else - checkbox_esrate_1->setChecked( 0 ); - if ( atoi( esrate2 ) ) - checkbox_esrate_2->setChecked( 1 ); - else - checkbox_esrate_2->setChecked( 0 ); - if ( atoi( esrate3 ) ) - checkbox_esrate_3->setChecked( 1 ); - else - checkbox_esrate_3->setChecked( 0 ); - if ( atoi( esrate4 ) ) - checkbox_esrate_4->setChecked( 1 ); - else - checkbox_esrate_4->setChecked( 0 ); + if (atoi (srate2)) + checkbox_srate_2->setChecked (1); + else + checkbox_srate_2->setChecked (0); - /* Loading mandatory rates */ + if (atoi (srate3)) + checkbox_srate_3->setChecked (1); + else + checkbox_srate_3->setChecked (0); - if ( atoi( mand1 ) ) - checkbox_mand_1->setChecked( 1 ); - else - checkbox_mand_1->setChecked( 0 ); - if ( atoi( mand2 ) ) - checkbox_mand_2->setChecked( 1 ); - else - checkbox_mand_2->setChecked( 0 ); - if ( atoi( mand3 ) ) - checkbox_mand_3->setChecked( 1 ); - else - checkbox_mand_3->setChecked( 0 ); - if ( atoi( mand4 ) ) - checkbox_mand_4->setChecked( 1 ); - else - checkbox_mand_4->setChecked( 0 ); - if ( atoi( mand5 ) ) - checkbox_mand_5->setChecked( 1 ); - else - checkbox_mand_5->setChecked( 0 ); - if ( atoi( mand6 ) ) - checkbox_mand_6->setChecked( 1 ); - else - checkbox_mand_6->setChecked( 0 ); - if ( atoi( mand7 ) ) - checkbox_mand_7->setChecked( 1 ); - else - checkbox_mand_7->setChecked( 0 ); - if ( atoi( mand8 ) ) - checkbox_mand_8->setChecked( 1 ); - else - checkbox_mand_8->setChecked( 0 ); - if ( atoi( mand9 ) ) - checkbox_mand_9->setChecked( 1 ); - else - checkbox_mand_9->setChecked( 0 ); - if ( atoi( mand10 ) ) - checkbox_mand_10->setChecked( 1 ); - else - checkbox_mand_10->setChecked( 0 ); - if ( atoi( mand11 ) ) - checkbox_mand_11->setChecked( 1 ); - else - checkbox_mand_11->setChecked( 0 ); - if ( atoi( mand12 ) ) - checkbox_mand_12->setChecked( 1 ); - else - checkbox_mand_12->setChecked( 0 ); - } - fclose( file1 ); - } - assoreq_run_button->setEnabled( 1 ); + if (atoi (srate4)) + checkbox_srate_4->setChecked (1); + else + checkbox_srate_4->setChecked (0); + + if (atoi (srate5)) + checkbox_srate_5->setChecked (1); + else + checkbox_srate_5->setChecked (0); + + if (atoi (srate6)) + checkbox_srate_6->setChecked (1); + else + checkbox_srate_6->setChecked (0); + + if (atoi (srate7)) + checkbox_srate_7->setChecked (1); + else + checkbox_srate_7->setChecked (0); + + if (atoi (srate8)) + checkbox_srate_8->setChecked (1); + else + checkbox_srate_8->setChecked (0); + + + if (atoi (esrate1)) + checkbox_esrate_1->setChecked (1); + else + checkbox_esrate_1->setChecked (0); + + if (atoi (esrate2)) + checkbox_esrate_2->setChecked (1); + else + checkbox_esrate_2->setChecked (0); + + if (atoi (esrate3)) + checkbox_esrate_3->setChecked (1); + else + checkbox_esrate_3->setChecked (0); + + if (atoi (esrate4)) + checkbox_esrate_4->setChecked (1); + else + checkbox_esrate_4->setChecked (0); + + /* Loading mandatory rates */ + + if (atoi (mand1)) + checkbox_mand_1->setChecked (1); + else + checkbox_mand_1->setChecked (0); + + if (atoi (mand2)) + checkbox_mand_2->setChecked (1); + else + checkbox_mand_2->setChecked (0); + + if (atoi (mand3)) + checkbox_mand_3->setChecked (1); + else + checkbox_mand_3->setChecked (0); + + if (atoi (mand4)) + checkbox_mand_4->setChecked (1); + else + checkbox_mand_4->setChecked (0); + + if (atoi (mand5)) + checkbox_mand_5->setChecked (1); + else + checkbox_mand_5->setChecked (0); + + if (atoi (mand6)) + checkbox_mand_6->setChecked (1); + else + checkbox_mand_6->setChecked (0); + + if (atoi (mand7)) + checkbox_mand_7->setChecked (1); + else + checkbox_mand_7->setChecked (0); + + if (atoi (mand8)) + checkbox_mand_8->setChecked (1); + else + checkbox_mand_8->setChecked (0); + + if (atoi (mand9)) + checkbox_mand_9->setChecked (1); + else + checkbox_mand_9->setChecked (0); + + if (atoi (mand10)) + checkbox_mand_10->setChecked (1); + else + checkbox_mand_10->setChecked (0); + + if (atoi (mand11)) + checkbox_mand_11->setChecked (1); + else + checkbox_mand_11->setChecked (0); + + if (atoi (mand12)) + checkbox_mand_12->setChecked (1); + else + checkbox_mand_12->setChecked (0); + } + + fclose (file1); + } + + assoreq_run_button->setEnabled (1); } @@ -245,833 +270,818 @@ /*$SPECIALIZATION$*/ void mgmt_asso_req_cpp::mainwin_click() { - assoreq_run_button->setEnabled( 1 ); - close(); + assoreq_run_button->setEnabled (1); + close(); } /* Clear button functionality - Similar to reset form */ void mgmt_asso_req_cpp::clear_button_click() { - reset_assoc_req(); - assoreq_run_button->setEnabled( 1 ); + reset_assoc_req(); + assoreq_run_button->setEnabled (1); } /* Event Invoked after pressing Run button */ void mgmt_asso_req_cpp::run_button_click() { - global_assoreq_flag=1; - func_assoreq_hex_convertion(); + global_assoreq_flag = 1; + func_assoreq_hex_convertion(); } /* Procedure for saving used form values as a template */ void mgmt_asso_req_cpp::assoreq_save_click() { - if ( lineedit_testid->text()!="" ) - { - global_assoreq_flag=3; - func_assoreq_hex_convertion(); - lineedit_testid->clear(); - } - else - QMessageBox::critical( this, tr( "Error" ), tr( "Test ID is empty" ) ); + if (lineedit_testid->text() != "") + { + global_assoreq_flag = 3; + func_assoreq_hex_convertion(); + lineedit_testid->clear(); + } + else + QMessageBox::critical (this, tr ("Error"), tr ("Test ID is empty")); } /* Function for changing default templates */ void mgmt_asso_req_cpp::assoreq_default_click() { - global_assoreq_flag=2; - func_assoreq_hex_convertion(); + global_assoreq_flag = 2; + func_assoreq_hex_convertion(); } void mgmt_asso_req_cpp::func_assoreq_hex_convertion() { - mac_80211 mac; - bool ok; - // QReg validator initialization - QRegExp rx( "[0-9A-Fa-f]{2}" ); - QRegExpValidator v( rx, this ); + mac_80211 mac; + uint8_t *frame = msg; + memset(frame, 0, sizeof (msg)); + bool ok; + // QReg validator initialization + QRegExp rx ("[0-9A-Fa-f]{2}"); + QRegExpValidator v (rx, this); - lineedit_address1_1->setValidator( &v ); - lineedit_address1_2->setValidator( &v ); - lineedit_address1_3->setValidator( &v ); - lineedit_address1_4->setValidator( &v ); - lineedit_address1_5->setValidator( &v ); - lineedit_address1_6->setValidator( &v ); - lineedit_address2_1->setValidator( &v ); - lineedit_address2_2->setValidator( &v ); - lineedit_address2_3->setValidator( &v ); - lineedit_address2_4->setValidator( &v ); - lineedit_address2_5->setValidator( &v ); - lineedit_address2_6->setValidator( &v ); - lineedit_address3_1->setValidator( &v ); - lineedit_address3_2->setValidator( &v ); - lineedit_address3_3->setValidator( &v ); - lineedit_address3_4->setValidator( &v ); - lineedit_address3_5->setValidator( &v ); - lineedit_address3_6->setValidator( &v ); - // address fields values to local variable - QString add1_1=lineedit_address1_1->text(); - QString add1_2=lineedit_address1_2->text(); - QString add1_3=lineedit_address1_3->text(); - QString add1_4=lineedit_address1_4->text(); - QString add1_5=lineedit_address1_5->text(); - QString add1_6=lineedit_address1_6->text(); - QString add2_1=lineedit_address2_1->text(); - QString add2_2=lineedit_address2_2->text(); - QString add2_3=lineedit_address2_3->text(); - QString add2_4=lineedit_address2_4->text(); - QString add2_5=lineedit_address2_5->text(); - QString add2_6=lineedit_address2_6->text(); - QString add3_1=lineedit_address3_1->text(); - QString add3_2=lineedit_address3_2->text(); - QString add3_3=lineedit_address3_3->text(); - QString add3_4=lineedit_address3_4->text(); - QString add3_5=lineedit_address3_5->text(); - QString add3_6=lineedit_address3_6->text(); + lineedit_address1_1->setValidator (&v); + lineedit_address1_2->setValidator (&v); + lineedit_address1_3->setValidator (&v); + lineedit_address1_4->setValidator (&v); + lineedit_address1_5->setValidator (&v); + lineedit_address1_6->setValidator (&v); + lineedit_address2_1->setValidator (&v); + lineedit_address2_2->setValidator (&v); + lineedit_address2_3->setValidator (&v); + lineedit_address2_4->setValidator (&v); + lineedit_address2_5->setValidator (&v); + lineedit_address2_6->setValidator (&v); + lineedit_address3_1->setValidator (&v); + lineedit_address3_2->setValidator (&v); + lineedit_address3_3->setValidator (&v); + lineedit_address3_4->setValidator (&v); + lineedit_address3_5->setValidator (&v); + lineedit_address3_6->setValidator (&v); + // address fields values to local variable + QString add1_1 = lineedit_address1_1->text(); + QString add1_2 = lineedit_address1_2->text(); + QString add1_3 = lineedit_address1_3->text(); + QString add1_4 = lineedit_address1_4->text(); + QString add1_5 = lineedit_address1_5->text(); + QString add1_6 = lineedit_address1_6->text(); + QString add2_1 = lineedit_address2_1->text(); + QString add2_2 = lineedit_address2_2->text(); + QString add2_3 = lineedit_address2_3->text(); + QString add2_4 = lineedit_address2_4->text(); + QString add2_5 = lineedit_address2_5->text(); + QString add2_6 = lineedit_address2_6->text(); + QString add3_1 = lineedit_address3_1->text(); + QString add3_2 = lineedit_address3_2->text(); + QString add3_3 = lineedit_address3_3->text(); + QString add3_4 = lineedit_address3_4->text(); + QString add3_5 = lineedit_address3_5->text(); + QString add3_6 = lineedit_address3_6->text(); - int pos=0; - // validating fields - if (( v.validate( add1_1, pos ) !=0 ) && - ( v.validate( add1_2, pos ) !=0 ) && - ( v.validate( add1_3, pos ) !=0 ) && - ( v.validate( add1_4, pos ) !=0 ) && - ( v.validate( add1_5, pos ) !=0 ) && - ( v.validate( add1_6, pos ) !=0 ) && - ( v.validate( add2_1, pos ) !=0 ) && - ( v.validate( add2_2, pos ) !=0 ) && - ( v.validate( add2_3, pos ) !=0 ) && - ( v.validate( add2_4, pos ) !=0 ) && - ( v.validate( add2_5, pos ) !=0 ) && - ( v.validate( add2_6, pos ) !=0 ) && - ( v.validate( add3_1, pos ) !=0 ) && - ( v.validate( add3_2, pos ) !=0 ) && - ( v.validate( add3_3, pos ) !=0 ) && - ( v.validate( add3_4, pos ) !=0 ) && - ( v.validate( add3_5, pos ) !=0 ) && - ( v.validate( add3_6, pos ) !=0 ) ) - { - //validating frame control fields and capability information fields + int pos = 0; + // validating fields - if ( lineedit_frame_1->text().toInt()<=1 && lineedit_frame_1->text()!="" && lineedit_frame_2->text().toInt()<=1 && lineedit_frame_2->text()!="" && lineedit_frame_3->text().toInt()<=1 && lineedit_frame_3->text()!="" && lineedit_frame_4->text().toInt()<=1 && lineedit_frame_4->text()!="" && lineedit_frame_5->text().toInt()<=1 && lineedit_frame_5->text()!="" && lineedit_frame_6->text().toInt()<=1 && lineedit_frame_6->text()!="" && lineedit_frame_7->text().toInt()<=1 && lineedit_frame_7->text()!="" && lineedit_frame_8->text().toInt()<=1 && lineedit_frame_8->text()!="" && lineedit_frame_9->text().toInt()<=1 && lineedit_frame_9->text()!="" && lineedit_frame_10->text().toInt()<=1 && lineedit_frame_10->text()!="" && lineedit_frame_11->text().toInt()<=1 && lineedit_frame_11->text()!="" && lineedit_frame_12->text().toInt()<=1 && lineedit_frame_12->text()!="" && lineedit_frame_13->text().toInt()<=1 && lineedit_frame_13->text()!="" && lineedit_frame_14->text().toInt()<=1 && lineedit_frame_14->text()!="" && lineedit_frame_15->text().toInt()<=1 && lineedit_frame_15->text()!="" && lineedit_frame_16->text().toInt()<=1 && lineedit_frame_16->text()!="" ) - { - // Validating Address feilds which should not be empty + if ( (v.validate (add1_1, pos) != 0) && + (v.validate (add1_2, pos) != 0) && + (v.validate (add1_3, pos) != 0) && + (v.validate (add1_4, pos) != 0) && + (v.validate (add1_5, pos) != 0) && + (v.validate (add1_6, pos) != 0) && + (v.validate (add2_1, pos) != 0) && + (v.validate (add2_2, pos) != 0) && + (v.validate (add2_3, pos) != 0) && + (v.validate (add2_4, pos) != 0) && + (v.validate (add2_5, pos) != 0) && + (v.validate (add2_6, pos) != 0) && + (v.validate (add3_1, pos) != 0) && + (v.validate (add3_2, pos) != 0) && + (v.validate (add3_3, pos) != 0) && + (v.validate (add3_4, pos) != 0) && + (v.validate (add3_5, pos) != 0) && + (v.validate (add3_6, pos) != 0)) + { + //validating frame control fields and capability information fields - if ( lineedit_address1_1->text()!="" && lineedit_address1_2->text()!="" && lineedit_address1_3->text()!="" && lineedit_address1_4->text()!="" && lineedit_address1_5->text()!="" && lineedit_address1_6->text()!="" && lineedit_address2_1->text()!="" && lineedit_address2_2->text()!="" && lineedit_address2_3->text()!="" && lineedit_address2_4->text()!="" && lineedit_address2_5->text()!="" && lineedit_address2_6->text()!="" && lineedit_address3_1->text()!="" && lineedit_address3_2->text()!="" && lineedit_address3_3->text()!="" && lineedit_address3_4->text()!="" && lineedit_address3_5->text()!="" && lineedit_address3_6->text()!="" ) - { - // inializing lineedit values to local variables - uint16_t duration_id = lineedit_NAV->text().toInt(); - uint16_t frag_no=lineedit_frag_no->text().toInt(); - uint16_t seq_no=lineedit_seq_no->text().toInt(); - uint16_t listen_intrvl_int = lineedit_listen_interval->text().toInt(); + if (lineedit_frame_1->text().toInt() <= 1 && lineedit_frame_1->text() != "" && lineedit_frame_2->text().toInt() <= 1 && lineedit_frame_2->text() != "" && lineedit_frame_3->text().toInt() <= 1 && lineedit_frame_3->text() != "" && lineedit_frame_4->text().toInt() <= 1 && lineedit_frame_4->text() != "" && lineedit_frame_5->text().toInt() <= 1 && lineedit_frame_5->text() != "" && lineedit_frame_6->text().toInt() <= 1 && lineedit_frame_6->text() != "" && lineedit_frame_7->text().toInt() <= 1 && lineedit_frame_7->text() != "" && lineedit_frame_8->text().toInt() <= 1 && lineedit_frame_8->text() != "" && lineedit_frame_9->text().toInt() <= 1 && lineedit_frame_9->text() != "" && lineedit_frame_10->text().toInt() <= 1 && lineedit_frame_10->text() != "" && lineedit_frame_11->text().toInt() <= 1 && lineedit_frame_11->text() != "" && lineedit_frame_12->text().toInt() <= 1 && lineedit_frame_12->text() != "" && lineedit_frame_13->text().toInt() <= 1 && lineedit_frame_13->text() != "" && lineedit_frame_14->text().toInt() <= 1 && lineedit_frame_14->text() != "" && lineedit_frame_15->text().toInt() <= 1 && lineedit_frame_15->text() != "" && lineedit_frame_16->text().toInt() <= 1 && lineedit_frame_16->text() != "") + { + // Validating Address feilds which should not be empty - /* validating lineedit values */ - /* validating NAV */ - if ( duration_id<65535 && lineedit_NAV->text()!="" ) - { - if ( frag_no<16 && lineedit_frag_no->text()!="" ) - { - if ( seq_no<4096 && lineedit_seq_no->text()!="" ) - { - /* validating capability info field values */ - if ( lineedit_cap_info_1->text().toInt()<=1&& lineedit_cap_info_1->text()!="" && - lineedit_cap_info_2->text().toInt()<=1&& lineedit_cap_info_2->text()!="" && - lineedit_cap_info_3->text().toInt()<=1&& lineedit_cap_info_3->text()!="" && - lineedit_cap_info_4->text().toInt()<=1&& lineedit_cap_info_4->text()!="" && - lineedit_cap_info_5->text().toInt()<=1&& lineedit_cap_info_5->text()!="" && - lineedit_cap_info_6->text().toInt()<=1&& lineedit_cap_info_6->text()!="" && - lineedit_cap_info_7->text().toInt()<=1&& lineedit_cap_info_7->text()!="" && - lineedit_cap_info_8->text().toInt()<=1&& lineedit_cap_info_8->text()!="" && - lineedit_cap_info_9->text().toInt()<=1&& lineedit_cap_info_9->text()!="" && - lineedit_cap_info_10->text().toInt()<=1&& lineedit_cap_info_10->text()!="" && - lineedit_cap_info_11->text().toInt()<=1&& lineedit_cap_info_11->text()!="" && - lineedit_cap_info_12->text().toInt()<=1&& lineedit_cap_info_12->text()!="" && - lineedit_cap_info_13->text().toInt()<=1&& lineedit_cap_info_13->text()!="" && - lineedit_cap_info_14->text().toInt()<=1 && lineedit_cap_info_14->text()!="" && - lineedit_cap_info_15->text().toInt()<=1&& lineedit_cap_info_15->text()!="" && - lineedit_cap_info_16->text().toInt()<=1 && lineedit_cap_info_16->text()!="" ) - { - /* validating Listen Interval field */ - if ( lineedit_listen_interval->text()!="" && listen_intrvl_int >0 && listen_intrvl_int < 2001 ) - { - uint8_t frame_ctrl0 = 0X00, frame_ctrl1 = 0X00, duration_char[2], listen_intrvl_char[2]; - /* Form Frame control */ - frame_ctrl0 = mac.bits_to_byte( lineedit_frame_1->text(), lineedit_frame_2->text(), lineedit_frame_3->text(), lineedit_frame_4->text(), lineedit_frame_5->text(), lineedit_frame_6->text(), lineedit_frame_7->text(), lineedit_frame_8->text() ); + if (lineedit_address1_1->text() != "" && lineedit_address1_2->text() != "" && lineedit_address1_3->text() != "" && lineedit_address1_4->text() != "" && lineedit_address1_5->text() != "" && lineedit_address1_6->text() != "" && lineedit_address2_1->text() != "" && lineedit_address2_2->text() != "" && lineedit_address2_3->text() != "" && lineedit_address2_4->text() != "" && lineedit_address2_5->text() != "" && lineedit_address2_6->text() != "" && lineedit_address3_1->text() != "" && lineedit_address3_2->text() != "" && lineedit_address3_3->text() != "" && lineedit_address3_4->text() != "" && lineedit_address3_5->text() != "" && lineedit_address3_6->text() != "") + { + // inializing lineedit values to local variables + uint16_t duration_id = lineedit_NAV->text().toInt(); + uint16_t frag_no = lineedit_frag_no->text().toInt(); + uint16_t seq_no = lineedit_seq_no->text().toInt(); + uint16_t listen_intrvl_int = lineedit_listen_interval->text().toInt(); - /* Form Frame control (flags) */ - frame_ctrl1 = mac.bits_to_byte( lineedit_frame_9->text(), lineedit_frame_10->text(), lineedit_frame_11->text(), lineedit_frame_12->text(), lineedit_frame_13->text(), lineedit_frame_14->text(), lineedit_frame_15->text(), lineedit_frame_16->text() ); + /* validating lineedit values */ + /* validating NAV */ - uint16_t i; - for ( i=0;i<2;i++ ) - duration_char[i] = * ((( char* ) &duration_id ) +i ); + if (duration_id < 65535 && lineedit_NAV->text() != "") + { + if (frag_no < 16 && lineedit_frag_no->text() != "") + { + if (seq_no < 4096 && lineedit_seq_no->text() != "") + { + /* validating capability info field values */ + if (lineedit_cap_info_1->text().toInt() <= 1 && lineedit_cap_info_1->text() != "" && + lineedit_cap_info_2->text().toInt() <= 1 && lineedit_cap_info_2->text() != "" && + lineedit_cap_info_3->text().toInt() <= 1 && lineedit_cap_info_3->text() != "" && + lineedit_cap_info_4->text().toInt() <= 1 && lineedit_cap_info_4->text() != "" && + lineedit_cap_info_5->text().toInt() <= 1 && lineedit_cap_info_5->text() != "" && + lineedit_cap_info_6->text().toInt() <= 1 && lineedit_cap_info_6->text() != "" && + lineedit_cap_info_7->text().toInt() <= 1 && lineedit_cap_info_7->text() != "" && + lineedit_cap_info_8->text().toInt() <= 1 && lineedit_cap_info_8->text() != "" && + lineedit_cap_info_9->text().toInt() <= 1 && lineedit_cap_info_9->text() != "" && + lineedit_cap_info_10->text().toInt() <= 1 && lineedit_cap_info_10->text() != "" && + lineedit_cap_info_11->text().toInt() <= 1 && lineedit_cap_info_11->text() != "" && + lineedit_cap_info_12->text().toInt() <= 1 && lineedit_cap_info_12->text() != "" && + lineedit_cap_info_13->text().toInt() <= 1 && lineedit_cap_info_13->text() != "" && + lineedit_cap_info_14->text().toInt() <= 1 && lineedit_cap_info_14->text() != "" && + lineedit_cap_info_15->text().toInt() <= 1 && lineedit_cap_info_15->text() != "" && + lineedit_cap_info_16->text().toInt() <= 1 && lineedit_cap_info_16->text() != "") + { + /* validating Listen Interval field */ + if (lineedit_listen_interval->text() != "" && listen_intrvl_int > 0 && listen_intrvl_int < 2001) + { + uint8_t frame_ctrl[2], duration_char[2], listen_intrvl_char[2]; + uint8_t addr1[6], addr2[6], addr3[6]; - /* adress fields initializing to local variable */ - uint8_t addr1_1 = ( unsigned char ) lineedit_address1_1->text().toInt( &ok ,16 ); - uint8_t addr1_2 = ( unsigned char ) lineedit_address1_2->text().toInt( &ok ,16 ); - uint8_t addr1_3 = ( unsigned char ) lineedit_address1_3->text().toInt( &ok ,16 ); - uint8_t addr1_4 = ( unsigned char ) lineedit_address1_4->text().toInt( &ok ,16 ); - uint8_t addr1_5 = ( unsigned char ) lineedit_address1_5->text().toInt( &ok ,16 ); - uint8_t addr1_6 = ( unsigned char ) lineedit_address1_6->text().toInt( &ok ,16 ); - uint8_t addr2_1 = ( unsigned char ) lineedit_address2_1->text().toInt( &ok ,16 ); - uint8_t addr2_2 = ( unsigned char ) lineedit_address2_2->text().toInt( &ok ,16 ); - uint8_t addr2_3 = ( unsigned char ) lineedit_address2_3->text().toInt( &ok ,16 ); - uint8_t addr2_4 = ( unsigned char ) lineedit_address2_4->text().toInt( &ok ,16 ); - uint8_t addr2_5 = ( unsigned char ) lineedit_address2_5->text().toInt( &ok ,16 ); - uint8_t addr2_6 = ( unsigned char ) lineedit_address2_6->text().toInt( &ok ,16 ); - uint8_t addr3_1 = ( unsigned char ) lineedit_address3_1->text().toInt( &ok ,16 ); - uint8_t addr3_2 = ( unsigned char ) lineedit_address3_2->text().toInt( &ok ,16 ); - uint8_t addr3_3 = ( unsigned char ) lineedit_address3_3->text().toInt( &ok ,16 ); - uint8_t addr3_4 = ( unsigned char ) lineedit_address3_4->text().toInt( &ok ,16 ); - uint8_t addr3_5 = ( unsigned char ) lineedit_address3_5->text().toInt( &ok ,16 ); - uint8_t addr3_6 = ( unsigned char ) lineedit_address3_6->text().toInt( &ok ,16 ); + /* Form Frame control */ + frame_ctrl[0] = mac.bits_to_byte (lineedit_frame_1->text(), lineedit_frame_2->text(), lineedit_frame_3->text(), lineedit_frame_4->text(), lineedit_frame_5->text(), lineedit_frame_6->text(), lineedit_frame_7->text(), lineedit_frame_8->text()); - uint16_t seq_ctrl_int=0X00; - uint8_t seq_ctrl_char[2]; + /* Form Frame control (flags) */ + frame_ctrl[1] = mac.bits_to_byte (lineedit_frame_9->text(), lineedit_frame_10->text(), lineedit_frame_11->text(), lineedit_frame_12->text(), lineedit_frame_13->text(), lineedit_frame_14->text(), lineedit_frame_15->text(), lineedit_frame_16->text()); - seq_ctrl_int = seq_ctrl_int | seq_no; - seq_ctrl_int = seq_ctrl_int << 4; - seq_ctrl_int = seq_ctrl_int | frag_no; + uint16_t i; - for ( i=0;i<2;i++ ) - seq_ctrl_char[i] = * ((( char* ) &seq_ctrl_int ) +i ); + for (i = 0;i < 2;i++) + duration_char[i] = * ( ( (char*) & duration_id) + i); - /* cap_info fields to bytes */ - uint8_t cap_info1=0X00, cap_info2=0X00; + /* adress fields initializing to local variable */ + addr1[0] = (unsigned char) lineedit_address1_1->text().toInt (&ok , 16); + addr1[1] = (unsigned char) lineedit_address1_2->text().toInt (&ok , 16); + addr1[2] = (unsigned char) lineedit_address1_3->text().toInt (&ok , 16); + addr1[3] = (unsigned char) lineedit_address1_4->text().toInt (&ok , 16); + addr1[4] = (unsigned char) lineedit_address1_5->text().toInt (&ok , 16); + addr1[5] = (unsigned char) lineedit_address1_6->text().toInt (&ok , 16); + addr2[0] = (unsigned char) lineedit_address2_1->text().toInt (&ok , 16); + addr2[1] = (unsigned char) lineedit_address2_2->text().toInt (&ok , 16); + addr2[2] = (unsigned char) lineedit_address2_3->text().toInt (&ok , 16); + addr2[3] = (unsigned char) lineedit_address2_4->text().toInt (&ok , 16); + addr2[4] = (unsigned char) lineedit_address2_5->text().toInt (&ok , 16); + addr2[5] = (unsigned char) lineedit_address2_6->text().toInt (&ok , 16); + addr3[0] = (unsigned char) lineedit_address3_1->text().toInt (&ok , 16); + addr3[1] = (unsigned char) lineedit_address3_2->text().toInt (&ok , 16); + addr3[2] = (unsigned char) lineedit_address3_3->text().toInt (&ok , 16); + addr3[3] = (unsigned char) lineedit_address3_4->text().toInt (&ok , 16); + addr3[4] = (unsigned char) lineedit_address3_5->text().toInt (&ok , 16); + addr3[5] = (unsigned char) lineedit_address3_6->text().toInt (&ok , 16); - cap_info1 = mac.bits_to_byte( lineedit_cap_info_1->text(), lineedit_cap_info_2->text(), lineedit_cap_info_3->text(), lineedit_cap_info_4->text(), lineedit_cap_info_5->text(), lineedit_cap_info_6->text(), lineedit_cap_info_7->text(), lineedit_cap_info_8->text() ); - cap_info2 = mac.bits_to_byte( lineedit_cap_info_9->text(), lineedit_cap_info_10->text(), lineedit_cap_info_11->text(), lineedit_cap_info_12->text(), lineedit_cap_info_13->text(), lineedit_cap_info_14->text(), lineedit_cap_info_15->text(), lineedit_cap_info_16->text() ); + uint16_t seq_ctrl_int = 0X00; + uint8_t seq_ctrl_char[2]; - /* Listen Interval operation */ - for ( i=0;i<2;i++ ) - listen_intrvl_char[i] = * ((( char* ) &listen_intrvl_int ) +i ); + seq_ctrl_int = seq_ctrl_int | seq_no; + seq_ctrl_int = seq_ctrl_int << 4; + seq_ctrl_int = seq_ctrl_int | frag_no; - /* SSID operation */ - uint8_t ssid_len = lineedit_ssid->text().length(); - const char *str_ascii=lineedit_ssid->text(); - uint8_t element_id=0X00; + for (i = 0;i < 2;i++) + seq_ctrl_char[i] = * ( ( (char*) & seq_ctrl_int) + i); - /* suported rate , Extended supported rate operation */ - uint8_t index=0, tmp_val_char[10], srate_eleid=0X01, hexrate; + /* cap_info fields to bytes */ + uint8_t cap_info[2]; - if ( checkbox_srate_1->isChecked()==1 ) - { - hexrate = mac.map_rate( 1,checkbox_mand_1->isChecked() ); - tmp_val_char[index++] = * ((( char* ) &hexrate ) +0 ); - } + cap_info[0] = mac.bits_to_byte (lineedit_cap_info_1->text(), lineedit_cap_info_2->text(), lineedit_cap_info_3->text(), lineedit_cap_info_4->text(), lineedit_cap_info_5->text(), lineedit_cap_info_6->text(), lineedit_cap_info_7->text(), lineedit_cap_info_8->text()); + cap_info[1] = mac.bits_to_byte (lineedit_cap_info_9->text(), lineedit_cap_info_10->text(), lineedit_cap_info_11->text(), lineedit_cap_info_12->text(), lineedit_cap_info_13->text(), lineedit_cap_info_14->text(), lineedit_cap_info_15->text(), lineedit_cap_info_16->text()); - if ( checkbox_srate_2->isChecked()==1 ) - { - hexrate = mac.map_rate( 2,checkbox_mand_2->isChecked() ); - tmp_val_char[index++] = * (( char* ) &hexrate ) ; - } - if ( checkbox_srate_3->isChecked()==1 ) - { - hexrate = mac.map_rate( 5.5,checkbox_mand_3->isChecked() ); - tmp_val_char[index++] = * (( char* ) &hexrate ) ; - } - if ( checkbox_srate_4->isChecked()==1 ) - { - hexrate = mac.map_rate( 11,checkbox_mand_4->isChecked() ); - tmp_val_char[index++] = * (( char* ) &hexrate ) ; - } - if ( checkbox_srate_5->isChecked()==1 ) - { - hexrate = mac.map_rate( 6,checkbox_mand_5->isChecked() ); - tmp_val_char[index++] = * (( char* ) &hexrate ) ; - } - if ( checkbox_srate_6->isChecked()==1 ) - { - hexrate = mac.map_rate( 9,checkbox_mand_6->isChecked() ); - tmp_val_char[index++] = * (( char* ) &hexrate ) ; - } - if ( checkbox_srate_7->isChecked()==1 ) - { - hexrate = mac.map_rate( 12,checkbox_mand_7->isChecked() ); - tmp_val_char[index++] = * (( char* ) &hexrate ) ; - } - if ( checkbox_srate_8->isChecked()==1 ) - { - hexrate = mac.map_rate( 18,checkbox_mand_8->isChecked() ); - tmp_val_char[index++] = * (( char* ) &hexrate ) ; - } + /* Listen Interval operation */ + for (i = 0;i < 2;i++) + listen_intrvl_char[i] = * ( ( (char*) & listen_intrvl_int) + i); - uint8_t len_srate_arr=index; - uint8_t index1=0, tmp_val_esrchar[4], esrate_eleid=0X32; + /* SSID operation */ + uint8_t ssid_len = lineedit_ssid->text().length(); + const char *str_ascii = lineedit_ssid->text(); + uint8_t element_id = 0X00; - if ( checkbox_esrate_1->isChecked()==1 ) - { - hexrate = mac.map_rate( 24,checkbox_mand_9->isChecked() ); - tmp_val_esrchar[index1++] = * (( char* ) &hexrate ); - } - if ( checkbox_esrate_2->isChecked()==1 ) - { - hexrate = mac.map_rate( 36,checkbox_mand_10->isChecked() ); - tmp_val_esrchar[index1++] = * (( char* ) &hexrate ) ; - } - if ( checkbox_esrate_3->isChecked()==1 ) - { - hexrate = mac.map_rate( 48,checkbox_mand_11->isChecked() ); - tmp_val_esrchar[index1++] = * (( char* ) &hexrate ); - } - if ( checkbox_esrate_4->isChecked()==1 ) - { - hexrate = mac.map_rate( 54,checkbox_mand_12->isChecked() ); - tmp_val_esrchar[index1++] = * (( char* ) &hexrate ); - } + /* suported rate , Extended supported rate operation */ + uint8_t index = 0, tmp_val_char[10], srate_eleid = 0X01, hexrate; - uint8_t len_esrate_arr=index1; + if (checkbox_srate_1->isChecked() == 1) + { + hexrate = mac.map_rate (1, checkbox_mand_1->isChecked()); + tmp_val_char[index++] = * ( ( (char*) & hexrate) + 0); + } - /* values initializing in a dynamic array */ - uint8_t control_header_arr1[] = - { - frame_ctrl0, - frame_ctrl1, - duration_char[0], - duration_char[1], - addr1_1, - addr1_2, - addr1_3, - addr1_4, - addr1_5, - addr1_6, - addr2_1, - addr2_2, - addr2_3, - addr2_4, - addr2_5, - addr2_6, - addr3_1, - addr3_2, - addr3_3, - addr3_4, - addr3_5, - addr3_6, - seq_ctrl_char[0], - seq_ctrl_char[1], - cap_info1, - cap_info2, - listen_intrvl_char[0], - listen_intrvl_char[1], - element_id, - ssid_len - }; + if (checkbox_srate_2->isChecked() == 1) + { + hexrate = mac.map_rate (2, checkbox_mand_2->isChecked()); + tmp_val_char[index++] = * ( (char*) & hexrate) ; + } - uint16_t size_ctrl_hdr_arr1 = sizeof( control_header_arr1 ) / sizeof( unsigned char ); - unsigned char *control_header_arr; + if (checkbox_srate_3->isChecked() == 1) + { + hexrate = mac.map_rate (5.5, checkbox_mand_3->isChecked()); + tmp_val_char[index++] = * ( (char*) & hexrate) ; + } - control_header_arr=( unsigned char* ) malloc( size_ctrl_hdr_arr1* ( sizeof( unsigned char ) ) ); - if ( control_header_arr == NULL ) - { - printf( "Unable to allocate memory...\n" ); - exit( 1 ); - } + if (checkbox_srate_4->isChecked() == 1) + { + hexrate = mac.map_rate (11, checkbox_mand_4->isChecked()); + tmp_val_char[index++] = * ( (char*) & hexrate) ; + } - for ( i =0;i < size_ctrl_hdr_arr1; i++ ) - control_header_arr[i]=control_header_arr1[i]; + if (checkbox_srate_5->isChecked() == 1) + { + hexrate = mac.map_rate (6, checkbox_mand_5->isChecked()); + tmp_val_char[index++] = * ( (char*) & hexrate) ; + } - uint16_t temp_sum = size_ctrl_hdr_arr1 + ssid_len; + if (checkbox_srate_6->isChecked() == 1) + { + hexrate = mac.map_rate (9, checkbox_mand_6->isChecked()); + tmp_val_char[index++] = * ( (char*) & hexrate) ; + } - /* appending ssid */ - if ( ssid_len!=0 ) - { - /* reallocation of control_header_arr array */ - control_header_arr= ( unsigned char* ) realloc( control_header_arr, temp_sum * sizeof( unsigned char ) ); - if ( control_header_arr == NULL ) - { - printf( "Unable to allocate memory...\n" ); - exit( 1 ); - } - for ( uint16_t r=0;r<ssid_len;r++ ) - control_header_arr[size_ctrl_hdr_arr1+r]=str_ascii[r]; - } + if (checkbox_srate_7->isChecked() == 1) + { + hexrate = mac.map_rate (12, checkbox_mand_7->isChecked()); + tmp_val_char[index++] = * ( (char*) & hexrate) ; + } - uint16_t temp_sum1, temp_sum2; + if (checkbox_srate_8->isChecked() == 1) + { + hexrate = mac.map_rate (18, checkbox_mand_8->isChecked()); + tmp_val_char[index++] = * ( (char*) & hexrate) ; + } - /* appending supported rate and extended supported rate to array */ + uint8_t len_srate_arr = index; + uint8_t index1 = 0, tmp_val_esrchar[4], esrate_eleid = 0X32; - if ( checkbox_srate_1->isChecked()==0 && - checkbox_srate_2->isChecked()==0 && - checkbox_srate_3->isChecked()==0 && - checkbox_srate_4->isChecked()==0 && - checkbox_srate_5->isChecked()==0 && - checkbox_srate_6->isChecked()==0 && - checkbox_srate_7->isChecked()==0 && - checkbox_srate_8->isChecked()==0 && - checkbox_srate_1->isChecked()==0 ) - { - temp_sum1=temp_sum; - } - else - { - temp_sum1=( temp_sum + 2 + len_srate_arr ); - //reallocation of control_header_arr array - control_header_arr= ( unsigned char* ) realloc( control_header_arr, temp_sum1 * sizeof( unsigned char ) ); - if ( control_header_arr == NULL ) - { - printf( "Unable to allocate memory...\n" ); - exit( 1 ); - } + if (checkbox_esrate_1->isChecked() == 1) + { + hexrate = mac.map_rate (24, checkbox_mand_9->isChecked()); + tmp_val_esrchar[index1++] = * ( (char*) & hexrate); + } - control_header_arr[temp_sum]=srate_eleid; - control_header_arr[temp_sum+1]=len_srate_arr; + if (checkbox_esrate_2->isChecked() == 1) + { + hexrate = mac.map_rate (36, checkbox_mand_10->isChecked()); + tmp_val_esrchar[index1++] = * ( (char*) & hexrate) ; + } - for ( int r=0;r<len_srate_arr;r++ ) - control_header_arr[temp_sum+2+r]=tmp_val_char[r]; - } + if (checkbox_esrate_3->isChecked() == 1) + { + hexrate = mac.map_rate (48, checkbox_mand_11->isChecked()); + tmp_val_esrchar[index1++] = * ( (char*) & hexrate); + } - if ( checkbox_esrate_1->isChecked()==0 && - checkbox_esrate_2->isChecked()==0 && - checkbox_esrate_3->isChecked()==0 && - checkbox_esrate_4->isChecked()==0 ) + if (checkbox_esrate_4->isChecked() == 1) + { + hexrate = mac.map_rate (54, checkbox_mand_12->isChecked()); + tmp_val_esrchar[index1++] = * ( (char*) & hexrate); + } + + uint8_t len_esrate_arr = index1; + + // copy frame control field + memcpy (frame, &frame_ctrl, sizeof(frame_ctrl)); + frame += sizeof(frame_ctrl); + + memcpy (frame, &duration_char, sizeof(duration_char)); + frame += sizeof(duration_char); + + memcpy (frame, &addr1, MAC_ADDRESS_LEN); + frame += MAC_ADDRESS_LEN; + + memcpy (frame, &addr2, MAC_ADDRESS_LEN); + frame += MAC_ADDRESS_LEN; + + memcpy (frame, &addr3, MAC_ADDRESS_LEN); + frame += MAC_ADDRESS_LEN; + + memcpy (frame, &seq_ctrl_char, sizeof(seq_ctrl_char)); + frame += sizeof(seq_ctrl_char); + + memcpy (frame, &cap_info, sizeof(cap_info)); + frame += sizeof(cap_info); + + memcpy (frame, &listen_intrvl_char, sizeof(listen_intrvl_char)); + frame += sizeof(listen_intrvl_char); + + // append SSID + *frame++ = element_id; + *frame++ = ssid_len; + + if (ssid_len != 0) + { + memcpy (frame, str_ascii, ssid_len); + frame += ssid_len; + } + + // Append supported rates + if (len_srate_arr > 0) { - temp_sum2=temp_sum1; - } - else + *frame++ = srate_eleid; + *frame++ = len_srate_arr; + memcpy (frame, &tmp_val_char, len_srate_arr); + frame += len_srate_arr; + } + + // append extended support rates + if (len_esrate_arr > 0) { - temp_sum2=( temp_sum1 + 2 + len_esrate_arr ); - control_header_arr= ( unsigned char* ) realloc( control_header_arr, temp_sum2 * sizeof( unsigned char ) ); + *frame++ = esrate_eleid; + *frame++ = len_esrate_arr; + memcpy (frame, &tmp_val_esrchar, len_esrate_arr); + frame += len_esrate_arr; + } - control_header_arr[temp_sum1] = esrate_eleid; - control_header_arr[temp_sum1+1] = len_esrate_arr; - - for ( int r=0;r<len_esrate_arr;r++ ) - control_header_arr[temp_sum1+2+r]=tmp_val_esrchar[r]; - } - func_assoreq_call( control_header_arr,temp_sum2 ); - } - ... [truncated message content] |