Changeset 5184:ad300180eb6f in roaraudio
- Timestamp:
- 10/22/11 18:21:47 (12 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- libroar
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
libroar/error.c
r5183 r5184 920 920 {ROAR_ERROR_NONE, "No error"}, 921 921 {ROAR_ERROR_PERM, "Operation not permitted"}, 922 {ROAR_ERROR_NOENT, "No such object, file or directory"},922 {ROAR_ERROR_NOENT, "No such object, file, directory or node"}, 923 923 {ROAR_ERROR_BADMSG, "Bad message"}, 924 924 {ROAR_ERROR_BUSY, "Device or resource busy"}, -
libroar/socket.c
r5148 r5184 498 498 #ifdef ROAR_HAVE_IPX 499 499 #define _NEED_OBJ 500 #endif 501 #if defined(ROAR_HAVE_IPX) || defined(ROAR_HAVE_GETADDRINFO) 500 502 int ret; 501 503 #endif … … 551 553 552 554 ROAR_DBG("roar_socket_open(mode=%i, type=%i, host='%s', port=%i) = ?", mode, type, host, port); 555 556 roar_err_set(ROAR_ERROR_UNKNOWN); 553 557 554 558 if ( mode == MODE_LISTEN ) … … 588 592 if ( del == NULL ) { 589 593 ROAR_WARN("roar_socket_open(*): invalid hostname for DECnet: %s", host); 594 roar_err_set(ROAR_ERROR_INVAL); 590 595 return -1; 591 596 } … … 610 615 *del = ':'; 611 616 return fh; 612 // return -1; // listen sockets on DECnet are not supportet at the moment613 617 } else { 614 618 // There is nothing wrong in this case to use dnet_conn() so we do. … … 620 624 } 621 625 #else 626 roar_err_set(ROAR_ERROR_AFNOTSUP); 622 627 return -1; // no decnet support 623 628 #endif … … 660 665 snprintf(port_as_string, sizeof(port_as_string), "%i", port); 661 666 662 if ( getaddrinfo(host, port_as_string, &hints, &res) != 0 ) 667 ret = getaddrinfo(host, port_as_string, &hints, &res); 668 switch (ret) { 669 case 0: /* no error */; break; 670 case EAI_ADDRFAMILY: roar_err_set(ROAR_ERROR_NOENT); break; 671 case EAI_AGAIN: roar_err_set(ROAR_ERROR_AGAIN); break; 672 case EAI_BADFLAGS: roar_err_set(ROAR_ERROR_INVAL); break; 673 case EAI_FAIL: roar_err_set(ROAR_ERROR_RIO); break; 674 case EAI_FAMILY: roar_err_set(ROAR_ERROR_AFNOTSUP); break; 675 case EAI_MEMORY: roar_err_set(ROAR_ERROR_NOMEM); break; 676 case EAI_NODATA: roar_err_set(ROAR_ERROR_NODATA); break; 677 case EAI_NONAME: roar_err_set(ROAR_ERROR_NOENT); break; 678 case EAI_SERVICE: roar_err_set(ROAR_ERROR_PROTONOSUP); break; 679 case EAI_SOCKTYPE: roar_err_set(ROAR_ERROR_INVAL); break; 680 case EAI_SYSTEM: roar_err_from_errno(); break; 681 default: 682 roar_err_set(ROAR_ERROR_UNKNOWN); 683 break; 684 } 685 if ( ret != 0 ) 663 686 return -1; 664 687 … … 682 705 ROAR_ERR("roar_socket_open(*): Can\'t resolve host name '%s'", 683 706 host); 707 roar_err_from_errno(); 684 708 return -1; 685 709 } … … 710 734 if ( mode_func(fh, (struct sockaddr *)&socket_addr.sa, addrlen) == -1 ) { 711 735 ROAR_DBG("roar_socket_open(*): Can not connect/bind: %s", strerror(errno)); 736 roar_err_from_errno(); 712 737 close(fh); 713 738 return -1; … … 720 745 #else 721 746 ROAR_DBG("roar_socket_open(*) = -1 // no IPv4 or IPv6 support"); 747 roar_err_set(ROAR_ERROR_AFNOTSUP); 722 748 return -1; 723 749 #endif … … 737 763 if ( mode_func(fh, (struct sockaddr *)&socket_addr.un, sizeof(struct sockaddr_un)) == -1 ) { 738 764 ROAR_DBG("roar_socket_open(*): Can not connect/bind: %s", strerror(errno)); 765 roar_err_from_errno(); 739 766 close(fh); 740 767 return -1; … … 742 769 #else 743 770 ROAR_ERR("roar_socket_open(*): There is no UNIX Domain Socket support in win32, download a real OS."); 771 roar_err_set(ROAR_ERROR_AFNOTSUP); 744 772 return -1; 745 773 #endif … … 766 794 767 795 close(fh); 768 return -1; 769 #else 796 roar_err_set(ROAR_ERROR_NOSYS); 797 return -1; 798 #else 799 roar_err_set(ROAR_ERROR_AFNOTSUP); 770 800 return -1; 771 801 #endif … … 775 805 return roar_socket_open_file(mode, host, port); 776 806 } else { 807 roar_err_set(ROAR_ERROR_AFNOTSUP); 777 808 return -1; 778 809 } … … 781 812 #if defined(ROAR_HAVE_BSDSOCKETS) || defined(ROAR_TARGET_WIN32) 782 813 if ( listen(fh, ROAR_SOCKET_QUEUE_LEN) == -1 ) { 814 roar_err_from_errno(); 783 815 close(fh); 784 816 return -1; 785 817 } 786 818 #else 819 roar_err_set(ROAR_ERROR_NOSYS); 787 820 return -1; 788 821 #endif
Note: See TracChangeset
for help on using the changeset viewer.