~ubuntu-branches/ubuntu/vivid/qemu-linaro/vivid

« back to all changes in this revision

Viewing changes to slirp/tcp_subr.c

  • Committer: Ricardo Salveti de Araujo
  • Date: 2012-09-20 18:39:31 UTC
  • mfrom: (12922.1.2 qemu-linaro)
  • Revision ID: ricardo.salveti@linaro.org-20120920183931-sp3cg6kpdl8dmwo9
* New upstream release.
  - support emulated systems with more than 2G of memory. (LP: #1030588)
* Drop powerpc-missing-include.patch - merged upstream.
* Update debian/control:
  - drop perl build dependency.
  - add libfdt-dev build dependency.
* Update debian/qemu-keymaps.install file.
* Update debian/rules:
  - update QEMU_CPU for ARM architecture: armv4l -> armv7l.
  - update conf_audio_drv: default to PulseAudio since PA is the default on
    Ubuntu.
  - enable KVM on ARM architecture.
  - enable flat device tree support (--enable-fdt). (LP: #1030594)

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
    slirp->tcp_last_so = &slirp->tcb;
56
56
}
57
57
 
 
58
void tcp_cleanup(Slirp *slirp)
 
59
{
 
60
    while (slirp->tcb.so_next != &slirp->tcb) {
 
61
        tcp_close(sototcpcb(slirp->tcb.so_next));
 
62
    }
 
63
}
 
64
 
58
65
/*
59
66
 * Create template to be used to send tcp packets on a connection.
60
67
 * Call after host entry created, fills
329
336
    int opt, s=so->s;
330
337
    struct sockaddr_in addr;
331
338
 
332
 
    fd_nonblock(s);
 
339
    socket_set_nonblock(s);
333
340
    opt = 1;
334
341
    setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(opt ));
335
342
    opt = 1;
417
424
                tcp_close(sototcpcb(so)); /* This will sofree() as well */
418
425
                return;
419
426
        }
420
 
        fd_nonblock(s);
 
427
        socket_set_nonblock(s);
421
428
        opt = 1;
422
429
        setsockopt(s,SOL_SOCKET,SO_REUSEADDR,(char *)&opt,sizeof(int));
423
430
        opt = 1;
428
435
        so->so_fport = addr.sin_port;
429
436
        so->so_faddr = addr.sin_addr;
430
437
        /* Translate connections from localhost to the real hostname */
431
 
        if (so->so_faddr.s_addr == 0 || so->so_faddr.s_addr == loopback_addr.s_addr)
432
 
           so->so_faddr = slirp->vhost_addr;
 
438
        if (so->so_faddr.s_addr == 0 ||
 
439
            (so->so_faddr.s_addr & loopback_mask) ==
 
440
            (loopback_addr.s_addr & loopback_mask)) {
 
441
            so->so_faddr = slirp->vhost_addr;
 
442
        }
433
443
 
434
444
        /* Close the accept() socket, set right state */
435
445
        if (inso->so_state & SS_FACCEPTONCE) {