home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / lan / soss.arj / RPC / NB.C < prev    next >
C/C++ Source or Header  |  1991-02-22  |  2KB  |  81 lines

  1. /*
  2.  *  nb.c --
  3.  *      Bug free host to network and network to host data conversion.
  4.  *
  5.  *  Author:
  6.  *      Thanks to David Peterson
  7.  */
  8.  
  9. #include "types.h"
  10. #include "in.h"
  11.  
  12. int ntohs(x)
  13.     int x;
  14. {
  15.     /* unsigned short word2 ;
  16.     unsigned short word3 ;
  17.  
  18.     word2 = ((x >> 8) & 0xff);
  19.     word3 = ((x) & 0xff);
  20.     x = (word2) | (word3 << 8); */
  21.     return (x);
  22. }
  23.  
  24. /*
  25.  *  long dntohl(long var) --
  26.  *      32 bit network to host byte ordering
  27.  */
  28. long dntohl (var)
  29.     long var ;
  30. {
  31.     unsigned short word0 ;
  32.     unsigned short word1 ;
  33.     unsigned short word2 ;
  34.     unsigned short word3 ;
  35.  
  36.     word0 = ((var >> 16) & 0xffff) ;
  37.     word1 = (var & 0xffff) ;
  38.     word2 = ((word1 >> 8) & 0xff);
  39.     word3 = ((word1) & 0xff);
  40.     word1 = (word2) | (word3 << 8);
  41.     word2 = ((word0 >> 8) & 0xff);
  42.     word3 = ((word0) & 0xff);
  43.     word0 = (word2) | (word3 << 8);
  44.  
  45.     var = 0 ;
  46.     var |= word1 ;
  47.     var <<= 16 ;
  48.     var |= word0 ; 
  49.     /* printf("dntohl var = %ld\n", var) ;   */
  50.     return (var) ;
  51. }
  52.  
  53. /*
  54.  *  long dhtonl(long var) --
  55.  *      32 bit host to network byte odering
  56.  */
  57. long dhtonl (var)
  58.     long var ;
  59. {
  60.     unsigned short word0 ;
  61.     unsigned short word1 ;
  62.     unsigned short word2 ;
  63.     unsigned short word3 ;
  64.  
  65.     word0 = ((var >> 16) & 0xffff) ;
  66.     word1 = (var & 0xffff) ;
  67.     word2 = ((word1 >> 8) & 0xff);
  68.     word3 = ((word1) & 0xff);
  69.     word1 = (word2) | (word3 << 8);
  70.     word2 = ((word0 >> 8) & 0xff);
  71.     word3 = ((word0) & 0xff);
  72.     word0 = (word2) | (word3 << 8);
  73.  
  74.     var = 0 ;
  75.     var |= word1 ;
  76.     var <<= 16 ;
  77.     var |= word0 ; 
  78.     /* printf("dhtonl var = %ld\n", var) ;   */
  79.     return (var) ;
  80. }
  81.