소스 검색

net: Make sure the ethaddr is updated in net_init()

NetConsole may call NetSendUDPPacket before NetLoop is called.  This
will cause the source MAC address (NetOurEther) to be wrong.  Instead
of only changing it in NetLoop, move it to NetLoopInit so that it is
also updated when net_init() is called (especially by nc_start()).

Signed-off-by: Joe Hershberger <joe.hershberger@ni.com>
Reported-by: Michael Walle <michael@walle.cc>
Acked-by: Michael Walle <michael@walle.cc>
Joe Hershberger 12 년 전
부모
커밋
a03d638805
1개의 변경된 파일1개의 추가작업 그리고 2개의 파일을 삭제
  1. 1 2
      net/net.c

+ 1 - 2
net/net.c

@@ -256,6 +256,7 @@ static void NetInitLoop(void)
 #endif
 		env_changed_id = env_id;
 	}
+	memcpy(NetOurEther, eth_get_dev()->enetaddr, 6);
 
 	return;
 }
@@ -322,8 +323,6 @@ int NetLoop(enum proto_t protocol)
 	}
 
 restart:
-	memcpy(NetOurEther, eth_get_dev()->enetaddr, 6);
-
 	net_set_state(NETLOOP_CONTINUE);
 
 	/*