[BACK]Return to channels.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / ssh

Diff for /src/usr.bin/ssh/channels.c between version 1.296 and 1.297

version 1.296, 2009/05/25 06:48:00 version 1.297, 2009/10/28 16:38:18
Line 158 
Line 158 
 /* AF_UNSPEC or AF_INET or AF_INET6 */  /* AF_UNSPEC or AF_INET or AF_INET6 */
 static int IPv4or6 = AF_UNSPEC;  static int IPv4or6 = AF_UNSPEC;
   
   /* Set the routing domain a.k.a. VRF */
   static int channel_rdomain = -1;
   
 /* helper */  /* helper */
 static void port_open_helper(Channel *c, char *rtype);  static void port_open_helper(Channel *c, char *rtype);
   
Line 2437 
Line 2440 
         IPv4or6 = af;          IPv4or6 = af;
 }  }
   
   void
   channel_set_rdomain(int rdomain)
   {
           channel_rdomain = rdomain;
   }
   
 static int  static int
 channel_setup_fwd_listener(int type, const char *listen_addr,  channel_setup_fwd_listener(int type, const char *listen_addr,
     u_short listen_port, int *allocated_listen_port,      u_short listen_port, int *allocated_listen_port,
Line 2545 
Line 2554 
                         continue;                          continue;
                 }                  }
                 /* Create a port to listen for the host. */                  /* Create a port to listen for the host. */
                 sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);                  sock = socket_rdomain(ai->ai_family, ai->ai_socktype,
                       ai->ai_protocol, channel_rdomain);
                 if (sock < 0) {                  if (sock < 0) {
                         /* this is no error since kernel may not support ipv6 */                          /* this is no error since kernel may not support ipv6 */
                         verbose("socket: %.100s", strerror(errno));                          verbose("socket: %.100s", strerror(errno));
Line 2878 
Line 2888 
                         error("connect_next: getnameinfo failed");                          error("connect_next: getnameinfo failed");
                         continue;                          continue;
                 }                  }
                 if ((sock = socket(cctx->ai->ai_family, cctx->ai->ai_socktype,                  if ((sock = socket_rdomain(cctx->ai->ai_family,
                     cctx->ai->ai_protocol)) == -1) {                      cctx->ai->ai_socktype, cctx->ai->ai_protocol,
                       channel_rdomain)) == -1) {
                         if (cctx->ai->ai_next == NULL)                          if (cctx->ai->ai_next == NULL)
                                 error("socket: %.100s", strerror(errno));                                  error("socket: %.100s", strerror(errno));
                         else                          else
Line 3065 
Line 3076 
                 for (ai = aitop; ai; ai = ai->ai_next) {                  for (ai = aitop; ai; ai = ai->ai_next) {
                         if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6)                          if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6)
                                 continue;                                  continue;
                         sock = socket(ai->ai_family, ai->ai_socktype,                          sock = socket_rdomain(ai->ai_family, ai->ai_socktype,
                             ai->ai_protocol);                              ai->ai_protocol, channel_rdomain);
                         if (sock < 0) {                          if (sock < 0) {
                                 error("socket: %.100s", strerror(errno));                                  error("socket: %.100s", strerror(errno));
                                 freeaddrinfo(aitop);                                  freeaddrinfo(aitop);
Line 3213 
Line 3224 
         }          }
         for (ai = aitop; ai; ai = ai->ai_next) {          for (ai = aitop; ai; ai = ai->ai_next) {
                 /* Create a socket. */                  /* Create a socket. */
                 sock = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);                  sock = socket_rdomain(ai->ai_family, ai->ai_socktype,
                       ai->ai_protocol, channel_rdomain);
                 if (sock < 0) {                  if (sock < 0) {
                         debug2("socket: %.100s", strerror(errno));                          debug2("socket: %.100s", strerror(errno));
                         continue;                          continue;

Legend:
Removed from v.1.296  
changed lines
  Added in v.1.297