qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] Re: NE2000 problem found


From: kazu
Subject: Re: [Qemu-devel] Re: NE2000 problem found
Date: Sat, 26 Jun 2004 14:06:20 +0900

Hi,

I added your patch. Thank you.

http://www.h7.dion.ne.jp/~qemu-win/download/qemu-0.5.5-slirp2.patch.gz
http://www.h7.dion.ne.jp/~qemu-win/download/qemu-20040621-slirp2.patch.gz

Regards,
kazu

Thursday, June 17, 2004 1:50 PM Leigh Dyer wrote:
> On Thu, 2004-06-10 at 07:21 +0200, Mike Nordell wrote:
> > I wrote:
> >
> > > It's also the thing that it seems only about every second time
> > > networking "works", to the extent the guest actually gets a
> > > DHCP address.
> >
> > I have now identified, and "fixed" this problem it seems. I have
rebooted
> > four times, and the guest has gotten an IP every time.
> >
>
> I hadn't seen any more news on this, and I didn't see any patches
> committed to CVS to fix this, so I thought I'd mention that I too see
> this problem with Windows 2000 (it only gets an IP address from the DHCP
> server on every second boot), and that this fix seems to solve the
> problem for me as well.
>
> Thanks
> Leigh
>
> > It was that Windows cached the previous IP and tried to get that again
on
> > next reboot, using DHCPREQUEST. Unfortunately, that failed miserably
with
> > the CVS QEMU/slirp DHCP server. Basically, the code just dropped the
request
> > and therefore the guest never got an IP.
> >
> > When Windows didn't get an IP, it noted so, and on the next reboot used
> > DHCPDISCOVER - which works - and so the merro-go-around starts over
again on
> > next reboot. :-)
> >
> > I "fixed" it in a really Q&D way (probably wrong, and please don't hold
the
> > "goto" against me - I just wanted to display with as little code as
possible
> > how it could be fixed)
> >
> > bootp_reply, in bootp.c
> >
> > +try_again:
> >     if (dhcp_msg_type == DHCPDISCOVER) {
> > ...
> >     } else {
> >         bc = find_addr(&daddr.sin_addr, bp->bp_hwaddr);
> >         if (!bc) {
> >             dprintf("no address assigned\n");
> > +#if 1
> > +            dhcp_msg_type = DHCPDISCOVER;
> > +            goto try_again;
> > +#else
> >             return;
> > +#endif
> >         }
> >

> >
> > /Mike





reply via email to

[Prev in Thread] Current Thread [Next in Thread]