sctp_strcli_un.lc 2.1 KB

123456789101112131415161718192021222324252627282930313233
  1. #include "unp.h"## 1 ##src/sctp/sctp_strcli_un.c##
  2. void## 2 ##src/sctp/sctp_strcli_un.c##
  3. sctpstr_cli(FILE *fp, int sock_fd, struct sockaddr *to, socklen_t tolen)## 3 ##src/sctp/sctp_strcli_un.c##
  4. {## 4 ##src/sctp/sctp_strcli_un.c##
  5. struct sockaddr_in peeraddr;## 5 ##src/sctp/sctp_strcli_un.c##
  6. struct sctp_sndrcvinfo sri;## 6 ##src/sctp/sctp_strcli_un.c##
  7. char sendline[MAXLINE], recvline[MAXLINE];## 7 ##src/sctp/sctp_strcli_un.c##
  8. socklen_t len;## 8 ##src/sctp/sctp_strcli_un.c##
  9. int out_sz, rd_sz;## 9 ##src/sctp/sctp_strcli_un.c##
  10. int msg_flags;## 10 ##src/sctp/sctp_strcli_un.c##
  11. bzero(&sri, sizeof(sri));## 11 ##src/sctp/sctp_strcli_un.c##
  12. while (fgets(sendline, MAXLINE, fp) != NULL) {## 12 ##src/sctp/sctp_strcli_un.c##
  13. if (sendline[0] != '[') {## 13 ##src/sctp/sctp_strcli_un.c##
  14. printf("Error, line must be of the form '[streamnum]text'\n");## 14 ##src/sctp/sctp_strcli_un.c##
  15. continue;## 15 ##src/sctp/sctp_strcli_un.c##
  16. }## 16 ##src/sctp/sctp_strcli_un.c##
  17. sri.sinfo_stream = strtol(&sendline[1], NULL, 0);## 17 ##src/sctp/sctp_strcli_un.c##
  18. /* include mod_unordered */## 18 ##src/sctp/sctp_strcli_un.c##
  19. out_sz = strlen(sendline);## 19 ##src/sctp/sctp_strcli_un.c##
  20. Sctp_sendmsg(sock_fd, sendline, out_sz,## 20 ##src/sctp/sctp_strcli_un.c##
  21. to, tolen, 0, MSG_UNORDERED, sri.sinfo_stream, 0, 0);## 21 ##src/sctp/sctp_strcli_un.c##
  22. /* end mod_unordered */## 22 ##src/sctp/sctp_strcli_un.c##
  23. len = sizeof(peeraddr);## 23 ##src/sctp/sctp_strcli_un.c##
  24. rd_sz = Sctp_recvmsg(sock_fd, recvline, sizeof(recvline),## 24 ##src/sctp/sctp_strcli_un.c##
  25. (SA *) &peeraddr, &len, &sri, &msg_flags);## 25 ##src/sctp/sctp_strcli_un.c##
  26. printf("From str:%d seq:%d (assoc:0x%x):",## 26 ##src/sctp/sctp_strcli_un.c##
  27. sri.sinfo_stream, sri.sinfo_ssn, (u_int) sri.sinfo_assoc_id);## 27 ##src/sctp/sctp_strcli_un.c##
  28. printf("%.*s", rd_sz, recvline);## 28 ##src/sctp/sctp_strcli_un.c##
  29. }## 29 ##src/sctp/sctp_strcli_un.c##
  30. }## 30 ##src/sctp/sctp_strcli_un.c##