You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
792 B

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