Changeset eb522e8 in mainline for uspace/lib/net/tl/tl_common.c
- Timestamp:
- 2011-06-01T08:43:42Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 8d6c1f1
- Parents:
- 9e2e715 (diff), e51a514 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/net/tl/tl_common.c
r9e2e715 reb522e8 27 27 */ 28 28 29 /** @addtogroup libnet 29 /** @addtogroup libnet 30 30 * @{ 31 31 */ … … 39 39 #include <packet_client.h> 40 40 #include <packet_remote.h> 41 #include <icmp_ interface.h>41 #include <icmp_remote.h> 42 42 #include <ip_remote.h> 43 43 #include <ip_interface.h> 44 #include <tl_ interface.h>44 #include <tl_remote.h> 45 45 46 46 #include <net/socket_codes.h> … … 64 64 * @param[in] addrlen The address length. 65 65 * @param[out] port The set port. 66 * @return sEOK on success.67 * @return sEINVAL if the address length does not match the address66 * @return EOK on success. 67 * @return EINVAL if the address length does not match the address 68 68 * family. 69 * @return sEAFNOSUPPORT if the address family is not supported.69 * @return EAFNOSUPPORT if the address family is not supported. 70 70 */ 71 71 int … … 120 120 int 121 121 tl_get_ip_packet_dimension(int ip_phone, 122 packet_dimensions_ refpacket_dimensions, device_id_t device_id,123 packet_dimension_ ref*packet_dimension)122 packet_dimensions_t *packet_dimensions, device_id_t device_id, 123 packet_dimension_t **packet_dimension) 124 124 { 125 125 int rc; … … 158 158 * @param[in] device_id The device identifier. 159 159 * @param[in] content The new maximum content size. 160 * @return sEOK on success.160 * @return EOK on success. 161 161 * @return ENOENT if the packet dimension is not cached. 162 162 */ 163 163 int 164 tl_update_ip_packet_dimension(packet_dimensions_ refpacket_dimensions,164 tl_update_ip_packet_dimension(packet_dimensions_t *packet_dimensions, 165 165 device_id_t device_id, size_t content) 166 166 { 167 packet_dimension_ refpacket_dimension;167 packet_dimension_t *packet_dimension; 168 168 169 169 packet_dimension = packet_dimensions_find(packet_dimensions, device_id); … … 182 182 else 183 183 packet_dimensions_exclude(packet_dimensions, 184 DEVICE_INVALID_ID );184 DEVICE_INVALID_ID, free); 185 185 } 186 186 } … … 196 196 * @param[in] addrlen The address length. 197 197 * @param[in] port The port to be set. 198 * @return sEOK on success.199 * @return sEINVAL if the address length does not match the address198 * @return EOK on success. 199 * @return EINVAL if the address length does not match the address 200 200 * family. 201 * @return sEAFNOSUPPORT if the address family is not supported.201 * @return EAFNOSUPPORT if the address family is not supported. 202 202 */ 203 203 int tl_set_address_port(struct sockaddr * addr, int addrlen, uint16_t port) … … 244 244 * @param[in] error The packet error reporting service. Prefixes the 245 245 * received packet. 246 * @return sEOK on success.247 * @return sENOENT if no packet may be sent.248 */ 249 int 250 tl_prepare_icmp_packet(int packet_phone, int icmp_phone, packet_t packet,246 * @return EOK on success. 247 * @return ENOENT if no packet may be sent. 248 */ 249 int 250 tl_prepare_icmp_packet(int packet_phone, int icmp_phone, packet_t *packet, 251 251 services_t error) 252 252 { 253 packet_t next;253 packet_t *next; 254 254 uint8_t *src; 255 255 int length; 256 256 257 / / detach the first packet and release the others257 /* Detach the first packet and release the others */ 258 258 next = pq_detach(packet); 259 259 if (next) … … 262 262 length = packet_get_addr(packet, &src, NULL); 263 263 if ((length > 0) && (!error) && (icmp_phone >= 0) && 264 // set both addresses to the source one (avoids the source address 265 // deletion before setting the destination one) 264 /* 265 * Set both addresses to the source one (avoids the source address 266 * deletion before setting the destination one) 267 */ 266 268 (packet_set_addr(packet, src, src, (size_t) length) == EOK)) { 267 269 return EOK; … … 280 282 * @param[in] addr The destination address. 281 283 * @param[in] addrlen The address length. 282 * @return sNumber of bytes received.283 * @return sEINVAL if the client does not send data.284 * @return sENOMEM if there is not enough memory left.285 * @return sOther error codes as defined for the284 * @return Number of bytes received. 285 * @return EINVAL if the client does not send data. 286 * @return ENOMEM if there is not enough memory left. 287 * @return Other error codes as defined for the 286 288 * async_data_read_finalize() function. 287 289 */ 288 290 int 289 tl_socket_read_packet_data(int packet_phone, packet_ refpacket, size_t prefix,290 const packet_dimension_ refdimension, const struct sockaddr *addr,291 tl_socket_read_packet_data(int packet_phone, packet_t **packet, size_t prefix, 292 const packet_dimension_t *dimension, const struct sockaddr *addr, 291 293 socklen_t addrlen) 292 294 { … … 299 301 return EINVAL; 300 302 301 / / get the data length303 /* Get the data length */ 302 304 if (!async_data_write_receive(&callid, &length)) 303 305 return EINVAL; 304 306 305 / / get a new packet307 /* Get a new packet */ 306 308 *packet = packet_get_4_remote(packet_phone, length, dimension->addr_len, 307 309 prefix + dimension->prefix, dimension->suffix); … … 309 311 return ENOMEM; 310 312 311 / / allocate space in the packet313 /* Allocate space in the packet */ 312 314 data = packet_suffix(*packet, length); 313 315 if (!data) { … … 316 318 } 317 319 318 / / read the data into the packet320 /* Read the data into the packet */ 319 321 rc = async_data_write_finalize(callid, data, length); 320 322 if (rc != EOK) { … … 323 325 } 324 326 325 / / set the packet destination address327 /* Set the packet destination address */ 326 328 rc = packet_set_addr(*packet, NULL, (uint8_t *) addr, addrlen); 327 329 if (rc != EOK) {
Note:
See TracChangeset
for help on using the changeset viewer.