sctp_strcliecho.lc 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #define SCTP_MAXLINE 800## 1 ##src/sctp/sctp_strcliecho.c##
  2. void## 2 ##src/sctp/sctp_strcliecho.c##
  3. sctpstr_cli_echoall(FILE *fp, int sock_fd, struct sockaddr *to,## 3 ##src/sctp/sctp_strcliecho.c##
  4. socklen_t tolen)## 4 ##src/sctp/sctp_strcliecho.c##
  5. {## 5 ##src/sctp/sctp_strcliecho.c##
  6. struct sockaddr_in peeraddr;## 6 ##src/sctp/sctp_strcliecho.c##
  7. struct sctp_sndrcvinfo sri;## 7 ##src/sctp/sctp_strcliecho.c##
  8. char sendline[SCTP_MAXLINE], recvline[SCTP_MAXLINE];## 8 ##src/sctp/sctp_strcliecho.c##
  9. socklen_t len;## 9 ##src/sctp/sctp_strcliecho.c##
  10. int rd_sz, i, strsz;## 10 ##src/sctp/sctp_strcliecho.c##
  11. int msg_flags;## 11 ##src/sctp/sctp_strcliecho.c##
  12. bzero(sendline, sizeof(sendline));## 12 ##src/sctp/sctp_strcliecho.c##
  13. bzero(&sri, sizeof(sri));## 13 ##src/sctp/sctp_strcliecho.c##
  14. while (fgets(sendline, SCTP_MAXLINE - 9, fp) != NULL) {## 14 ##src/sctp/sctp_strcliecho.c##
  15. strsz = strlen(sendline);## 15 ##src/sctp/sctp_strcliecho.c##
  16. if (sendline[strsz - 1] == '\n') {## 16 ##src/sctp/sctp_strcliecho.c##
  17. sendline[strsz - 1] = '\0';## 17 ##src/sctp/sctp_strcliecho.c##
  18. strsz--;## 18 ##src/sctp/sctp_strcliecho.c##
  19. }## 19 ##src/sctp/sctp_strcliecho.c##
  20. for (i = 0; i < SERV_MAX_SCTP_STRM; i++) {## 20 ##src/sctp/sctp_strcliecho.c##
  21. snprintf(sendline + strsz, sizeof(sendline) - strsz,## 21 ##src/sctp/sctp_strcliecho.c##
  22. ".msg.%d", i);## 22 ##src/sctp/sctp_strcliecho.c##
  23. Sctp_sendmsg(sock_fd, sendline, sizeof(sendline),## 23 ##src/sctp/sctp_strcliecho.c##
  24. to, tolen, 0, 0, i, 0, 0);## 24 ##src/sctp/sctp_strcliecho.c##
  25. }## 25 ##src/sctp/sctp_strcliecho.c##
  26. for (i = 0; i < SERV_MAX_SCTP_STRM; i++) {## 26 ##src/sctp/sctp_strcliecho.c##
  27. len = sizeof(peeraddr);## 27 ##src/sctp/sctp_strcliecho.c##
  28. rd_sz = Sctp_recvmsg(sock_fd, recvline, sizeof(recvline),## 28 ##src/sctp/sctp_strcliecho.c##
  29. (SA *) &peeraddr, &len, &sri, &msg_flags);## 29 ##src/sctp/sctp_strcliecho.c##
  30. printf("From str:%d seq:%d (assoc:0x%x):",## 30 ##src/sctp/sctp_strcliecho.c##
  31. sri.sinfo_stream, sri.sinfo_ssn,## 31 ##src/sctp/sctp_strcliecho.c##
  32. (u_int) sri.sinfo_assoc_id);## 32 ##src/sctp/sctp_strcliecho.c##
  33. printf("%.*s\n", rd_sz, recvline);## 33 ##src/sctp/sctp_strcliecho.c##
  34. }## 34 ##src/sctp/sctp_strcliecho.c##
  35. }## 35 ##src/sctp/sctp_strcliecho.c##
  36. }## 36 ##src/sctp/sctp_strcliecho.c##