This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Runtime network reinit


On Mon, May 09, 2005 at 12:11:15PM +0200, Goran Pantar wrote:
> Hi,
> I have initialised the Network stack using fixed IP adresses. I would
> now like the possibility to change the IP address at runtime. Is this
> possible in eCos?
> 
> Parts of my network intialisation procedure:
> ..
>    s = socket(AF_INET, SOCK_DGRAM, 0);
> ..
>    ioctl(s, SIOCSIFHWADDR, &ifr);
>    close(s);
> ..
>    eth0_bootp_data.bp_op = BOOTREPLY;
>    eth0_bootp_data.bp_htype = HTYPE_ETHERNET;
>    eth0_bootp_data.bp_hlen = ETHER_ADDR_LEN;
>    for(i = 0;  i < eth0_bootp_data.bp_hlen;  i++)
>    {
>      eth0_bootp_data.bp_chaddr[i] = 0xFF;
>    }
>    eth0_bootp_data.bp_ciaddr.s_addr = *(in_addr_t *)NetHeader.addr_ip;
>    eth0_bootp_data.bp_yiaddr.s_addr = *(in_addr_t *)NetHeader.addr_ip;
>    eth0_bootp_data.bp_siaddr.s_addr = *(in_addr_t
> *)NetHeader.addr_server;
>    eth0_bootp_data.bp_giaddr.s_addr = *(in_addr_t
> *)NetHeader.addr_gateway;
> ..
>    init_net(eth0_name, &eth0_bootp_data);
> ..
> 
> The obove procedure initializes the network sucessfully and all the
> services are working. But when I run the same procedure (with changed IP
> addresses) init_net fails with a diag print: SIOCIFADDR: File exist.

You probably need to make a couple of ioctl calls to remove the
current addressing information before you can call init_net again.

        Andrew

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]