Ejemplo n.º 1
0
void Setup_Settings (void) {
	unsigned char data[6];
	memset(data, 0x00, 6);
	
	if (strstr(SETTINGS_DATA[DHCP_ENABLE], "0")) {
		dhcp_disable();
	
		sscanf(SETTINGS_DATA[IP_ADDRESS], "%d.%d.%d.%d", (int *)&data[0], (int *)&data[1], (int *)&data[2], (int *)&data[3]);
		memcpy(DEVICE_IP, data, 4);
		memset(data, 0x00, 4);

		sscanf(SETTINGS_DATA[SUBNET_MASK], "%d.%d.%d.%d", (int *)&data[0], (int *)&data[1], (int *)&data[2], (int *)&data[3]);
		memcpy(DEVICE_SUBNETMASK, data, 4);
		memset(data, 0x00, 4);
		
		sscanf(SETTINGS_DATA[DEFAULT_GATEWAY], "%d.%d.%d.%d", (int *)&data[0], (int *)&data[1], (int *)&data[2], (int *)&data[3]);
		memcpy(DEVICE_GATEWAY, data, 4);
		memset(data, 0x00, 4);
		
		
		sscanf(SETTINGS_DATA[PRI_DNS_ADDRESS], "%d.%d.%d.%d", (int *)&data[0], (int *)&data[1], (int *)&data[2], (int *)&data[3]);
		memcpy(DEVICE_PriDNS, data, 4);
		memset(data, 0x00, 4);
		
		sscanf(SETTINGS_DATA[SEC_DNS_ADDRESS], "%d.%d.%d.%d", (int *)&data[0], (int *)&data[1], (int *)&data[2], (int *)&data[3]);
		memcpy(DEVICE_SecDNS, data, 4);
		memset(data, 0x00, 4);
	}
}
Ejemplo n.º 2
0
static void dhcp_check () {
  /* Monitor DHCP IP address assignment. */

  if (tick == __FALSE || dhcp_tout == 0) {
    return;
  }
#ifdef RTX_KERNEL
  tick = __FALSE;
#endif
  if (mem_test (&MY_IP, 0, IP_ADRLEN) == __FALSE && !(dhcp_tout & 0x80000000)) {
    /* Success, DHCP has already got the IP address. */
    dhcp_tout = 0;
    sprintf((char *)lcd_text[0],"IP address:");
    sprintf((char *)lcd_text[1],"%d.%d.%d.%d", MY_IP[0], MY_IP[1],
                                               MY_IP[2], MY_IP[3]);
    LCDupdate = __TRUE;
    return;
  }
  if (--dhcp_tout == 0) {
    /* A timeout, disable DHCP and use static IP address. */
    dhcp_disable ();
    sprintf((char *)lcd_text[1]," DHCP failed    " );
    LCDupdate = __TRUE;
    dhcp_tout = 30 | 0x80000000;
    return;
  }
  if (dhcp_tout == 0x80000000) {
    dhcp_tout = 0;
    sprintf((char *)lcd_text[0],"IP address:");
    sprintf((char *)lcd_text[1],"%d.%d.%d.%d", MY_IP[0], MY_IP[1],
                                               MY_IP[2], MY_IP[3]);
    LCDupdate = __TRUE;
  }
}
Ejemplo n.º 3
0
/*****************************************************************************
** Function name:		void dhcp_check (void)
**
** Descriptions:		verifica se há servidor DHCP na rede, se não houver então
**									configuramos com ip estático
**
** parameters:			None
**
** Returned value:		None
** 
*****************************************************************************/
void dhcp_check (void)
{
	U8 ip[4], mask[4], gateway[4],i;
	
	if (dhcp_tout == 0)
		return; 
	
	if (mem_test (&MY_IP, 0, IP_ADRLEN) == __FALSE  && !(dhcp_tout & 0x80000000)) 
	{
		dhcp_tout = 0;
		tcp_state.bit.dhcp = __TRUE;
		printf("\r[IP (DHCP): %d.%d.%d.%d]\r", MY_IP[0], MY_IP[1], MY_IP[2], MY_IP[3]);
		printf("[MASK: %d.%d.%d.%d]\r", MY_MASK[0], MY_MASK[1], MY_MASK[2], MY_MASK[3]);
		printf("[GATEWAY: %d.%d.%d.%d]\r", MY_GATEWAY[0], MY_GATEWAY[1], MY_GATEWAY[2], MY_GATEWAY[3]);
		fflush (stdout);
		return;
	}

	if (--dhcp_tout == 0) 
	{
		dhcp_disable ();
		dhcp_tout = 30 | 0x80000000;
		printf("\r[DHCP failed]\r" );
		fflush (stdout);
   		return;
  	}

	if (dhcp_tout == 0x80000000)
	{
		inet_aton((U8*)cfg.tcp.static_ip,ip);
		inet_aton((U8*)cfg.tcp.mask,mask);
		inet_aton((U8*)cfg.tcp.gateway,gateway);
		dhcp_tout = 0;
		tcp_state.bit.dhcp = __FALSE;
		for(i=0;i<4;i++)
		{
			MY_IP[i] = ip[i];
			MY_MASK[i] = mask[i];
			MY_GATEWAY[i] = gateway[i];
		}
		
		printf("\r[IP (STATIC): %d.%d.%d.%d]\r", MY_IP[0], MY_IP[1], MY_IP[2], MY_IP[3]);
		printf("[MASK: %d.%d.%d.%d]\r", MY_MASK[0], MY_MASK[1], MY_MASK[2], MY_MASK[3]);
		printf("[GATEWAY: %d.%d.%d.%d]\r", MY_GATEWAY[0], MY_GATEWAY[1], MY_GATEWAY[2], MY_GATEWAY[3]);
		fflush (stdout);
		return;
	}
}