src/line_proto.c
changeset 21 0911d0b828d4
parent 20 d9c4c2980a0d
child 22 c339c020fd33
equal deleted inserted replaced
20:d9c4c2980a0d 21:0911d0b828d4
   249     int ret;
   249     int ret;
   250     size_t len = strlen(line);
   250     size_t len = strlen(line);
   251 
   251 
   252     // drop line if we already have output buffered
   252     // drop line if we already have output buffered
   253     if (lp->out_offset)
   253     if (lp->out_offset)
   254         return -ERR_WRITE_EOF;
   254         return -ERR_LINE_TOO_LONG;
   255     
   255     
   256     // try and write the line
   256     // try and write the line
   257     if ((ret = sock_stream_write(lp->sock, line, len)) < 0) {
   257     if ((ret = sock_stream_write(lp->sock, line, len)) < 0) {
   258         SET_ERROR_INFO(&lp->err, sock_stream_error(lp->sock));
   258         SET_ERROR_INFO(&lp->err, sock_stream_error(lp->sock));
   259 
   259 
   273 
   273 
   274         // update offset
   274         // update offset
   275         lp->out_offset = trailing;
   275         lp->out_offset = trailing;
   276         
   276         
   277         // register for EV_WRITE
   277         // register for EV_WRITE
   278         line_proto_schedule_events(lp, EV_READ | EV_WRITE);
   278         if (line_proto_schedule_events(lp, EV_READ | EV_WRITE))
       
   279             return -ERROR_CODE(&lp->err);
   279 
   280 
   280         // buffered...
   281         // buffered...
   281         return 1;
   282         return 1;
   282 
   283 
   283     } else {
   284     } else {
   315         // update offset
   316         // update offset
   316         lp->out_offset = remaining;
   317         lp->out_offset = remaining;
   317     }
   318     }
   318 
   319 
   319     // register for EV_WRITE
   320     // register for EV_WRITE
   320     line_proto_schedule_events(lp, EV_READ | EV_WRITE);
   321     if (line_proto_schedule_events(lp, EV_READ | EV_WRITE))
       
   322         return -ERROR_CODE(&lp->err);
   321 
   323 
   322     // ok
   324     // ok
   323     return 1;
   325     return 1;
   324 }
   326 }
   325 
   327