sctp_bindargs.c 572 B

12345678910111213141516171819202122232425
  1. #include "unp.h"
  2. int
  3. sctp_bind_arg_list(int sock_fd, char **argv, int argc)
  4. {
  5. struct addrinfo *addr;
  6. char *bindbuf, *p, portbuf[10];
  7. int addrcnt=0;
  8. int i;
  9. bindbuf = (char *)Calloc(argc, sizeof(struct sockaddr_storage));
  10. p = bindbuf;
  11. sprintf(portbuf, "%d", SERV_PORT);
  12. for( i=0; i<argc; i++ ) {
  13. addr = Host_serv(argv[i], portbuf, AF_UNSPEC, SOCK_SEQPACKET);
  14. memcpy(p, addr->ai_addr, addr->ai_addrlen);
  15. freeaddrinfo(addr);
  16. addrcnt++;
  17. p += addr->ai_addrlen;
  18. }
  19. Sctp_bindx(sock_fd,(SA *)bindbuf,addrcnt,SCTP_BINDX_ADD_ADDR);
  20. free(bindbuf);
  21. return(0);
  22. }