sctp_strcliecho2.lc 3.1 KB

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