sctp_check_notify.lc 1.8 KB

12345678910111213141516171819202122232425262728
  1. void## 1 ##src/sctp/sctp_check_notify.c##
  2. check_notification(int sock_fd, char *recvline, int rd_len)## 2 ##src/sctp/sctp_check_notify.c##
  3. {## 3 ##src/sctp/sctp_check_notify.c##
  4. union sctp_notification *snp;## 4 ##src/sctp/sctp_check_notify.c##
  5. struct sctp_assoc_change *sac;## 5 ##src/sctp/sctp_check_notify.c##
  6. struct sockaddr_storage *sal, *sar;## 6 ##src/sctp/sctp_check_notify.c##
  7. int num_rem, num_loc;## 7 ##src/sctp/sctp_check_notify.c##
  8. snp = (union sctp_notification *) recvline;## 8 ##src/sctp/sctp_check_notify.c##
  9. if (snp->sn_header.sn_type == SCTP_ASSOC_CHANGE) {## 9 ##src/sctp/sctp_check_notify.c##
  10. sac = &snp->sn_assoc_change;## 10 ##src/sctp/sctp_check_notify.c##
  11. if ((sac->sac_state == SCTP_COMM_UP) ||## 11 ##src/sctp/sctp_check_notify.c##
  12. (sac->sac_state == SCTP_RESTART)) {## 12 ##src/sctp/sctp_check_notify.c##
  13. num_rem = sctp_getpaddrs(sock_fd, sac->sac_assoc_id, &sar);## 13 ##src/sctp/sctp_check_notify.c##
  14. printf("There are %d remote addresses and they are:\n", num_rem);## 14 ##src/sctp/sctp_check_notify.c##
  15. sctp_print_addresses(sar, num_rem);## 15 ##src/sctp/sctp_check_notify.c##
  16. sctp_freepaddrs(sar);## 16 ##src/sctp/sctp_check_notify.c##
  17. num_loc = sctp_getladdrs(sock_fd, sac->sac_assoc_id, &sal);## 17 ##src/sctp/sctp_check_notify.c##
  18. printf("There are %d local addresses and they are:\n", num_loc);## 18 ##src/sctp/sctp_check_notify.c##
  19. sctp_print_addresses(sal, num_loc);## 19 ##src/sctp/sctp_check_notify.c##
  20. sctp_freeladdrs(sal);## 20 ##src/sctp/sctp_check_notify.c##
  21. }## 21 ##src/sctp/sctp_check_notify.c##
  22. }## 22 ##src/sctp/sctp_check_notify.c##
  23. }## 23 ##src/sctp/sctp_check_notify.c##