Ignore:
Timestamp:
2015-04-23T23:40:14Z (10 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
dcba819
Parents:
09044cb
Message:

pre-merge coding style cleanup and code review

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/wifi_supplicant/wifi_supplicant.c

    r09044cb r8a64320e  
    4242#include <loc.h>
    4343
    44 #define NAME "wifi_supplicant"
    45 
    46 #define enum_name(name_arr, i) ((i < 0) ? "NA" : name_arr[i])
     44#define NAME  "wifi_supplicant"
     45
     46#define enum_name(name_arr, i) \
     47        ((i < 0) ? "NA" : name_arr[i])
    4748
    4849static const char* ieee80211_security_type_strs[] = {
     
    6566        printf("\tlist - list wifi devices in <index>: <name> format\n");
    6667        printf("\tscan <index> [-n] - output scan results (force scan "
    67                 "immediately)\n");
     68            "immediately)\n");
    6869        printf("\tconnect <index> <ssid_prefix> [<password>] - connect to "
    69                 "network\n");
     70            "network\n");
    7071        printf("\tdisconnect <index> - disconnect from network\n");
    7172}
    7273
    73 static char *nic_addr_format(nic_address_t *a)
    74 {
    75         int rc;
    76         char *s;
    77 
    78         rc = asprintf(&s, "%02x:%02x:%02x:%02x:%02x:%02x",
    79             a->address[0], a->address[1], a->address[2],
    80             a->address[3], a->address[4], a->address[5]);
    81 
     74static char *nic_addr_format(nic_address_t *addr)
     75{
     76        char *str;
     77        int rc = asprintf(&str, "%02x:%02x:%02x:%02x:%02x:%02x",
     78            addr->address[0], addr->address[1], addr->address[2],
     79            addr->address[3], addr->address[4], addr->address[5]);
     80       
    8281        if (rc < 0)
    8382                return NULL;
    84 
    85         return s;
     83       
     84        return str;
    8685}
    8786
     
    8988{
    9089        category_id_t wifi_cat;
    91 
    9290        int rc = loc_category_get_id("ieee80211", &wifi_cat, 0);
    9391        if (rc != EOK) {
     
    9593                return rc;
    9694        }
    97 
     95       
    9896        rc = loc_category_get_svcs(wifi_cat, wifis, count);
    9997        if (rc != EOK) {
     
    107105static async_sess_t *get_wifi_by_index(size_t i)
    108106{
    109         int rc;
     107        service_id_t *wifis = NULL;
    110108        size_t count;
    111         service_id_t *wifis = NULL;
    112 
    113         rc = get_wifi_list(&wifis, &count);
     109       
     110        int rc = get_wifi_list(&wifis, &count);
    114111        if (rc != EOK) {
    115112                printf("Error fetching wifi list.\n");
     
    117114        }
    118115       
    119         if(i >= count) {
     116        if (i >= count) {
    120117                printf("Invalid wifi index.\n");
    121118                free(wifis);
    122119                return NULL;
    123120        }
    124 
    125         async_sess_t *sess = 
    126                 loc_service_connect(EXCHANGE_SERIALIZE, wifis[i], 0);
     121       
     122        async_sess_t *sess =
     123            loc_service_connect(EXCHANGE_SERIALIZE, wifis[i], 0);
    127124        if (sess == NULL) {
    128125                printf("Error connecting to service.\n");
     
    130127                return NULL;
    131128        }
    132 
     129       
    133130        return sess;
    134131}
     
    138135        service_id_t *wifis = NULL;
    139136        size_t count;
    140         char *svc_name;
    141         int rc;
    142 
    143         rc = get_wifi_list(&wifis, &count);
     137       
     138        int rc = get_wifi_list(&wifis, &count);
    144139        if (rc != EOK) {
    145140                printf("Error fetching wifi list.\n");
    146141                return EINVAL;
    147142        }
    148 
     143       
    149144        printf("[Index]: [Service Name]\n");
    150145        for (size_t i = 0; i < count; i++) {
     146                char *svc_name;
    151147                rc = loc_service_get_name(wifis[i], &svc_name);
    152148                if (rc != EOK) {
     
    157153               
    158154                printf("%zu: %s\n", i, svc_name);
    159 
     155               
    160156                free(svc_name);
    161157        }
    162 
     158       
    163159        return EOK;
    164160}
     
    171167        if (sess == NULL) {
    172168                printf("Specified WIFI doesn't exist or cannot connect to "
    173                         "it.\n");
     169                    "it.\n");
    174170                return EINVAL;
    175171        }
     
    177173        int rc = ieee80211_disconnect(sess);
    178174        if(rc != EOK) {
    179                 if(rc == EREFUSED) {
    180                         printf("Device is not ready yet.\n");                   
    181                 } else {
     175                if (rc == EREFUSED)
     176                        printf("Device is not ready yet.\n");
     177                else
    182178                        printf("Error when disconnecting device. "
    183                                 "Error: %d\n", rc);
    184                 }
     179                            "Error: %d\n", rc);
    185180               
    186181                return rc;
     
    189184        rc = ieee80211_connect(sess, ssid_start, password);
    190185        if(rc != EOK) {
    191                 if(rc == EREFUSED) {
    192                         printf("Device is not ready yet.\n");                   
    193                 } else if(rc == ETIMEOUT) {
     186                if (rc == EREFUSED)
     187                        printf("Device is not ready yet.\n");
     188                else if (rc == ETIMEOUT)
    194189                        printf("Timeout when authenticating to network.\n");
    195                 } else if(rc == ENOENT) {
     190                else if (rc == ENOENT)
    196191                        printf("Given SSID not in scan results.\n");
    197                 } else {
     192                else
    198193                        printf("Error when connecting to network. "
    199                                 "Error: %d\n", rc);
    200                 }
    201                
    202                 return rc;
    203         }
    204        
    205         // TODO: Wait for DHCP address ?
     194                            "Error: %d\n", rc);
     195               
     196                return rc;
     197        }
     198       
     199        // TODO: Wait for DHCP address?
    206200       
    207201        printf("Successfully connected to network!\n");
     
    215209        if (sess == NULL) {
    216210                printf("Specified WIFI doesn't exist or cannot connect to "
    217                         "it.\n");
     211                    "it.\n");
    218212                return EINVAL;
    219213        }
    220214       
    221215        int rc = ieee80211_disconnect(sess);
    222         if(rc != EOK) {
    223                 if(rc == EREFUSED) {
     216        if (rc != EOK) {
     217                if (rc == EREFUSED)
    224218                        printf("Device is not ready yet.\n");
    225                 } else if(rc == EINVAL) {
     219                else if (rc == EINVAL)
    226220                        printf("Not connected to any WiFi network.\n");
    227                 } else {
     221                else
    228222                        printf("Error when disconnecting from network. "
    229                                 "Error: %d\n", rc);
    230                 }
     223                            "Error: %d\n", rc);
     224               
    231225                return rc;
    232226        }
     
    239233static int wifi_scan(uint32_t index, bool now)
    240234{
    241         ieee80211_scan_results_t scan_results;
    242        
    243235        async_sess_t *sess = get_wifi_by_index(index);
    244236        if (sess == NULL) {
    245237                printf("Specified WIFI doesn't exist or cannot connect to "
    246                         "it.\n");
     238                    "it.\n");
    247239                return EINVAL;
    248240        }
    249241       
     242        ieee80211_scan_results_t scan_results;
    250243        int rc = ieee80211_get_scan_results(sess, &scan_results, now);
    251         if(rc != EOK) {
    252                 if(rc == EREFUSED) {
     244        if (rc != EOK) {
     245                if (rc == EREFUSED)
    253246                        printf("Device is not ready yet.\n");
    254                 } else {
     247                else
    255248                        printf("Failed to fetch scan results. Error: %d\n", rc);
    256                 }
    257                
    258                 return rc;
    259         }
    260        
    261         if(scan_results.length == 0)
     249               
     250                return rc;
     251        }
     252       
     253        if (scan_results.length == 0)
    262254                return EOK;
    263255       
    264         printf("%16.16s %17s %4s %5s %5s %7s %7s\n", 
    265                 "SSID", "MAC", "CHAN", "TYPE", "AUTH", "UNI-ALG", "GRP-ALG");
    266        
    267         for(int i = 0; i < scan_results.length; i++) {
     256        printf("%16.16s %17s %4s %5s %5s %7s %7s\n",
     257            "SSID", "MAC", "CHAN", "TYPE", "AUTH", "UNI-ALG", "GRP-ALG");
     258       
     259        for (uint8_t i = 0; i < scan_results.length; i++) {
    268260                ieee80211_scan_result_t result = scan_results.results[i];
    269261               
    270                 printf("%16.16s %17s %4d %5s %5s %7s %7s\n",
    271                         result.ssid,
    272                         nic_addr_format(&result.bssid),
    273                         result.channel,
    274                         enum_name(ieee80211_security_type_strs,
    275                                 result.security.type),
    276                         enum_name(ieee80211_security_auth_strs,
    277                                 result.security.auth),
    278                         enum_name(ieee80211_security_alg_strs,
    279                                 result.security.pair_alg),
    280                         enum_name(ieee80211_security_alg_strs,
    281                                 result.security.group_alg)
    282                 );
     262                printf("%16.16s %17s %4d %5s %5s %7s %7s\n",
     263                    result.ssid, nic_addr_format(&result.bssid),
     264                    result.channel,
     265                    enum_name(ieee80211_security_type_strs, result.security.type),
     266                    enum_name(ieee80211_security_auth_strs, result.security.auth),
     267                    enum_name(ieee80211_security_alg_strs, result.security.pair_alg),
     268                    enum_name(ieee80211_security_alg_strs, result.security.group_alg));
    283269        }
    284270       
     
    288274int main(int argc, char *argv[])
    289275{
    290         int rc;
    291         uint32_t index;
    292        
    293         rc = inetcfg_init();
    294         if (rc != EOK) {
    295                 printf(NAME ": Failed connecting to inetcfg service (%d).\n",
    296                     rc);
     276        int rc = inetcfg_init();
     277        if (rc != EOK) {
     278                printf("%s: Failed connecting to inetcfg service (%d).\n",
     279                    NAME, rc);
    297280                return 1;
    298281        }
     
    300283        rc = dhcp_init();
    301284        if (rc != EOK) {
    302                 printf(NAME ": Failed connecting to dhcp service (%d).\n", rc);
     285                printf("%s: Failed connecting to dhcp service (%d).\n",
     286                    NAME, rc);
    303287                return 1;
    304288        }
    305289       
    306         if(argc == 2) {
    307                 if(!str_cmp(argv[1], "list")) {
     290        if (argc == 2) {
     291                if (!str_cmp(argv[1], "list"))
    308292                        return wifi_list();
    309                 }
    310         } else if(argc > 2) {
     293        } else if (argc > 2) {
     294                uint32_t index;
    311295                rc = str_uint32_t(argv[2], NULL, 10, false, &index);
    312                 if(rc != EOK) {
    313                         printf(NAME ": Invalid argument.\n");
     296                if (rc != EOK) {
     297                        printf("%s: Invalid argument.\n", NAME);
    314298                        print_syntax();
    315299                        return EINVAL;
    316300                }
    317                 if(!str_cmp(argv[1], "scan")) {
     301               
     302                if (!str_cmp(argv[1], "scan")) {
    318303                        bool now = false;
    319                         if(argc > 3)
    320                                 if(!str_cmp(argv[3], "-n"))
     304                        if (argc > 3)
     305                                if (!str_cmp(argv[3], "-n"))
    321306                                        now = true;
     307                       
    322308                        return wifi_scan(index, now);
    323                 } else if(!str_cmp(argv[1], "connect")) {
     309                } else if (!str_cmp(argv[1], "connect")) {
    324310                        char *pass = NULL;
    325                         if(argc > 3) {
    326                                 if(argc > 4)
     311                        if (argc > 3) {
     312                                if (argc > 4)
    327313                                        pass = argv[4];
     314                               
    328315                                return wifi_connect(index, argv[3], pass);
    329                         } 
    330                 } else if(!str_cmp(argv[1], "disconnect")) {
     316                        }
     317                } else if (!str_cmp(argv[1], "disconnect"))
    331318                        return wifi_disconnect(index);
    332                 }
    333319        }
    334320       
Note: See TracChangeset for help on using the changeset viewer.