Changes in uspace/lib/c/generic/inet.c [a2e3ee6:77ad86c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/inet.c
ra2e3ee6 r77ad86c 107 107 int inet_send(inet_dgram_t *dgram, uint8_t ttl, inet_df_t df) 108 108 { 109 uint32_t src;110 int rc = inet_addr_pack(&dgram->src, &src);111 if (rc != EOK)112 return rc;113 114 uint32_t dest;115 rc = inet_addr_pack(&dgram->dest, &dest);116 if (rc != EOK)117 return EOK;118 119 109 async_exch_t *exch = async_exchange_begin(inet_sess); 120 110 121 111 ipc_call_t answer; 122 aid_t req = async_send_5(exch, INET_SEND, (sysarg_t) src, 123 (sysarg_t) dest, dgram->tos, ttl, df, &answer); 124 rc = async_data_write_start(exch, dgram->data, dgram->size); 125 112 aid_t req = async_send_5(exch, INET_SEND, dgram->src.ipv4, 113 dgram->dest.ipv4, dgram->tos, ttl, df, &answer); 114 int rc = async_data_write_start(exch, dgram->data, dgram->size); 126 115 async_exchange_end(exch); 127 116 128 117 if (rc != EOK) { 129 118 async_forget(req); 130 119 return rc; 131 120 } 132 121 133 122 sysarg_t retval; 134 123 async_wait_for(req, &retval); 135 124 if (retval != EOK) 136 125 return retval; 137 126 138 127 return EOK; 139 128 } … … 141 130 int inet_get_srcaddr(inet_addr_t *remote, uint8_t tos, inet_addr_t *local) 142 131 { 143 uint32_t remote_addr; 144 int rc = inet_addr_pack(remote, &remote_addr); 132 sysarg_t local_addr; 133 async_exch_t *exch = async_exchange_begin(inet_sess); 134 135 int rc = async_req_2_1(exch, INET_GET_SRCADDR, remote->ipv4, 136 tos, &local_addr); 137 async_exchange_end(exch); 138 145 139 if (rc != EOK) 146 140 return rc; 147 148 async_exch_t *exch = async_exchange_begin(inet_sess); 149 150 sysarg_t local_addr; 151 rc = async_req_2_1(exch, INET_GET_SRCADDR, (sysarg_t) remote_addr, 152 tos, &local_addr); 153 154 async_exchange_end(exch); 155 156 if (rc != EOK) 157 return rc; 158 159 inet_addr_unpack(local_addr, local); 141 142 local->ipv4 = local_addr; 160 143 return EOK; 161 144 } … … 165 148 int rc; 166 149 inet_dgram_t dgram; 167 168 inet_addr_unpack(IPC_GET_ARG1(*call), &dgram.src);169 inet_addr_unpack(IPC_GET_ARG2(*call), &dgram.dest);150 151 dgram.src.ipv4 = IPC_GET_ARG1(*call); 152 dgram.dest.ipv4 = IPC_GET_ARG2(*call); 170 153 dgram.tos = IPC_GET_ARG3(*call); 171 154
Note:
See TracChangeset
for help on using the changeset viewer.