Diff for /src/sys/net/sppp/if_spppsubr.c between versions 1.8 and 1.9

version 1.8, 2004/01/06 03:17:27 version 1.9, 2004/02/08 10:59:22
Line 23 Line 23
   
 #include <sys/param.h>  #include <sys/param.h>
   
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
 #include "opt_inet.h"  #include "opt_inet.h"
 #include "opt_inet6.h"  #include "opt_inet6.h"
 #include "opt_ipx.h"  #include "opt_ipx.h"
Line 43 Line 43
 #include <sys/sockio.h>  #include <sys/sockio.h>
 #include <sys/socket.h>  #include <sys/socket.h>
 #include <sys/syslog.h>  #include <sys/syslog.h>
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly___) && __DragonFly__ >= 1
 #include <sys/random.h>  #include <sys/random.h>
 #endif  #endif
 #include <sys/malloc.h>  #include <sys/malloc.h>
Line 79 Line 79
 #include <netinet/tcp.h>  #include <netinet/tcp.h>
 #endif  #endif
   
#if defined (__FreeBSD__) || defined (__OpenBSD__)#if defined (__DragonFly__) || defined (__OpenBSD__)
 # include <netinet/if_ether.h>  # include <netinet/if_ether.h>
 #else  #else
 # include <net/ethertypes.h>  # include <net/ethertypes.h>
Line 97 Line 97
   
 #include "if_sppp.h"  #include "if_sppp.h"
   
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
 # define UNTIMEOUT(fun, arg, handle) untimeout(fun, arg, handle)  # define UNTIMEOUT(fun, arg, handle) untimeout(fun, arg, handle)
 # define TIMEOUT(fun, arg1, arg2, handle) handle = timeout(fun, arg1, arg2)  # define TIMEOUT(fun, arg1, arg2, handle) handle = timeout(fun, arg1, arg2)
 # define IOCTL_CMD_T    u_long  # define IOCTL_CMD_T    u_long
Line 266  struct cp { Line 266  struct cp {
 };  };
   
 static struct sppp *spppq;  static struct sppp *spppq;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
 static struct callout_handle keepalive_ch;  static struct callout_handle keepalive_ch;
 #endif  #endif
   
Line 1302  sppp_cisco_input(struct sppp *sp, struct Line 1302  sppp_cisco_input(struct sppp *sp, struct
                         ++sp->pp_loopcnt;                          ++sp->pp_loopcnt;
   
                         /* Generate new local sequence number */                          /* Generate new local sequence number */
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
                         sp->pp_seq[IDX_LCP] = random();                          sp->pp_seq[IDX_LCP] = random();
 #else  #else
                         sp->pp_seq[IDX_LCP] ^= time.tv_sec ^ time.tv_usec;                          sp->pp_seq[IDX_LCP] ^= time.tv_sec ^ time.tv_usec;
Line 1334  sppp_cisco_send(struct sppp *sp, int typ Line 1334  sppp_cisco_send(struct sppp *sp, int typ
         struct ppp_header *h;          struct ppp_header *h;
         struct cisco_packet *ch;          struct cisco_packet *ch;
         struct mbuf *m;          struct mbuf *m;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         struct timeval tv;          struct timeval tv;
 #else  #else
         u_long t = (time.tv_sec - boottime.tv_sec) * 1000;          u_long t = (time.tv_sec - boottime.tv_sec) * 1000;
 #endif  #endif
   
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         getmicrouptime(&tv);          getmicrouptime(&tv);
 #endif  #endif
   
Line 1361  sppp_cisco_send(struct sppp *sp, int typ Line 1361  sppp_cisco_send(struct sppp *sp, int typ
         ch->par2 = htonl (par2);          ch->par2 = htonl (par2);
         ch->rel = -1;          ch->rel = -1;
   
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         ch->time0 = htons ((u_short) (tv.tv_sec >> 16));          ch->time0 = htons ((u_short) (tv.tv_sec >> 16));
         ch->time1 = htons ((u_short) tv.tv_sec);          ch->time1 = htons ((u_short) tv.tv_sec);
 #else  #else
Line 2127  sppp_lcp_init(struct sppp *sp) Line 2127  sppp_lcp_init(struct sppp *sp)
         sp->lcp.max_terminate = 2;          sp->lcp.max_terminate = 2;
         sp->lcp.max_configure = 10;          sp->lcp.max_configure = 10;
         sp->lcp.max_failure = 10;          sp->lcp.max_failure = 10;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         callout_handle_init(&sp->ch[IDX_LCP]);          callout_handle_init(&sp->ch[IDX_LCP]);
 #endif  #endif
 }  }
Line 2554  sppp_lcp_RCN_nak(struct sppp *sp, struct Line 2554  sppp_lcp_RCN_nak(struct sppp *sp, struct
                                 if (magic == ~sp->lcp.magic) {                                  if (magic == ~sp->lcp.magic) {
                                         if (debug)                                          if (debug)
                                                 addlog("magic glitch ");                                                  addlog("magic glitch ");
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
                                         sp->lcp.magic = random();                                          sp->lcp.magic = random();
 #else  #else
                                         sp->lcp.magic = time.tv_sec + time.tv_usec;                                          sp->lcp.magic = time.tv_sec + time.tv_usec;
Line 2739  sppp_lcp_scr(struct sppp *sp) Line 2739  sppp_lcp_scr(struct sppp *sp)
   
         if (sp->lcp.opts & (1 << LCP_OPT_MAGIC)) {          if (sp->lcp.opts & (1 << LCP_OPT_MAGIC)) {
                 if (! sp->lcp.magic)                  if (! sp->lcp.magic)
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
                         sp->lcp.magic = random();                          sp->lcp.magic = random();
 #else  #else
                         sp->lcp.magic = time.tv_sec + time.tv_usec;                          sp->lcp.magic = time.tv_sec + time.tv_usec;
Line 2822  sppp_ipcp_init(struct sppp *sp) Line 2822  sppp_ipcp_init(struct sppp *sp)
         sp->fail_counter[IDX_IPCP] = 0;          sp->fail_counter[IDX_IPCP] = 0;
         sp->pp_seq[IDX_IPCP] = 0;          sp->pp_seq[IDX_IPCP] = 0;
         sp->pp_rseq[IDX_IPCP] = 0;          sp->pp_rseq[IDX_IPCP] = 0;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         callout_handle_init(&sp->ch[IDX_IPCP]);          callout_handle_init(&sp->ch[IDX_IPCP]);
 #endif  #endif
 }  }
Line 3308  sppp_ipv6cp_init(struct sppp *sp) Line 3308  sppp_ipv6cp_init(struct sppp *sp)
 #if defined(__NetBSD__)  #if defined(__NetBSD__)
         callout_init(&sp->ch[IDX_IPV6CP]);          callout_init(&sp->ch[IDX_IPV6CP]);
 #endif  #endif
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         callout_handle_init(&sp->ch[IDX_IPV6CP]);          callout_handle_init(&sp->ch[IDX_IPV6CP]);
 #endif  #endif
 }  }
Line 4107  sppp_chap_init(struct sppp *sp) Line 4107  sppp_chap_init(struct sppp *sp)
         sp->fail_counter[IDX_CHAP] = 0;          sp->fail_counter[IDX_CHAP] = 0;
         sp->pp_seq[IDX_CHAP] = 0;          sp->pp_seq[IDX_CHAP] = 0;
         sp->pp_rseq[IDX_CHAP] = 0;          sp->pp_rseq[IDX_CHAP] = 0;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         callout_handle_init(&sp->ch[IDX_CHAP]);          callout_handle_init(&sp->ch[IDX_CHAP]);
 #endif  #endif
 }  }
Line 4250  sppp_chap_scr(struct sppp *sp) Line 4250  sppp_chap_scr(struct sppp *sp)
   
         /* Compute random challenge. */          /* Compute random challenge. */
         ch = (u_long *)sp->myauth.challenge;          ch = (u_long *)sp->myauth.challenge;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         read_random(&seed, sizeof seed);          read_random(&seed, sizeof seed);
 #else  #else
         {          {
Line 4440  sppp_pap_init(struct sppp *sp) Line 4440  sppp_pap_init(struct sppp *sp)
         sp->fail_counter[IDX_PAP] = 0;          sp->fail_counter[IDX_PAP] = 0;
         sp->pp_seq[IDX_PAP] = 0;          sp->pp_seq[IDX_PAP] = 0;
         sp->pp_rseq[IDX_PAP] = 0;          sp->pp_rseq[IDX_PAP] = 0;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         callout_handle_init(&sp->ch[IDX_PAP]);          callout_handle_init(&sp->ch[IDX_PAP]);
         callout_handle_init(&sp->pap_my_to_ch);          callout_handle_init(&sp->pap_my_to_ch);
 #endif  #endif
Line 4759  sppp_get_ip_addrs(struct sppp *sp, u_lon Line 4759  sppp_get_ip_addrs(struct sppp *sp, u_lon
          * aliases don't make any sense on a p2p link anyway.           * aliases don't make any sense on a p2p link anyway.
          */           */
         si = 0;          si = 0;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)          TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)
 #elif defined(__NetBSD__) || defined (__OpenBSD__)  #elif defined(__NetBSD__) || defined (__OpenBSD__)
         for (ifa = ifp->if_addrlist.tqh_first;          for (ifa = ifp->if_addrlist.tqh_first;
Line 4808  sppp_set_ip_addr(struct sppp *sp, u_long Line 4808  sppp_set_ip_addr(struct sppp *sp, u_long
          * aliases don't make any sense on a p2p link anyway.           * aliases don't make any sense on a p2p link anyway.
          */           */
         si = 0;          si = 0;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)          TAILQ_FOREACH(ifa, &ifp->if_addrhead, ifa_link)
 #elif defined(__NetBSD__) || defined (__OpenBSD__)  #elif defined(__NetBSD__) || defined (__OpenBSD__)
         for (ifa = ifp->if_addrlist.tqh_first;          for (ifa = ifp->if_addrlist.tqh_first;
Line 4887  sppp_get_ip6_addrs(struct sppp *sp, stru Line 4887  sppp_get_ip6_addrs(struct sppp *sp, stru
          * Pick the first link-local AF_INET6 address from the list,           * Pick the first link-local AF_INET6 address from the list,
          * aliases don't make any sense on a p2p link anyway.           * aliases don't make any sense on a p2p link anyway.
          */           */
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         for (ifa = ifp->if_addrhead.tqh_first, si = 0;          for (ifa = ifp->if_addrhead.tqh_first, si = 0;
              ifa;               ifa;
              ifa = ifa->ifa_link.tqe_next)               ifa = ifa->ifa_link.tqe_next)
Line 4952  sppp_set_ip6_addr(struct sppp *sp, const Line 4952  sppp_set_ip6_addr(struct sppp *sp, const
          */           */
   
         sin6 = NULL;          sin6 = NULL;
#if defined(__FreeBSD__) && __FreeBSD__ >= 3#if defined(__DragonFly__) && __DragonFly__ >= 1
         for (ifa = ifp->if_addrhead.tqh_first;          for (ifa = ifp->if_addrhead.tqh_first;
              ifa;               ifa;
              ifa = ifa->ifa_link.tqe_next)               ifa = ifa->ifa_link.tqe_next)

Removed from v.1.8  
changed lines
  Added in v.1.9