#include "rcs_defs.hh"
#include "sokintrf.h"
#include "rcs_prnt.hh"
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
Include dependency graph for sokintrf.c:
Go to the source code of this file.
Defines | |
#define | MAKEWORD(a, b) ((unsigned short) (((unsigned char) (a)) | ((unsigned short) ((unsigned char) (b)) << 8))) |
Enumerations | |
enum | SOCKET_AVAILABILITY { SOCKET_AVAIL_NOT_CHECKED, SOCKETS_AVAILABLE, SOCKETS_NOT_AVAILABLE } |
Functions | |
int RCS_EXPORT | load_socket_interface () |
void RCS_EXPORT | unload_socket_interface () |
int | dl_fd_isset (SOCKET s, fd_set RCS_FAR *set) |
int | dl_accept (SOCKET s, struct sockaddr *name, int *plen) |
int RCS_EXPORT | dl_bind (SOCKET s, struct sockaddr *name, int port) |
int RCS_EXPORT | dl_closesocket (SOCKET s) |
int RCS_EXPORT | dl_ioctlsocket (SOCKET s, long cmd, unsigned long *argp) |
unsigned long RCS_EXPORT | dl_htonl (unsigned long hostlong) |
unsigned long RCS_EXPORT | dl_ntohl (unsigned long netlong) |
unsigned short RCS_EXPORT | dl_htons (unsigned short hostshort) |
unsigned short RCS_EXPORT | dl_ntohs (unsigned short netshort) |
unsigned long RCS_EXPORT | dl_inet_addr (char *addr_string) |
char RCS_EXPORT * | dl_inet_ntoa (struct in_addr in) |
int RCS_EXPORT | dl_inet_netof (struct in_addr addr) |
int RCS_EXPORT | dl_gethostname (char *hostname, int maxlen) |
in_addr | dl_inet_makeaddr (const int net, const int lna) |
int RCS_EXPORT | dl_listen (SOCKET s, int backlog) |
int RCS_EXPORT | dl_recv (SOCKET s, char *buf, int size, int flags) |
int RCS_EXPORT | dl_send (SOCKET s, char *buf, int size, int flags) |
int RCS_EXPORT | dl_recvfrom (SOCKET s, char *buf, int size, int flags, struct sockaddr *from, int *namelen) |
int RCS_EXPORT | dl_sendto (SOCKET s, char *buf, int size, int flags, struct sockaddr *to, int namelen) |
int RCS_EXPORT | dl_select (int maxfd, fd_set *read_fds, fd_set *write_fds, fd_set *except_fds, struct timeval RCS_FAR *timeout) |
SOCKET RCS_EXPORT | dl_socket (int domain, int type, int protocol) |
int RCS_EXPORT | dl_connect (SOCKET s, struct sockaddr *name, int namelen) |
int RCS_EXPORT | dl_gethostbyname (char *hostname, struct hostent **hpp) |
int RCS_EXPORT | dl_setsockopt (SOCKET s, int level, int opt, char RCS_FAR *optval, int len) |
Variables | |
int | WSA_count = 0 |
enum SOCKET_AVAILABILITY | socket_availability = SOCKET_AVAIL_NOT_CHECKED |
|
Definition at line 12 of file sokintrf.c. Referenced by load_socket_interface().
|
|
Definition at line 100 of file sokintrf.c. 00101 { 00102 SOCKET_AVAIL_NOT_CHECKED, 00103 SOCKETS_AVAILABLE, 00104 SOCKETS_NOT_AVAILABLE 00105 }; |
|
Definition at line 254 of file sokintrf.c. Referenced by CMS_SERVER_REMOTE_UDP_PORT::CMS_SERVER_REMOTE_UDP_PORT(), STCPMEM::STCPMEM(), TCPMEM::TCPMEM(), TCPSVR_BLOCKING_READ_REQUEST::TCPSVR_BLOCKING_READ_REQUEST(), UDPMEM::UDPMEM(), and CMS::setup_diag_proc_info().
00255 { 00256 #if !defined(_WINDOWS) 00257 socket_availability = SOCKETS_AVAILABLE; 00258 return 0; 00259 #else 00260 short winsock_version; 00261 int wsa_startup_retval; 00262 WSADATA startup_data; 00263 00264 if (SOCKETS_NOT_AVAILABLE == socket_availability) 00265 { 00266 return -1; 00267 } 00268 if (SOCKETS_AVAILABLE == socket_availability) 00269 { 00270 return 0; 00271 } 00272 socket_availability = SOCKETS_NOT_AVAILABLE; 00273 00274 #if defined(USE_DYNAMICALLY_LOADED_POINTERS) 00275 #if defined(WIN32) 00276 socket_library_instance = LoadLibrary ("wsock32.dll"); 00277 if (socket_library_instance == NULL) 00278 { 00279 rcs_print_error ("Error on LoadLibrary(" "wsock32.dll" ")\n"); 00280 return -1; 00281 } 00282 #else 00283 socket_library_instance = (void RCS_FAR *) LoadLibrary ("winsock.dll"); 00284 if (((int) socket_library_instance) < HINSTANCE_ERROR) 00285 { 00286 rcs_print_error ("Error %d from LoadLibrary(" "winsock.dll" ")\n", 00287 socket_library_instance); 00288 return -1; 00289 } 00290 #endif 00291 ptr_to_wsastartup = (PTR_TO_WSASTARTUP) GetProc ("WSAStartup"); 00292 if (NULL == ptr_to_wsastartup) 00293 { 00294 rcs_print_error ("Cannot find WSAStartup function.\n"); 00295 return -1; 00296 } 00297 ptr_to_wsacleanup = (PTR_TO_WSACLEANUP) GetProc ("WSACleanup"); 00298 if (NULL == ptr_to_wsacleanup) 00299 { 00300 rcs_print_error ("Cannot find WSACleanup function.\n"); 00301 return -1; 00302 } 00303 ptr_to_wsagetlasterror = (PTR_TO_WSAGETLASTERROR) 00304 GetProc ("WSAGetLastError"); 00305 if (NULL == ptr_to_wsagetlasterror) 00306 { 00307 rcs_print_error ("Cannot find WSAGetLastError function.\n"); 00308 return -1; 00309 } 00310 ptr_to_wsaisfdset = (PTR_TO_WSAISFDSET) GetProc ("__WSAFDIsSet"); 00311 if (NULL == ptr_to_wsaisfdset) 00312 { 00313 rcs_print_error ("Cannot find WSAGetLastError function.\n"); 00314 return -1; 00315 } 00316 ptr_to_socket = (PTR_TO_SOCKET) GetProc ("socket"); 00317 if (NULL == ptr_to_socket) 00318 { 00319 rcs_print_error ("Cannot find socket function.\n"); 00320 return -1; 00321 } 00322 ptr_to_closesocket = (PTR_TO_CLOSESOCKET) GetProc ("closesocket"); 00323 if (NULL == ptr_to_closesocket) 00324 { 00325 rcs_print_error ("Cannot find closesocket function.\n"); 00326 return -1; 00327 } 00328 ptr_to_bind = (PTR_TO_BIND) GetProc ("bind"); 00329 if (NULL == ptr_to_bind) 00330 { 00331 rcs_print_error ("Cannot find bind function.\n"); 00332 return -1; 00333 } 00334 ptr_to_connect = (PTR_TO_CONNECT) GetProc ("connect"); 00335 if (NULL == ptr_to_connect) 00336 { 00337 rcs_print_error ("Cannot find connect function.\n"); 00338 return -1; 00339 } 00340 ptr_to_accept = (PTR_TO_ACCEPT) GetProc ("accept"); 00341 if (NULL == ptr_to_accept) 00342 { 00343 rcs_print_error ("Cannot find accept function.\n"); 00344 return -1; 00345 } 00346 ptr_to_listen = (PTR_TO_LISTEN) GetProc ("listen"); 00347 if (NULL == ptr_to_listen) 00348 { 00349 rcs_print_error ("Cannot find listen function.\n"); 00350 return -1; 00351 } 00352 ptr_to_select = (PTR_TO_SELECT) GetProc ("select"); 00353 if (NULL == ptr_to_select) 00354 { 00355 rcs_print_error ("Cannot find select function.\n"); 00356 return -1; 00357 } 00358 ptr_to_send = (PTR_TO_SEND) GetProc ("send"); 00359 if (NULL == ptr_to_send) 00360 { 00361 rcs_print_error ("Cannot find send function.\n"); 00362 return -1; 00363 } 00364 ptr_to_recv = (PTR_TO_RECV) GetProc ("recv"); 00365 if (NULL == ptr_to_recv) 00366 { 00367 rcs_print_error ("Cannot find recv function.\n"); 00368 return -1; 00369 } 00370 ptr_to_sendto = (PTR_TO_SENDTO) GetProc ("sendto"); 00371 if (NULL == ptr_to_sendto) 00372 { 00373 rcs_print_error ("Cannot find sendto function.\n"); 00374 return -1; 00375 } 00376 ptr_to_recvfrom = (PTR_TO_RECVFROM) GetProc ("recvfrom"); 00377 if (NULL == ptr_to_recvfrom) 00378 { 00379 rcs_print_error ("Cannot find recvfrom function.\n"); 00380 return -1; 00381 } 00382 ptr_to_inet_addr = (PTR_TO_INET_ADDR) GetProc ("inet_addr"); 00383 if (NULL == ptr_to_inet_addr) 00384 { 00385 rcs_print_error ("Cannot find inet_addr function.\n"); 00386 return -1; 00387 } 00388 ptr_to_inet_ntoa = (PTR_TO_INET_NTOA) GetProc ("inet_ntoa"); 00389 if (NULL == ptr_to_inet_ntoa) 00390 { 00391 rcs_print_error ("Cannot find inet_ntoa function.\n"); 00392 return -1; 00393 } 00394 00395 ptr_to_htonl = (PTR_TO_HTONL) GetProc ("htonl"); 00396 if (NULL == ptr_to_htonl) 00397 { 00398 rcs_print_error ("Cannot find htonl function.\n"); 00399 return -1; 00400 } 00401 ptr_to_htons = (PTR_TO_HTONS) GetProc ("htons"); 00402 if (NULL == ptr_to_htons) 00403 { 00404 rcs_print_error ("Cannot find htons function.\n"); 00405 return -1; 00406 } 00407 ptr_to_ntohl = (PTR_TO_NTOHL) GetProc ("ntohl"); 00408 if (NULL == ptr_to_ntohl) 00409 { 00410 rcs_print_error ("Cannot find ntohl function.\n"); 00411 return -1; 00412 } 00413 ptr_to_ntohs = (PTR_TO_NTOHS) GetProc ("ntohs"); 00414 if (NULL == ptr_to_ntohs) 00415 { 00416 rcs_print_error ("Cannot find ntohs function.\n"); 00417 return -1; 00418 } 00419 ptr_to_setsockopt = (PTR_TO_SETSOCKOPT) GetProc ("setsockopt"); 00420 if (NULL == ptr_to_setsockopt) 00421 { 00422 rcs_print_error ("Cannot find setsockopt function.\n"); 00423 return -1; 00424 } 00425 ptr_to_ioctlsocket = (PTR_TO_IOCTLSOCKET) GetProc ("ioctlsocket"); 00426 if (NULL == ptr_to_ioctlsocket) 00427 { 00428 rcs_print_error ("Cannot find ioctlsocket function.\n"); 00429 return -1; 00430 } 00431 ptr_to_gethostbyname = (PTR_TO_GETHOSTBYNAME) GetProc ("gethostbyname"); 00432 if (NULL == ptr_to_gethostbyname) 00433 { 00434 rcs_print_error ("Cannot find gethostbyname function.\n"); 00435 return -1; 00436 } 00437 00438 winsock_version = MAKEWORD (2, 0); 00439 wsa_startup_retval = (*ptr_to_wsastartup) (winsock_version, &startup_data); 00440 if (wsa_startup_retval) 00441 { 00442 rcs_print_error ("Error %d from WSAStartup.\n", wsa_startup_retval); 00443 return -1; 00444 } 00445 socket_availability = SOCKETS_AVAILABLE; 00446 #else /* USE_DYNAMICALLY_LOADED_POINTERS */ 00447 #ifdef USE_WINSOCK 00448 winsock_version = MAKEWORD (2, 0); 00449 wsa_startup_retval = WSAStartup (winsock_version, &startup_data); 00450 if (wsa_startup_retval) 00451 { 00452 rcs_print_error ("Error %d from WSAStartup.\n", wsa_startup_retval); 00453 return -1; 00454 } 00455 socket_availability = SOCKETS_AVAILABLE; 00456 return 0; 00457 #endif 00458 #endif /* USE_DYNAMICALLY_LOADED_POINTERS */ 00459 00460 #endif 00461 } |
|
Definition at line 464 of file sokintrf.c. Referenced by STCPMEM::~STCPMEM(), TCPMEM::~TCPMEM(), and UDPMEM::~UDPMEM().
00465 { 00466 #ifdef USE_DYNAMICALLY_LOADED_POINTERS 00467 if (SOCKETS_AVAILABLE == socket_availability 00468 && NULL != ptr_to_wsacleanup && socket_library_instance != NULL) 00469 { 00470 (*ptr_to_wsacleanup) (); 00471 FreeLibrary (socket_library_instance); 00472 } 00473 socket_library_instance = NULL; 00474 ptr_to_wsastartup = NULL; 00475 ptr_to_wsagetlasterror = NULL; 00476 ptr_to_wsacleanup = NULL; 00477 #endif /* USE_DYNAMICALLY_LOADED_POINTERS */ 00478 socket_availability = SOCKET_AVAIL_NOT_CHECKED; 00479 00480 } |
|
Definition at line 505 of file sokintrf.c. 00506 { 00507 #if !defined(_WINDOWS) || !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00508 return ((int) FD_ISSET (s, set)); 00509 #else 00510 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_wsaisfdset) 00511 { 00512 rcs_print_error ("Can not call __WSAFDIsSet.\n"); 00513 return 0; 00514 } 00515 return (*ptr_to_wsaisfdset) (s, set); 00516 #endif 00517 } |
|
Definition at line 521 of file sokintrf.c. 00522 { 00523 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00524 return accept (s, name, plen); 00525 #else 00526 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_accept) 00527 { 00528 rcs_print_error ("Cannot call accept ().\n"); 00529 return -1; 00530 } 00531 return (*ptr_to_accept) (s, name, plen); 00532 #endif 00533 } |
|
Definition at line 537 of file sokintrf.c. 00538 { 00539 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00540 return bind (s, name, port); 00541 #else 00542 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_bind) 00543 { 00544 rcs_print_error ("Cannot call bind ().\n"); 00545 return -1; 00546 } 00547 return (*ptr_to_bind) (s, name, port); 00548 #endif 00549 } |
|
Definition at line 552 of file sokintrf.c. 00553 { 00554 #ifndef USE_WINSOCK 00555 return close (s); 00556 #else 00557 #ifdef USE_DYNAMICALLY_LOADED_POINTERS 00558 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_closesocket) 00559 { 00560 rcs_print_error ("Cannot call closesocket ().\n"); 00561 return -1; 00562 } 00563 return (*ptr_to_closesocket) (s); 00564 #else 00565 return closesocket (s); 00566 #endif 00567 #endif 00568 } |
|
Definition at line 571 of file sokintrf.c. 00572 { 00573 #ifndef USE_WINSOCK 00574 #ifndef VXWORKS 00575 #if defined(MSDOS) && !defined(_Windows) 00576 return tk_ioctl (s, (int) cmd, (int *) argp); 00577 #else 00578 return ioctl (s, (int) cmd, (caddr_t) argp); 00579 #endif 00580 #else 00581 return ioctl (s, (int) cmd, (int) argp); 00582 #endif 00583 #else 00584 #ifdef USE_DYNAMICALLY_LOADED_POINTERS 00585 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_ioctlsocket) 00586 { 00587 rcs_print_error ("Cannot call ioctlsocket ().\n"); 00588 return -1; 00589 } 00590 return (*ptr_to_ioctlsocket) (s, cmd, argp); 00591 #else 00592 return ioctlsocket (s, cmd, argp); 00593 #endif 00594 #endif 00595 } |
|
Definition at line 598 of file sokintrf.c. 00599 { 00600 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00601 return htonl (hostlong); 00602 #else 00603 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_htonl) 00604 { 00605 rcs_print_error ("Cannot call htonl ().\n"); 00606 return hostlong; 00607 } 00608 return (*ptr_to_htonl) (hostlong); 00609 #endif 00610 } |
|
Definition at line 613 of file sokintrf.c. 00614 { 00615 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00616 return ntohl (netlong); 00617 #else 00618 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_ntohl) 00619 { 00620 rcs_print_error ("Cannot call ntohl ().\n"); 00621 return netlong; 00622 } 00623 return (*ptr_to_ntohl) (netlong); 00624 #endif 00625 } |
|
Definition at line 628 of file sokintrf.c. 00629 { 00630 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00631 return htons (hostshort); 00632 #else 00633 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_htons) 00634 { 00635 rcs_print_error ("Cannot call htons ().\n"); 00636 return hostshort; 00637 } 00638 return (*ptr_to_htons) (hostshort); 00639 #endif 00640 } |
|
Definition at line 644 of file sokintrf.c. 00645 { 00646 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00647 return ntohs (netshort); 00648 #else 00649 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_ntohs) 00650 { 00651 rcs_print_error ("Cannot call ntohs ().\n"); 00652 return netshort; 00653 } 00654 return (*ptr_to_ntohs) (netshort); 00655 #endif 00656 } |
|
Definition at line 659 of file sokintrf.c. 00660 { 00661 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00662 return inet_addr (addr_string); 00663 #else 00664 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_inet_addr) 00665 { 00666 rcs_print_error ("Cannot call inet_addr ().\n"); 00667 return 0; 00668 } 00669 return (*ptr_to_inet_addr) (addr_string); 00670 #endif 00671 } |
|
Definition at line 674 of file sokintrf.c. 00675 { 00676 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00677 return (char *) inet_ntoa (in); 00678 #else 00679 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_inet_ntoa) 00680 { 00681 rcs_print_error ("Cannot call inet_ntoa ().\n"); 00682 return NULL; 00683 } 00684 return (*ptr_to_inet_ntoa) (in); 00685 #endif 00686 } |
|
Definition at line 689 of file sokintrf.c. 00690 { 00691 #ifdef WINDOWS 00692 return addr.S_un.S_addr & 0xffffff00; 00693 #else 00694 return inet_netof (addr); 00695 #endif 00696 } |
|
Definition at line 699 of file sokintrf.c. 00700 { 00701 return gethostname (hostname, maxlen); 00702 } |
|
Definition at line 705 of file sokintrf.c. |
|
Definition at line 717 of file sokintrf.c. 00718 { 00719 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00720 return listen (s, backlog); 00721 #else 00722 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_listen) 00723 { 00724 rcs_print_error ("Cannot call listen ().\n"); 00725 return -1; 00726 } 00727 return (*ptr_to_listen) (s, backlog); 00728 #endif 00729 } |
|
Definition at line 732 of file sokintrf.c. 00733 { 00734 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00735 return recv (s, buf, size, flags); 00736 #else 00737 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_recv) 00738 { 00739 rcs_print_error ("Cannot call recv ().\n"); 00740 return -1; 00741 } 00742 return (*ptr_to_recv) (s, buf, size, flags); 00743 #endif 00744 } |
|
Definition at line 747 of file sokintrf.c. 00748 { 00749 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00750 return send (s, buf, size, flags); 00751 #else 00752 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_send) 00753 { 00754 rcs_print_error ("Cannot call recv ().\n"); 00755 return -1; 00756 } 00757 return (*ptr_to_send) (s, buf, size, flags); 00758 #endif 00759 } |
|
Definition at line 762 of file sokintrf.c. 00764 { 00765 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00766 return recvfrom (s, buf, size, flags, from, namelen); 00767 #else 00768 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_recvfrom) 00769 { 00770 rcs_print_error ("Cannot call recvfrom ().\n"); 00771 return -1; 00772 } 00773 return (*ptr_to_recvfrom) (s, buf, size, flags, from, namelen); 00774 #endif 00775 } |
|
Definition at line 778 of file sokintrf.c. 00780 { 00781 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00782 return sendto (s, buf, size, flags, to, namelen); 00783 #else 00784 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_sendto) 00785 { 00786 rcs_print_error ("Cannot call sendto ().\n"); 00787 return -1; 00788 } 00789 return (*ptr_to_sendto) (s, buf, size, flags, to, namelen); 00790 #endif 00791 } |
|
Definition at line 794 of file sokintrf.c. 00796 { 00797 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00798 #ifdef MSDOS 00799 struct timeval far *temp = timeout; 00800 return select (maxfd, read_fds, write_fds, except_fds, 00801 ((struct timeval far *) temp)); 00802 #else 00803 return select (maxfd, read_fds, write_fds, except_fds, timeout); 00804 #endif 00805 #else 00806 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_select) 00807 { 00808 rcs_print_error ("Cannot call select ().\n"); 00809 return -1; 00810 } 00811 return (*ptr_to_select) (maxfd, read_fds, write_fds, except_fds, timeout); 00812 #endif 00813 } |
|
Definition at line 816 of file sokintrf.c. 00817 { 00818 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00819 return socket (domain, type, protocol); 00820 #else 00821 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_socket) 00822 { 00823 rcs_print_error ("Cannot call socket ().\n"); 00824 return -1; 00825 } 00826 return (*ptr_to_socket) (domain, type, protocol); 00827 #endif 00828 } |
|
Definition at line 831 of file sokintrf.c. 00832 { 00833 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00834 return connect (s, name, namelen); 00835 #else 00836 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_connect) 00837 { 00838 rcs_print_error ("Cannot call connect ().\n"); 00839 return -1; 00840 } 00841 return (*ptr_to_connect) (s, name, namelen); 00842 #endif 00843 } |
|
Definition at line 847 of file sokintrf.c. 00848 { 00849 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00850 #ifdef VXWORKS 00851 rcs_print_error 00852 ("VxWorks programs must use hostGetByName() rather than dl_gethostbyname()."); 00853 return NULL; 00854 #else 00855 *hpp = (struct hostent *) gethostbyname (hostname); 00856 return 0; 00857 #endif 00858 #else 00859 if (socket_availability != SOCKETS_AVAILABLE 00860 || NULL == ptr_to_gethostbyname) 00861 { 00862 rcs_print_error ("Cannot call gethostbyname ().\n"); 00863 return -1; 00864 } 00865 *hpp = (*ptr_to_gethostbyname) (hostname); 00866 return 0; 00867 #endif 00868 } |
|
Definition at line 872 of file sokintrf.c. 00873 { 00874 #if !defined(USE_DYNAMICALLY_LOADED_POINTERS) 00875 return setsockopt (s, level, opt, optval, len); 00876 #else 00877 if (socket_availability != SOCKETS_AVAILABLE || NULL == ptr_to_setsockopt) 00878 { 00879 rcs_print_error ("Cannot call setsockopt().\n"); 00880 return -1; 00881 } 00882 return (*ptr_to_setsockopt) (s, level, opt, optval, len); 00883 #endif 00884 } |
|
Definition at line 16 of file sokintrf.c. |
|
Definition at line 106 of file sokintrf.c. |