Ticket #9: 600_win32_inet.patch

File 600_win32_inet.patch, 1.6 KB (added by hsattler, 18 months ago)

fix usage of inet stuff for win32

  • lib/obex_transport.c

    old new  
    361361/* 
    362362 * does fragmented write 
    363363 */ 
    364 static int do_write(int fd, buf_t *msg, int mtu) 
     364static int do_write(int fd, buf_t *msg, int mtu, 
     365                    ssize_t (*write_func)(int, const void *, size_t)) 
    365366{ 
    366367        int actual = -1; 
    367368        int size; 
     
    374375                        size = msg->data_size; 
    375376                DEBUG(1, "sending %d bytes\n", size); 
    376377 
    377                 actual = write(fd, msg->data, size); 
     378                actual = write_func(fd, msg->data, size); 
    378379                if (actual <= 0) 
    379380                        return actual; 
    380381                         
     
    384385        return actual; 
    385386} 
    386387 
     388static ssize_t send_wrap (int s, const void *buf, size_t len) 
     389{ 
     390        return send(s,buf,len,0); 
     391} 
     392 
    387393/* 
    388394 * Function obex_transport_write () 
    389395 * 
     
    404410        case OBEX_TRANS_BLUETOOTH: 
    405411#endif /*HAVE_BLUETOOTH*/ 
    406412        case OBEX_TRANS_INET: 
    407                 actual = do_write(self->fd, msg, self->trans.mtu); 
     413                actual = do_write(self->fd, msg, self->trans.mtu, send_wrap); 
    408414                break; 
    409415        case OBEX_TRANS_FD: 
    410                 actual = do_write(self->writefd, msg, self->trans.mtu); 
     416                actual = do_write(self->writefd, msg, self->trans.mtu, write); 
    411417                break; 
    412418#ifdef HAVE_USB  
    413419        case OBEX_TRANS_USB: 
     
    454460        case OBEX_TRANS_BLUETOOTH: 
    455461#endif /*HAVE_BLUETOOTH*/ 
    456462        case OBEX_TRANS_INET: 
     463                actual = recv(self->fd, buf_reserve_end(msg, max), max, 0); 
     464                if (actual > 0) 
     465                        buf_remove_end(msg, max - actual); 
     466                break; 
    457467        case OBEX_TRANS_FD: 
    458468                actual = read(self->fd, buf_reserve_end(msg, max), max); 
    459469                if (actual > 0)