Rev 4726 | Rev 4738 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4726 | Rev 4731 | ||
|---|---|---|---|
| Line 97... | Line 97... | ||
| 97 | default: |
97 | default: |
| 98 | return EAFNOSUPPORT; |
98 | return EAFNOSUPPORT; |
| 99 | } |
99 | } |
| 100 | } |
100 | } |
| 101 | 101 | ||
| 102 | void tl_send_icmp_port_unreachable( int packet_phone, int icmp_phone, packet_t packet, services_t error ){ |
102 | int tl_prepare_icmp_packet( int packet_phone, int icmp_phone, packet_t packet, services_t error ){ |
| 103 | packet_t next; |
103 | packet_t next; |
| 104 | uint8_t * src; |
104 | uint8_t * src; |
| 105 | int length; |
105 | int length; |
| 106 | 106 | ||
| 107 | // detach the first packet and release the others |
107 | // detach the first packet and release the others |
| Line 113... | Line 113... | ||
| 113 | if(( length > 0 ) |
113 | if(( length > 0 ) |
| 114 | && ( ! error ) |
114 | && ( ! error ) |
| 115 | && ( icmp_phone >= 0 ) |
115 | && ( icmp_phone >= 0 ) |
| 116 | // set both addresses to the source one (avoids the source address deletion before setting the destination one) |
116 | // set both addresses to the source one (avoids the source address deletion before setting the destination one) |
| 117 | && ( packet_set_addr( packet, src, src, ( size_t ) length ) == EOK )){ |
117 | && ( packet_set_addr( packet, src, src, ( size_t ) length ) == EOK )){ |
| 118 | icmp_destination_unreachable_msg( icmp_phone, ICMP_PORT_UNREACH, 0, packet ); |
118 | return EOK; |
| 119 | }else{ |
119 | }else{ |
| 120 | pq_release( packet_phone, packet_get_id( packet )); |
120 | pq_release( packet_phone, packet_get_id( packet )); |
| 121 | } |
121 | } |
| - | 122 | return ENOENT; |
|
| 122 | } |
123 | } |
| 123 | 124 | ||
| 124 | int tl_socket_read_packet_data( int packet_phone, packet_ref packet, size_t prefix, const packet_dimension_ref dimension, const struct sockaddr * addr, socklen_t addrlen ){ |
125 | int tl_socket_read_packet_data( int packet_phone, packet_ref packet, size_t prefix, const packet_dimension_ref dimension, const struct sockaddr * addr, socklen_t addrlen ){ |
| 125 | ERROR_DECLARE; |
126 | ERROR_DECLARE; |
| 126 | 127 | ||