--- a/main.c
|
|
+++ b/main.c
|
|
@@ -187,6 +187,17 @@ static void sighandler(int signum) {
|
|
signal(signum, SIG_DFL);
|
|
}
|
|
|
|
+// Waits for nonzero MAC
|
|
+static void get_nonzero_mac(u8_t mac[], u32_t timeout_ms) {
|
|
+ u32_t wait_timeout = gettime_ms() + timeout_ms;
|
|
+ do{
|
|
+ get_mac(mac);
|
|
+ if ((mac[0]+mac[1]+mac[2]+mac[3]+mac[4]+mac[5]) != 0) {
|
|
+ break;
|
|
+ }
|
|
+ }while(wait_timeout > gettime_ms());
|
|
+}
|
|
+
|
|
int main(int argc, char **argv) {
|
|
char *server = NULL;
|
|
char *output_device = "default";
|
|
@@ -240,7 +251,8 @@ int main(int argc, char **argv) {
|
|
#define MAXCMDLINE 512
|
|
char cmdline[MAXCMDLINE] = "";
|
|
|
|
- get_mac(mac);
|
|
+ // Waits for nonzero MAC
|
|
+ get_nonzero_mac(mac,10000);
|
|
|
|
for (i = 0; i < argc && (strlen(argv[i]) + strlen(cmdline) + 2 < MAXCMDLINE); i++) {
|
|
strcat(cmdline, argv[i]);
|