From eb3b85388944b4e15b6db2db99d136f538384c4e Mon Sep 17 00:00:00 2001 From: Dmitry Kozlov Date: Sun, 17 Apr 2016 14:29:36 +0300 Subject: preparation for DPDK intergation (part 7) --- accel-pppd/ppp/ppp.c | 34 ++++++++++------------------------ 1 file changed, 10 insertions(+), 24 deletions(-) (limited to 'accel-pppd/ppp') diff --git a/accel-pppd/ppp/ppp.c b/accel-pppd/ppp/ppp.c index ab67aa21..f05b47bb 100644 --- a/accel-pppd/ppp/ppp.c +++ b/accel-pppd/ppp/ppp.c @@ -93,11 +93,8 @@ int __export establish_ppp(struct ppp_t *ppp) } fcntl(ppp->chan_fd, F_SETFD, fcntl(ppp->chan_fd, F_GETFD) | FD_CLOEXEC); - if (fcntl(ppp->chan_fd, F_SETFL, O_NONBLOCK)) { - log_ppp_error("ppp: cannot set nonblocking mode: %s\n", - strerror(errno)); - goto exit_close_chan; - } + + net->set_nonblocking(ppp->chan_fd, 1); if (net->ppp_ioctl(ppp->chan_fd, PPPIOCATTCHAN, &ppp->chan_idx) < 0) { log_ppp_error("ioctl(PPPIOCATTCHAN): %s\n", strerror(errno)); @@ -357,18 +354,14 @@ static int ppp_chan_read(struct triton_md_handler_t *h) cont: ppp->buf_size = net->read(h->fd, ppp->buf, PPP_BUF_SIZE); if (ppp->buf_size < 0) { - if (errno != EAGAIN) + if (errno != EAGAIN) { log_ppp_error("ppp_chan_read: %s\n", strerror(errno)); + ap_session_terminate(&ppp->ses, TERM_NAS_ERROR, 1); + return 1; + } break; } - //printf("ppp_chan_read: "); - //print_buf(ppp->buf,ppp->buf_size); - if (ppp->buf_size == 0) { - ap_session_terminate(&ppp->ses, TERM_NAS_ERROR, 1); - return 1; - } - if (ppp->buf_size < 2) { log_ppp_error("ppp_chan_read: short read %i\n", ppp->buf_size); continue; @@ -409,21 +402,14 @@ static int ppp_unit_read(struct triton_md_handler_t *h) cont: ppp->buf_size = net->read(h->fd, ppp->buf, PPP_BUF_SIZE); if (ppp->buf_size < 0) { - if (errno != EAGAIN) + if (errno != EAGAIN) { log_ppp_error("ppp_unit_read: %s\n",strerror(errno)); + ap_session_terminate(&ppp->ses, TERM_NAS_ERROR, 1); + return 1; + } break; } - //printf("ppp_unit_read: %i\n", ppp->buf_size); - if (ppp->buf_size == 0) - return 0; - //print_buf(ppp->buf,ppp->buf_size); - - /*if (ppp->buf_size == 0) { - ap_session_terminate(ppp, TERM_NAS_ERROR, 1); - return 1; - }*/ - if (ppp->buf_size < 2) { log_ppp_error("ppp_unit_read: short read %i\n", ppp->buf_size); continue; -- cgit v1.2.3