loop.lc 1.2 KB

1234567891011121314151617181920212223242526272829
  1. #include "unp.h"## 1 ##src/mysdr/loop.c##
  2. void## 2 ##src/mysdr/loop.c##
  3. loop(int sockfd, socklen_t salen)## 3 ##src/mysdr/loop.c##
  4. {## 4 ##src/mysdr/loop.c##
  5. char buf[MAXLINE + 1];## 5 ##src/mysdr/loop.c##
  6. socklen_t len;## 6 ##src/mysdr/loop.c##
  7. ssize_t n;## 7 ##src/mysdr/loop.c##
  8. struct sockaddr *sa;## 8 ##src/mysdr/loop.c##
  9. struct sap_packet {## 9 ##src/mysdr/loop.c##
  10. uint32_t sap_header;## 10 ##src/mysdr/loop.c##
  11. uint32_t sap_src;## 11 ##src/mysdr/loop.c##
  12. char sap_data[1];## 12 ##src/mysdr/loop.c##
  13. } *sapptr;## 13 ##src/mysdr/loop.c##
  14. sa = Malloc(salen);## 14 ##src/mysdr/loop.c##
  15. for (;;) {## 15 ##src/mysdr/loop.c##
  16. len = salen;## 16 ##src/mysdr/loop.c##
  17. n = Recvfrom(sockfd, buf, MAXLINE, 0, sa, &len);## 17 ##src/mysdr/loop.c##
  18. buf[n] = 0; /* null terminate */## 18 ##src/mysdr/loop.c##
  19. sapptr = (struct sap_packet *) buf;## 19 ##src/mysdr/loop.c##
  20. if ((n -= 2 * sizeof(uint32_t)) <= 0)## 20 ##src/mysdr/loop.c##
  21. err_quit("n = %d", n);## 21 ##src/mysdr/loop.c##
  22. printf("From %s\n%s\n", Sock_ntop(sa, len), sapptr->sap_data);## 22 ##src/mysdr/loop.c##
  23. }## 23 ##src/mysdr/loop.c##
  24. }## 24 ##src/mysdr/loop.c##