Changeset 1466 for trunk/src/wsock32/wsock32.cpp
- Timestamp:
- Oct 27, 1999, 1:59:20 AM (26 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wsock32/wsock32.cpp
r1385 r1466 1 /* $Id: wsock32.cpp,v 1. 9 1999-10-20 20:41:54phaller Exp $ */1 /* $Id: wsock32.cpp,v 1.10 1999-10-26 23:59:19 phaller Exp $ */ 2 2 3 3 /* … … 9 9 * 1998/08/25 Vince Vielhaber 10 10 * 11 * @(#) wsock32.c 11 * @(#) wsock32.c 1.0.0 1998/08/25 VV initial release 12 12 * 1.0.1 1999/04/27 VV cleanup and implement select. 13 13 * 14 14 */ 15 15 16 17 /* TODO 18 - correct return codes for all API calls 19 - correctly translate return codes to WSock style 20 */ 16 21 17 22 /***************************************************************************** … … 134 139 *****************************************************************************/ 135 140 136 void SetErrForDatabaseCalls(void) 137 { 138 switch(h_errno) 141 #define CASEERR2(a) case SOC##a: case a: return WSA##a; 142 #define CASEERR1(a) case SOC##a: return WSA##a; 143 144 int iTranslateSockErrToWSock(int iError) 145 { 146 switch(iError) 139 147 { 140 case 1: 141 OS2WSASetLastError(11001); // host not found 142 break; 143 case 2: 144 OS2WSASetLastError(11002); // try again later 145 break; 146 case 3: 147 OS2WSASetLastError(11003); // No recovery 148 break; 149 case 4: 150 OS2WSASetLastError(11004); // No address or no data 151 break; 148 CASEERR2(EINTR) 149 CASEERR2(EBADF) 150 CASEERR2(EACCES) 151 CASEERR2(EINVAL) 152 CASEERR2(EMFILE) 153 154 CASEERR1(EWOULDBLOCK) 155 CASEERR1(EINPROGRESS) 156 CASEERR1(EALREADY) 157 CASEERR1(ENOTSOCK) 158 // CASEERR1(EDESTADRREQ) 159 CASEERR1(EMSGSIZE) 160 CASEERR1(EPROTOTYPE) 161 CASEERR1(ENOPROTOOPT) 162 CASEERR1(EPROTONOSUPPORT) 163 CASEERR1(ESOCKTNOSUPPORT) 164 CASEERR1(EOPNOTSUPP) 165 CASEERR1(EPFNOSUPPORT) 166 CASEERR1(EAFNOSUPPORT) 167 CASEERR1(EADDRINUSE) 168 CASEERR1(EADDRNOTAVAIL) 169 CASEERR1(ENETDOWN) 170 CASEERR1(ENETUNREACH) 171 CASEERR1(ENETRESET) 172 CASEERR1(ECONNABORTED) 173 CASEERR1(ECONNRESET) 174 CASEERR1(ENOBUFS) 175 CASEERR1(EISCONN) 176 CASEERR1(ENOTCONN) 177 CASEERR1(ESHUTDOWN) 178 CASEERR1(ETOOMANYREFS) 179 CASEERR1(ETIMEDOUT) 180 CASEERR1(ECONNREFUSED) 181 CASEERR1(ELOOP) 182 CASEERR1(ENAMETOOLONG) 183 CASEERR1(EHOSTDOWN) 184 CASEERR1(EHOSTUNREACH) 185 186 CASEERR1(ENOTEMPTY) 187 // CASEERR(EPROCLIM) 188 // CASEERR(EUSERS) 189 // CASEERR(EDQUOT) 190 // CASEERR(ESTALE) 191 // CASEERR(EREMOTE) 192 // CASEERR(EDISCON) 193 194 152 195 default: 153 OS2WSASetLastError(0); // unknown error and should never get here154 196 dprintf(("WSOCK32: Unknown error condition: %d\n", 155 h_errno));156 break;197 iError)); 198 return iError; 157 199 } 158 200 } … … 200 242 int*, addrlen) 201 243 { 202 return accept(s,addr,addrlen); 244 SOCKET rc = accept(s,addr,addrlen); 245 246 if (rc == INVALID_SOCKET) 247 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 248 249 return rc; 203 250 } 204 251 … … 220 267 int, namelen) 221 268 { 222 return bind(s,(PSOCKADDR)addr,namelen); 269 int rc = bind(s,(PSOCKADDR)addr,namelen); 270 271 if (rc < 0) 272 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 273 274 return rc; 223 275 } 224 276 … … 238 290 ODINFUNCTION1(int,OS2closesocket,SOCKET,s) 239 291 { 240 return soclose((int)s); 292 int rc = soclose((int)s); 293 294 if (rc < 0) 295 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 296 297 return rc; 241 298 } 242 299 … … 258 315 int, namelen) 259 316 { 260 return connect(s, 261 (PSOCKADDR)name, 262 namelen); 317 int rc = connect(s, 318 (PSOCKADDR)name, 319 namelen); 320 321 if (rc < 0) 322 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 323 324 return rc; 263 325 } 264 326 … … 280 342 u_long*, argp) 281 343 { 282 return ioctl(s, cmd, (char *)argp, 4); 344 int rc = ioctl(s, cmd, (char *)argp, 4); 345 346 if (rc < 0) 347 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 348 349 return rc; 283 350 } 284 351 … … 300 367 int*, namelen) 301 368 { 302 return getpeername(s,name,namelen); 369 SOCKET rc = getpeername(s,name,namelen); 370 371 if (rc == SOCKET_ERROR) 372 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 373 374 return rc; 303 375 } 304 376 … … 320 392 int*, namelen) 321 393 { 322 return getsockname(s,name,namelen); 394 SOCKET rc = getsockname(s,name,namelen); 395 396 if (rc == SOCKET_ERROR) 397 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 398 399 return rc; 323 400 } 324 401 … … 342 419 int*, optlen) 343 420 { 344 return getsockopt(s,level,optname,optval,optlen); 421 int rc = getsockopt(s,level,optname,optval,optlen); 422 423 if (rc == SOCKET_ERROR) 424 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 425 426 return rc; 345 427 } 346 428 … … 433 515 int, backlog) 434 516 { 435 return listen(s,backlog); 517 int rc = listen(s,backlog); 518 519 if (rc < 0) 520 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 521 522 return rc; 436 523 } 437 524 … … 490 577 int, flags) 491 578 { 492 return recv(s,buf,len,flags); 579 int rc = recv(s,buf,len,flags); 580 581 if (rc < 0) 582 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 583 584 return rc; 493 585 } 494 586 … … 513 605 int*, fromlen) 514 606 { 515 return recvfrom(s,buf,len,flags,from,fromlen); 607 int rc = recvfrom(s,buf,len,flags,from,fromlen); 608 609 if (rc < 0) 610 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 611 612 return rc; 516 613 } 517 614 … … 537 634 const struct Wtimeval*, timeout) 538 635 { 539 returnselect(nfds,636 int rc = select(nfds, 540 637 (fd_set *)readfds, 541 638 (fd_set *)writefds, 542 639 (fd_set *)exceptfds, 543 640 (timeval *)timeout); 641 642 if (rc == SOCKET_ERROR) 643 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 644 645 return rc; 544 646 } 545 647 … … 566 668 int, flags) 567 669 { 568 return send(s,(char *)buf,len,flags); 670 int rc = send(s,(char *)buf,len,flags); 671 672 if (rc < 0) 673 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 674 675 return rc; 569 676 } 570 677 … … 589 696 int, tolen) 590 697 { 591 return sendto(s,(char *)buf,len,flags,(PSOCKADDR)to,tolen); 698 int rc = sendto(s,(char *)buf,len,flags,(PSOCKADDR)to,tolen); 699 700 if (rc < 0) 701 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 702 703 return rc; 592 704 } 593 705 … … 613 725 struct Wlinger *yy; 614 726 struct linger xx; 727 int rc; 615 728 616 729 if(level == SOL_SOCKET && … … 621 734 xx.l_linger = (int)yy->l_linger; 622 735 623 r eturnsetsockopt(s,level,optname,(char *)&xx,optlen);736 rc = setsockopt(s,level,optname,(char *)&xx,optlen); 624 737 } 625 738 else 626 return setsockopt(s,level,optname,(char *)optval,optlen); 739 rc = setsockopt(s,level,optname,(char *)optval,optlen); 740 741 if (rc == SOCKET_ERROR) 742 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 743 744 return rc; 627 745 } 628 746 … … 643 761 int, how) 644 762 { 645 return shutdown(s,how); 763 int rc = shutdown(s,how); 764 765 if (rc == SOCKET_ERROR) 766 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 767 768 return rc; 646 769 } 647 770 … … 663 786 int,protocol) 664 787 { 665 return (SOCKET)socket(af,type,protocol); 788 SOCKET rc = socket(af,type,protocol); 789 790 if (rc == INVALID_SOCKET) 791 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 792 793 return rc; 666 794 } 667 795 … … 690 818 if(xx == NULL) 691 819 { 692 SetErrForDatabaseCalls();820 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 693 821 return (WHOSTENT *)NULL; 694 822 } … … 724 852 if(xx == NULL) 725 853 { 726 SetErrForDatabaseCalls();854 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 727 855 return (WHOSTENT *)NULL; 728 856 } … … 778 906 if(xx == NULL) 779 907 { // this call doesn't generate an error message 908 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 780 909 return (WSERVENT *)NULL; 781 910 } … … 812 941 if(xx == NULL) 813 942 { // this call doesn't generate an error message 943 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 814 944 return (WSERVENT *)NULL; 815 945 } … … 845 975 { 846 976 // this call doesn't generate an error message 977 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 847 978 return (WPROTOENT *)NULL; 848 979 } … … 876 1007 if(xx == NULL) 877 1008 { // this call doesn't generate an error message 1009 OS2WSASetLastError(iTranslateSockErrToWSock(sock_errno())); 878 1010 return (WPROTOENT *)NULL; 879 1011 } … … 933 1065 } 934 1066 else 935 ii = sock_errno();1067 ii = iTranslateSockErrToWSock(sock_errno()); 936 1068 937 1069 return ii;
Note:
See TracChangeset
for help on using the changeset viewer.