Changeset a62ceaf in mainline for uspace/app/netecho/comm.c
- Timestamp:
- 2016-02-29T19:19:19Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 129b92c6
- Parents:
- 5147ff1
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/netecho/comm.c
r5147ff1 ra62ceaf 37 37 #include <errno.h> 38 38 #include <fibril.h> 39 #include <inet/dnsr.h>40 39 #include <inet/endpoint.h> 40 #include <inet/hostport.h> 41 41 #include <inet/udp.h> 42 42 #include <macros.h> … … 109 109 } 110 110 111 int comm_open (const char *host,const char *port_s)111 int comm_open_listen(const char *port_s) 112 112 { 113 113 inet_ep2_t epp; 114 inet_addr_t iaddr;115 114 int rc; 116 117 if (host != NULL) {118 /* Interpret as address */119 inet_addr_t iaddr;120 int rc = inet_addr_parse(host, &iaddr);121 122 if (rc != EOK) {123 /* Interpret as a host name */124 dnsr_hostinfo_t *hinfo = NULL;125 rc = dnsr_name2host(host, &hinfo, ip_any);126 127 if (rc != EOK) {128 printf("Error resolving host '%s'.\n", host);129 goto error;130 }131 132 iaddr = hinfo->addr;133 }134 }135 115 136 116 char *endptr; … … 142 122 143 123 inet_ep2_init(&epp); 144 if (host != NULL) { 145 /* Talk to remote host */ 146 remote.addr = iaddr; 147 remote.port = port; 124 epp.local.port = port; 148 125 149 printf("Talking to host %s port %u\n", host, port); 150 } else { 151 /* Listen on local port */ 152 epp.local.port = port; 126 printf("Listening on port %u\n", port); 153 127 154 printf("Listening on port %u\n", port); 128 rc = udp_create(&udp); 129 if (rc != EOK) 130 goto error; 131 132 rc = udp_assoc_create(udp, &epp, &comm_udp_cb, NULL, &assoc); 133 if (rc != EOK) 134 goto error; 135 136 return EOK; 137 error: 138 udp_assoc_destroy(assoc); 139 udp_destroy(udp); 140 141 return EIO; 142 } 143 144 int comm_open_talkto(const char *hostport) 145 { 146 inet_ep2_t epp; 147 const char *errmsg; 148 int rc; 149 150 inet_ep2_init(&epp); 151 rc = inet_hostport_plookup_one(hostport, ip_any, &epp.remote, NULL, 152 &errmsg); 153 if (rc != EOK) { 154 printf("Error: %s (host:port %s).\n", errmsg, hostport); 155 goto error; 155 156 } 157 158 printf("Talking to %s\n", hostport); 156 159 157 160 rc = udp_create(&udp);
Note:
See TracChangeset
for help on using the changeset viewer.