Changeset 3e66428 in mainline for uspace/app


Ignore:
Timestamp:
2013-06-20T14:10:51Z (13 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
19a4f73
Parents:
b49d872
Message:

new network address infrastructure (towards IPv6 support)

Location:
uspace/app
Files:
7 edited

Legend:

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

    rb49d872 r3e66428  
    3636
    3737#include <errno.h>
    38 #include <inet/addr.h>
     38#include <inet/addr2.h>
    3939#include <inet/dnsr.h>
    4040#include <ipc/services.h>
     
    4949static void print_syntax(void)
    5050{
    51         printf("syntax:\n");
    52         printf("\t" NAME " set-ns <server-addr>\n");
    53         printf("\t" NAME " unset-ns\n");
     51        printf("Syntax:\n");
     52        printf("\t%s get-ns\n", NAME);
     53        printf("\t%s set-ns <server-addr>\n", NAME);
     54        printf("\t%s unset-ns\n", NAME);
    5455}
    5556
    5657static int dnscfg_set_ns(int argc, char *argv[])
    5758{
    58         char *srv_addr;
    59         inet_addr_t addr;
    60         int rc;
    61 
    6259        if (argc < 1) {
    63                 printf(NAME ": Missing arguments.\n");
     60                printf("%s: Missing arguments.\n", NAME);
    6461                print_syntax();
    6562                return EINVAL;
    6663        }
    67 
     64       
    6865        if (argc > 1) {
    69                 printf(NAME ": Too many arguments.\n");
     66                printf("%s: Too many arguments.\n", NAME);
    7067                print_syntax();
    7168                return EINVAL;
    7269        }
    73 
    74         srv_addr = argv[0];
    75 
    76         rc = inet_addr_parse(srv_addr, &addr);
     70       
     71        char *srv_addr  = argv[0];
     72       
     73        inet2_addr_t addr;
     74        int rc = inet2_addr_parse(srv_addr, &addr);
     75       
    7776        if (rc != EOK) {
    78                 printf(NAME ": Invalid address format '%s'.\n", srv_addr);
    79                 return EINVAL;
     77                printf("%s: Invalid address format '%s'.\n", NAME, srv_addr);
     78                return rc;
    8079        }
    81 
     80       
    8281        rc = dnsr_set_srvaddr(&addr);
    8382        if (rc != EOK) {
    84                 printf(NAME ": Failed setting server address '%s' (%s)\n",
    85                     srv_addr, str_error(rc));
    86                 return EIO;
     83                printf("%s: Failed setting nameserver address '%s' (%s)\n",
     84                    NAME, srv_addr, str_error(rc));
     85                return rc;
    8786        }
    88 
     87       
    8988        return EOK;
    9089}
    9190
    92 static int dnscfg_unset_ns(int argc, char *argv[])
     91static int dnscfg_unset_ns(void)
    9392{
    94         inet_addr_t addr;
    95         int rc;
    96 
    97         if (argc > 0) {
    98                 printf(NAME ": Too many arguments.\n");
    99                 print_syntax();
    100                 return EINVAL;
     93        inet2_addr_t addr;
     94        inet2_addr_empty(&addr);
     95       
     96        int rc = dnsr_set_srvaddr(&addr);
     97        if (rc != EOK) {
     98                printf("%s: Failed unsetting server address (%s)\n",
     99                    NAME, str_error(rc));
     100                return rc;
    101101        }
    102 
    103         addr.ipv4 = 0;
    104         rc = dnsr_set_srvaddr(&addr);
    105         if (rc != EOK) {
    106                 printf(NAME ": Failed unsetting server address (%s)\n",
    107                     str_error(rc));
    108                 return EIO;
    109         }
    110 
     102       
    111103        return EOK;
    112104}
     
    114106static int dnscfg_print(void)
    115107{
    116         inet_addr_t addr;
    117         char *addr_str;
    118         int rc;
    119 
    120         rc = dnsr_get_srvaddr(&addr);
     108        inet2_addr_t addr;
     109        int rc = dnsr_get_srvaddr(&addr);
    121110        if (rc != EOK) {
    122                 printf(NAME ": Failed getting DNS server address.\n");
     111                printf("%s: Failed getting DNS server address.\n", NAME);
    123112                return rc;
    124113        }
    125 
    126         rc = inet_addr_format(&addr, &addr_str);
     114       
     115        char *addr_str;
     116        rc = inet2_addr_format(&addr, &addr_str);
    127117        if (rc != EOK) {
    128                 printf(NAME ": Out of memory.\n");
     118                printf("%s: Out of memory.\n", NAME);
    129119                return rc;
    130120        }
    131 
    132         printf("Server: %s\n", addr_str);
     121       
     122        printf("Nameserver: %s\n", addr_str);
    133123        free(addr_str);
    134124        return EOK;
     
    137127int main(int argc, char *argv[])
    138128{
    139         int rc;
    140 
    141         if (argc < 2) {
    142                 rc = dnscfg_print();
    143                 if (rc != EOK)
    144                         return 1;
    145                 return 0;
    146         }
    147 
    148         if (str_cmp(argv[1], "set-ns") == 0) {
    149                 rc = dnscfg_set_ns(argc - 2, argv + 2);
    150                 if (rc != EOK)
    151                         return 1;
    152         } else if (str_cmp(argv[1], "unset-ns") == 0) {
    153                 rc = dnscfg_unset_ns(argc - 2, argv + 2);
    154                 if (rc != EOK)
    155                         return 1;
    156         } else {
    157                 printf(NAME ": Unknown command '%s'.\n", argv[1]);
     129        if ((argc < 2) || (str_cmp(argv[1], "get-ns") == 0))
     130                return dnscfg_print();
     131        else if (str_cmp(argv[1], "set-ns") == 0)
     132                return dnscfg_set_ns(argc - 2, argv + 2);
     133        else if (str_cmp(argv[1], "unset-ns") == 0)
     134                return dnscfg_unset_ns();
     135        else {
     136                printf("%s: Unknown command '%s'.\n", NAME, argv[1]);
    158137                print_syntax();
    159138                return 1;
    160139        }
    161 
    162 
     140       
    163141        return 0;
    164142}
  • uspace/app/dnsres/dnsres.c

    rb49d872 r3e66428  
    3434
    3535#include <errno.h>
    36 #include <inet/addr.h>
     36#include <inet/addr2.h>
    3737#include <inet/dnsr.h>
    3838#include <stdio.h>
     
    6666        }
    6767
    68         rc = inet_addr_format(&hinfo->addr, &saddr);
     68        rc = inet2_addr_format(&hinfo->addr, &saddr);
    6969        if (rc != EOK) {
    7070                dnsr_hostinfo_destroy(hinfo);
  • uspace/app/nettest1/nettest1.c

    rb49d872 r3e66428  
    359359                        return rc;
    360360                }
    361 
    362                 address_in.sin_addr.s_addr = host2uint32_t_be(hinfo->addr.ipv4);
     361               
     362                rc = inet2_addr_sockaddr_in(&hinfo->addr, &address_in);
     363                if (rc != EOK) {
     364                        printf("Host '%s' not resolved as IPv4 address.\n", argv[argc - 1]);
     365                        return rc;
     366                }
    363367        }
    364368
  • uspace/app/nettest2/nettest2.c

    rb49d872 r3e66428  
    305305                        return rc;
    306306                }
    307 
    308                 address_in.sin_addr.s_addr = host2uint32_t_be(hinfo->addr.ipv4);
     307               
     308                rc = inet2_addr_sockaddr_in(&hinfo->addr, &address_in);
     309                if (rc != EOK) {
     310                        printf("Host '%s' not resolved as IPv4 address.\n", argv[argc - 1]);
     311                        return rc;
     312                }
    309313        }
    310314
  • uspace/app/nettest3/nettest3.c

    rb49d872 r3e66428  
    8383                                return rc;
    8484                        }
    85 
    86                         addr.sin_addr.s_addr = host2uint32_t_be(hinfo->addr.ipv4);
    87                         addr.sin_family = AF_INET;
     85                       
     86                        rc = inet2_addr_sockaddr_in(&hinfo->addr, &addr);
     87                        if (rc != EOK) {
     88                                printf("Host '%s' not resolved as IPv4 address.\n", argv[1]);
     89                                return rc;
     90                        }
    8891                }
    8992                printf("result: rc=%d, family=%d, addr=%x\n", rc,
  • uspace/app/nterm/conn.c

    rb49d872 r3e66428  
    9090                        goto error;
    9191                }
    92 
    93                 addr.sin_addr.s_addr = host2uint32_t_be(hinfo->addr.ipv4);
     92               
     93                rc = inet2_addr_sockaddr_in(&hinfo->addr, &addr);
     94                if (rc != EOK) {
     95                        printf("Host '%s' not resolved as IPv4 address.\n", addr_s);
     96                        return rc;
     97                }
    9498        }
    9599
  • uspace/app/ping/ping.c

    rb49d872 r3e66428  
    6363};
    6464
    65 static inet_addr_t src_addr;
    66 static inet_addr_t dest_addr;
     65static uint32_t src;
     66static uint32_t dest;
    6767
    6868static bool ping_repeat = false;
     
    8383static int ping_ev_recv(inetping_sdu_t *sdu)
    8484{
    85         char *asrc, *adest;
    86         int rc;
    87 
    88         rc = inet_addr_format(&sdu->src, &asrc);
     85        inet2_addr_t src_addr;
     86        inet2_addr_unpack(sdu->src, &src_addr);
     87       
     88        inet2_addr_t dest_addr;
     89        inet2_addr_unpack(sdu->dest, &dest_addr);
     90       
     91        char *asrc;
     92        int rc = inet2_addr_format(&src_addr, &asrc);
    8993        if (rc != EOK)
    9094                return ENOMEM;
    91 
    92         rc = inet_addr_format(&sdu->dest, &adest);
     95       
     96        char *adest;
     97        rc = inet2_addr_format(&dest_addr, &adest);
    9398        if (rc != EOK) {
    9499                free(asrc);
    95100                return ENOMEM;
    96101        }
     102       
    97103        printf("Received ICMP echo reply: from %s to %s, seq. no %u, "
    98104            "payload size %zu\n", asrc, adest, sdu->seq_no, sdu->size);
    99 
    100         if (!ping_repeat) {
     105       
     106        if (!ping_repeat)
    101107                ping_signal_done();
    102         }
    103 
     108       
    104109        free(asrc);
    105110        free(adest);
     
    112117        int rc;
    113118
    114         sdu.src = src_addr;
    115         sdu.dest = dest_addr;
     119        sdu.src = src;
     120        sdu.dest = dest;
    116121        sdu.seq_no = seq_no;
    117122        sdu.data = (void *) "foo";
     
    202207
    203208        /* Parse destination address */
    204         rc = inet_addr_parse(argv[argi], &dest_addr);
     209        inet2_addr_t dest_addr;
     210        rc = inet2_addr_parse(argv[argi], &dest_addr);
    205211        if (rc != EOK) {
    206212                /* Try interpreting as a host name */
     
    210216                        goto error;
    211217                }
    212 
     218               
    213219                dest_addr = hinfo->addr;
    214220        }
    215 
     221       
     222        rc = inet2_addr_pack(&dest_addr, &dest);
     223        if (rc != EOK) {
     224                printf(NAME ": Destination '%s' is not an IPv4 address.\n",
     225                    argv[argi]);
     226                goto error;
     227        }
     228       
    216229        /* Determine source address */
    217         rc = inetping_get_srcaddr(&dest_addr, &src_addr);
     230        rc = inetping_get_srcaddr(dest, &src);
    218231        if (rc != EOK) {
    219232                printf(NAME ": Failed determining source address.\n");
    220233                goto error;
    221234        }
    222 
    223         rc = inet_addr_format(&src_addr, &asrc);
     235       
     236        inet2_addr_t src_addr;
     237        inet2_addr_unpack(src, &src_addr);
     238       
     239        rc = inet2_addr_format(&src_addr, &asrc);
    224240        if (rc != EOK) {
    225241                printf(NAME ": Out of memory.\n");
    226242                goto error;
    227243        }
    228 
    229         rc = inet_addr_format(&dest_addr, &adest);
     244       
     245        rc = inet2_addr_format(&dest_addr, &adest);
    230246        if (rc != EOK) {
    231247                printf(NAME ": Out of memory.\n");
    232248                goto error;
    233249        }
    234 
     250       
    235251        if (hinfo != NULL) {
    236252                rc = asprintf(&sdest, "%s (%s)", hinfo->cname, adest);
     
    287303        dnsr_hostinfo_destroy(hinfo);
    288304        return 0;
     305       
    289306error:
    290307        free(asrc);
Note: See TracChangeset for help on using the changeset viewer.