Browse Source

get network/host order working right again for socks4

svn:r476
Roger Dingledine 21 years ago
parent
commit
9fe1ed26ff
2 changed files with 4 additions and 4 deletions
  1. 3 3
      src/or/buffers.c
  2. 1 1
      src/or/or.h

+ 3 - 3
src/or/buffers.c

@@ -281,8 +281,8 @@ int fetch_from_buf_socks(char *buf, int *buf_datalen,
   /* an inlined socks4_unpack() */
   socks4_info.version = *buf;
   socks4_info.command = *(buf+1);
-  socks4_info.destport = *(uint16_t*)(buf+2); 
-  socks4_info.destip = *(uint32_t*)(buf+4);
+  socks4_info.destport = ntohs(*(uint16_t*)(buf+2));
+  socks4_info.destip = ntohl(*(uint32_t*)(buf+4));
 
   if(socks4_info.version != 4) {
     log_fn(LOG_NOTICE,"Unrecognized version %d.",socks4_info.version);
@@ -294,7 +294,7 @@ int fetch_from_buf_socks(char *buf, int *buf_datalen,
     return -1;
   }
 
-  port = ntohs(socks4_info.destport);
+  port = socks4_info.destport;
   if(!port) {
     log_fn(LOG_NOTICE,"Port is zero.");
     return -1;

+ 1 - 1
src/or/or.h

@@ -219,7 +219,7 @@
 typedef struct {
    unsigned char version;     /* socks version number */
    unsigned char command;     /* command code */
-   uint16_t destport; /* destination port, network order */
+   uint16_t destport; /* destination port, host order */
    uint32_t destip;   /* destination address, host order */
    /* userid follows, terminated by a \0 */
    /* dest host follows, terminated by a \0 */