Changeset 17 for pjproject/main/pjlib/src/pjlib-test/udp_echo_srv_ioqueue.c
- Timestamp:
- Nov 6, 2005 7:46:48 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/main/pjlib/src/pjlib-test/udp_echo_srv_ioqueue.c
r11 r17 15 15 int is_pending; 16 16 pj_status_t last_err; 17 pj_sockaddr_in addr; 18 int addrlen; 17 19 }; 18 20 … … 29 31 30 32 if (bytes_received < 0) { 31 PJ_LOG(3,("","...error receiving data, received=%d", 32 bytes_received)); 33 if (-bytes_received != recv_rec->last_err) { 34 recv_rec->last_err = -bytes_received; 35 app_perror("...error receiving data", -bytes_received); 36 } 33 37 } else if (bytes_received == 0) { 34 38 /* note: previous error, or write callback */ … … 39 43 pj_ssize_t sent = bytes_received; 40 44 pj_memcpy(send_rec->buffer, recv_rec->buffer, bytes_received); 41 rc = pj_ioqueue_send(key, &send_rec->op_key_, 42 send_rec->buffer, &sent, 0); 45 pj_memcpy(&send_rec->addr, &recv_rec->addr, recv_rec->addrlen); 46 send_rec->addrlen = recv_rec->addrlen; 47 rc = pj_ioqueue_sendto(key, &send_rec->op_key_, 48 send_rec->buffer, &sent, 0, 49 &send_rec->addr, send_rec->addrlen); 43 50 send_rec->is_pending = (rc==PJ_EPENDING); 44 51 45 52 if (rc!=PJ_SUCCESS && rc!=PJ_EPENDING) { 46 app_perror("...send error ", rc);53 app_perror("...send error(1)", rc); 47 54 } 48 55 } … … 51 58 if (!send_rec->is_pending) { 52 59 bytes_received = recv_rec->size; 53 rc = pj_ioqueue_recv(key, &recv_rec->op_key_, 54 recv_rec->buffer, &bytes_received, 0); 60 rc = pj_ioqueue_recvfrom(key, &recv_rec->op_key_, 61 recv_rec->buffer, &bytes_received, 0, 62 &recv_rec->addr, &recv_rec->addrlen); 55 63 recv_rec->is_pending = (rc==PJ_EPENDING); 56 64 if (rc == PJ_SUCCESS) { … … 81 89 82 90 if (bytes_sent <= 0) { 83 pj_status_t rc = pj_get_netos_error(); 84 app_perror("...send error", rc); 91 pj_status_t rc = -bytes_sent; 92 if (rc != send_rec->last_err) { 93 send_rec->last_err = rc; 94 app_perror("...send error(2)", rc); 95 } 85 96 } 86 97 … … 102 113 read_op.buffer = recv_buf; 103 114 read_op.size = sizeof(recv_buf); 115 read_op.addrlen = sizeof(read_op.addr); 116 104 117 write_op.peer = &read_op; 105 118 write_op.is_pending = 0; … … 109 122 110 123 length = sizeof(recv_buf); 111 rc = pj_ioqueue_recv(key, &read_op.op_key_, recv_buf, &length, 0); 124 rc = pj_ioqueue_recvfrom(key, &read_op.op_key_, recv_buf, &length, 0, 125 &read_op.addr, &read_op.addrlen); 112 126 if (rc == PJ_SUCCESS) { 113 127 read_op.is_pending = 1;
Note: See TracChangeset
for help on using the changeset viewer.