コード例 #1
0
void user_init(void) {
	char * ap = "SKUNKWILLEM";
	char * pass = "******";
	uart_init(BIT_RATE_115200, uart_receive, false);
	system_set_os_print(1);
	os_printf("\nUart init done... \n");


	wifi_softap_get_config(&apconf);
	memset(apconf.ssid, 0, 32);
	memset(apconf.password, 0, 64);

	os_strncpy((char*)apconf.ssid, ap, 32);
	os_strncpy((char*)apconf.password, pass, 64);
	apconf.authmode = AUTH_WPA_WPA2_PSK;
	apconf.max_connection = 5;
	apconf.ssid_hidden = 0;
	wifi_softap_set_config(&apconf);


	IP4_ADDR(&IpInfo.gw, 192, 168, 10, 1);
	IP4_ADDR(&IpInfo.ip, 192, 168, 10, 1);
	IP4_ADDR(&IpInfo.netmask, 255, 255, 255, 0);
	wifi_softap_dhcps_stop();
	dhcps_start(&IpInfo);
	wifi_set_ip_info(0x01, &IpInfo);


	os_timer_disarm(&waitTimer);
	os_timer_setfn(&waitTimer, init_udp, NULL);
	os_timer_arm(&waitTimer, 2000, 0);

}
コード例 #2
0
ファイル: eagle_lwip_if.c プロジェクト: liqinliqin/esp8266web
struct netif * ICACHE_FLASH_ATTR eagle_lwip_if_alloc(struct ieee80211_conn *conn, uint8 *macaddr, struct ip_info *info)
{
	struct netif *myif = conn->myif;
    if (myif == NULL) {
        myif = (void *) pvPortMalloc(sizeof(struct netif)); // SDK 1.1.2 : pvPortZalloc(64)
        conn->myif = myif;
    }
    if(myif == NULL) return NULL;
    if (conn->dhcps_if == 0) { // +176
        if(default_hostname) {
    		wifi_station_set_default_hostname(macaddr);
    	}
    	myif->hostname = hostname; // +40
    }
    else myif->hostname = NULL; // +40

    myif->state = conn; // +28
    myif->name[0] = 'e'; // + 54
    myif->name[1] = 'w'; // + 55
    myif->output = etharp_output; // +20
    myif->linkoutput = ieee80211_output_pbuf; // +24
    ets_memcpy(myif->hwaddr, macaddr, 6); // +47

	ETSEvent *queue = (void *) pvPortMalloc(sizeof(struct ETSEventTag) * QUEUE_LEN); // pvPortZalloc(80)
	if(queue == NULL) return NULL;

    if (conn->dhcps_if != 0) { // +176
	    lwip_if_queues[1] = queue;
	    netif_set_addr(myif, &info->ip, &info->netmask, &info->gw);
	    ets_task(task_if1, LWIP_IF1_PRIO, (ETSEvent *)lwip_if_queues[1], QUEUE_LEN);
	    netif_add(myif, &info->ip, &info->netmask, &info->gw, conn, init_fn, ethernet_input);
	    if(dhcps_flag) {
	    	dhcps_start(info);
	    	os_printf("dhcp server start:(ip:" IPSTR ",mask:" IPSTR ",gw:" IPSTR ")\n", IP2STR(&info->ip), IP2STR(&info->netmask), IP2STR(&info->gw));
	    }
    }
    else {
    	lwip_if_queues[0] = queue;
	    ets_task(task_if0, LWIP_IF0_PRIO, (ETSEvent *)lwip_if_queues[0], QUEUE_LEN);
	    struct ip_info ipn;
		if(wifi_station_dhcpc_status()) {
		    ipn.ip.addr = 0;
		    ipn.netmask.addr = 0;
		    ipn.gw.addr = 0;
		}
		else {
			ipn =  *info;
		}
	    netif_add(myif, &ipn.ip, &ipn.netmask, &ipn.gw, conn, init_fn, ethernet_input);
    }
    return myif;
}
コード例 #3
0
struct netif *
eagle_lwip_if_alloc(struct myif_state *state, u8_t hw[6], ip_addr_t *ips)
{
    struct ETSEventTag *queue;
    struct netif *myif;
    ip_addr_t ipaddr = ips[0];
    ip_addr_t netmask = ips[1];
    ip_addr_t gw = ips[2];

    if (state->myif == NULL) {
        myif = (void *)os_zalloc(sizeof(struct netif));
    }

    myif->state = state;
    myif->name[0] = 'e';
    myif->name[1] = 'w';
    myif->linkoutput = ieee80211_output_pbuf;
    myif->output = etharp_output;
    ets_memcpy(myif->hwaddr, hw, 6);

    queue = (void *) os_malloc(sizeof(struct ETSEventTag) * QUEUE_LEN);

    if (state->dhcps_if == 0) {
#if LWIP_NETIF_HOSTNAME
#ifdef LWIP_NETIF_HOSTNAME_PREFIX
        myif->hostname = os_malloc(sizeof(LWIP_NETIF_HOSTNAME_PREFIX)+10);
        os_sprintf(myif->hostname, "%s%02x%02x%02x", LWIP_NETIF_HOSTNAME_PREFIX,
                myif->hwaddr[3], myif->hwaddr[4], myif->hwaddr[5]);
#endif
#endif

        ets_task(task_if0, TASK_IF0_PRIO, queue, QUEUE_LEN);
    } else {
        netif_set_addr(myif, &ipaddr, &netmask, &gw);
        if (dhcps_flag != 0) {
            dhcps_start((struct ip_info *)ips);
            os_printf("dhcp server start:(ip:%08x,mask:%08x,gw:%08x)\n",
                    ipaddr.addr, netmask.addr, gw.addr);
        }

        ets_task(task_if1, TASK_IF1_PRIO, queue, QUEUE_LEN);
    }

    netif_add(myif, &ipaddr, &netmask, &gw, state, init_fn, ethernet_input);

    return myif;
}
コード例 #4
0
//
// Test starts here
//
int main(int argc, char** argv)
{
    uint8_t *buf;
    struct pbuf *p;
    FILE *file;
    size_t len = 1460;

    dhcp_test_init_di();

    IP4_ADDR(&server_ip, 192,168,4,1);
    dhcps_set_new_lease_cb(dhcp_test_dhcps_cb);
    dhcps_start(&mynetif, server_ip);

#ifdef INSTR_IS_OFF
    p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);
    buf = p->payload;
    memset(buf, 0, 1460);
    if (argc != 2)
    {
        printf("Non-instrumentation mode: please supply a file name created by AFL to reproduce crash\n");
        return 1;
    }
    //
    // Note: parameter1 is a file (mangled packet) which caused the crash
    file = fopen(argv[1], "r");
    if (file) {
    len = fread(buf, 1, 1460, file);
    }
    fclose(file);

    int i;
    for (i=0; i<1; i++) {
#else
    while (__AFL_LOOP(1000)) {
        p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);
        buf = p->payload;
        memset(buf, 0, 1460);
        size_t len = read(0, buf, 1460);
#endif
        p->len = len;
        p->tot_len = len;
        p->next = NULL;

        dhcp_test_handle_dhcp(NULL, NULL, p, &ip_addr_any, 0);
    }
    return 0;
}
コード例 #5
0
ファイル: eagle_lwip_if.c プロジェクト: AlexShadow/esp8266web
struct netif * ICACHE_FLASH_ATTR
eagle_lwip_if_alloc(struct myif_state *state, u8_t hw[6], struct ip_info * ips)
{
#if 1 // optimize ...
    struct netif *myif = state->myif;
    if (myif == NULL) {
        myif = (void *) pvPortMalloc(sizeof(struct netif)); // pvPortZalloc(60)
        state->myif = myif;
    }
    myif->state = state; // +28
    myif->name[0] = 'e'; // +50
    myif->name[1] = 'w'; // +51
    myif->linkoutput = ieee80211_output_pbuf; // +24
    myif->output = etharp_output; // +20
    ets_memcpy(myif->hwaddr, hw, 6); // +43

	ETSEvent *queue = (void *) pvPortMalloc(sizeof(struct ETSEventTag) * QUEUE_LEN); // pvPortZalloc(80)
    if (state->dhcps_if != 0) { // +176
	    lwip_if_queues[1] = queue;
	    netif_set_addr(myif, &ips->ip, &ips->netmask, &ips->gw);
	    ets_task(task_if1, TASK_IF1_PRIO, (ETSEvent *)lwip_if_queues[1], QUEUE_LEN);
	    netif_add(myif, &ips->ip, &ips->netmask, &ips->gw, state, init_fn, ethernet_input);
	    if(dhcps_flag) {
	    	dhcps_start(ips);
//	    	os_printf("dhcp server start:(ip:%08x,mask:%08x,gw:%08x)\n", ips->ip.addr, ips->netmask.addr, ips->gw.addr);
	    }
    }
    else {
    	lwip_if_queues[0] = queue;
	    ets_task(task_if0, TASK_IF0_PRIO, (ETSEvent *)lwip_if_queues[0], QUEUE_LEN);
	    struct ip_info ipn;
		if(wifi_station_dhcpc_status()) {
			ipn =  *ips;
		}
		else {
		    ipn.ip.addr = 0;
		    ipn.netmask.addr = 0;
		    ipn.gw.addr = 0;
		}
	    netif_add(myif, &ipn.ip, &ipn.netmask, &ipn.gw, state, init_fn, ethernet_input);
    }
    return myif;
#else // source
	ETSEvent *queue;
    ip_addr_t ipaddr;
    ip_addr_t netmask;
    ip_addr_t gw;
    struct netif *myif = state->myif;

    if (myif == NULL) {
        myif = (void *) pvPortMalloc(sizeof(struct netif)); // pvPortZalloc(60)
        state->myif = myif;
    }
    myif->state = state; // +28
    myif->name[0] = 'e'; // +50
    myif->name[1] = 'w'; // +51
    myif->linkoutput = ieee80211_output_pbuf; // +24
    myif->output = etharp_output; // +20
    ets_memcpy(myif->hwaddr, hw, 6); // +43

    if (state->dhcps_if != 0) { // +176
	    ipaddr = ips->ip;
	    netmask = ips->netmask;
	    gw = ips->gw;
	    netif_set_addr(myif, &ipaddr, &netmask, &gw);
	    queue = (void *) pvPortMalloc(sizeof(struct ETSEventTag) * QUEUE_LEN); // pvPortZalloc(80)
	    lwip_if_queues[1] = queue;
	    ets_task(task_if1, TASK_IF1_PRIO, (ETSEvent *)queue, QUEUE_LEN);
	    netif_add(myif, &ipaddr, &netmask, &gw, state, init_fn, ethernet_input);
	    if(dhcps_flag) {
	    	dhcps_start(ips);
//	    	os_printf("dhcp server start:(ip:%08x,mask:%08x,gw:%08x)\n", ipaddr.addr, netmask.addr, gw.addr);
	    }

    }
    else {
    	if(wifi_station_dhcpc_status()) {
    	    ipaddr = ips->ip;
    	    netmask = ips->netmask;
    	    gw = ips->gw;
    	}
    	else {
        	ipaddr.addr = 0;
        	netmask.addr = 0;
        	gw.addr = 0;
    	}
	    queue = (void *) pvPortMalloc(sizeof(struct ETSEventTag) * QUEUE_LEN); // pvPortZalloc(80)
	    lwip_if_queues[0] = queue;
	    ets_task(task_if0, TASK_IF0_PRIO, (ETSEvent *)queue, QUEUE_LEN);
	    netif_add(myif, &ipaddr, &netmask, &gw, state, init_fn, ethernet_input);
    }
    return myif;
#endif
}