LOCAL void ICACHE_FLASH_ATTR nslookup_cb(const char *name, ip_addr_t *ip, void *arg) {
	if(dhserial_get_mode() == SM_OUTPUT_MODE) {
		nslookup_res(name, ip, arg);
		dhserial_set_mode(SM_NORMAL_MODE, 0, 0);
	}
	mIsCommandWorking = 0;
}
LOCAL void ICACHE_FLASH_ATTR ping_res_cb(const char *name, ip_addr_t *ip, void *arg) {
	nslookup_res(name, ip, arg);
	if (ip) {
		mCurrentPinopt.ip = ip->addr;
		mCurrentPinopt.count = 4;
		mCurrentPinopt.coarse_time = 1;
		mCurrentPinopt.recv_function = ping_cb;
		mCurrentPinopt.sent_function = ping_done_cb;
		mSent = 0;
		mRecieved = 0;
		mLost = 0;
		mTotalDelay  = 0;
		ping_start(&mCurrentPinopt);
	}
}
LOCAL void ICACHE_FLASH_ATTR ping_nslookup_cb(const char *name, ip_addr_t *ip, void *arg) {
	if(dhserial_get_mode() == SM_OUTPUT_MODE) {
		nslookup_res(name, ip, arg);
		if (ip) {
			mCurrentPinopt.ip = ip->addr;
			mCurrentPinopt.count = 4;
			mCurrentPinopt.coarse_time = 1;
			mCurrentPinopt.recv_function = ping_cb;
			mCurrentPinopt.sent_function = ping_done_cb;
			mSent = 0;
			mRecieved = 0;
			mLost = 0;
			mTotalDelay  = 0;
			ping_start(&mCurrentPinopt);
		} else {
			mIsCommandWorking = 0;
			dhserial_set_mode(SM_NORMAL_MODE, 0, 0);
		}
	} else {
		mIsCommandWorking = 0;
	}
}