~vcs-imports/busybox/main

« back to all changes in this revision

Viewing changes to networking/arping.c

  • Committer: vda
  • Date: 2009-04-21 23:48:38 UTC
  • Revision ID: vcs-imports@canonical.com-20090421234838-00iy8q2ind54zttx
*: remove check for errors on getsockaddr in cases we know they can't happen
libbb: make get_sock_lsa use only one getsockaddr syscall, not two

function                                             old     new   delta
get_sock_lsa                                          72     101     +29
do_iplink                                           1151    1137     -14
arping_main                                         1585    1569     -16
dolisten                                             789     755     -34
xrtnl_open                                           161      94     -67

Show diffs side-by-side

added added

removed removed

Lines of Context:
348
348
                        if (setsockopt(probe_fd, SOL_SOCKET, SO_DONTROUTE, &const_int_1, sizeof(const_int_1)) == -1)
349
349
                                bb_perror_msg("setsockopt(SO_DONTROUTE)");
350
350
                        xconnect(probe_fd, (struct sockaddr *) &saddr, sizeof(saddr));
351
 
                        if (getsockname(probe_fd, (struct sockaddr *) &saddr, &alen) == -1) {
352
 
                                bb_perror_msg_and_die("getsockname");
353
 
                        }
 
351
                        getsockname(probe_fd, (struct sockaddr *) &saddr, &alen);
 
352
                        //never happens:
 
353
                        //if (getsockname(probe_fd, (struct sockaddr *) &saddr, &alen) == -1)
 
354
                        //      bb_perror_msg_and_die("getsockname");
354
355
                        if (saddr.sin_family != AF_INET)
355
356
                                bb_error_msg_and_die("no IP address configured");
356
357
                        src = saddr.sin_addr;
365
366
 
366
367
        {
367
368
                socklen_t alen = sizeof(me);
368
 
 
369
 
                if (getsockname(sock_fd, (struct sockaddr *) &me, &alen) == -1) {
370
 
                        bb_perror_msg_and_die("getsockname");
371
 
                }
 
369
                getsockname(sock_fd, (struct sockaddr *) &me, &alen);
 
370
                //never happens:
 
371
                //if (getsockname(sock_fd, (struct sockaddr *) &me, &alen) == -1)
 
372
                //      bb_perror_msg_and_die("getsockname");
372
373
        }
373
374
        if (me.sll_halen == 0) {
374
375
                bb_error_msg(err_str, "is not ARPable (no ll address)");