qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PULL 37/65] slirp: remove #if notdef dead code


From: Samuel Thibault
Subject: [Qemu-devel] [PULL 37/65] slirp: remove #if notdef dead code
Date: Mon, 14 Jan 2019 01:02:58 +0100

From: Marc-André Lureau <address@hidden>

Signed-off-by: Marc-André Lureau <address@hidden>
Reviewed-by: Daniel P. Berrangé <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
---
 slirp/ip_input.c  | 200 ----------------------------------------------
 slirp/tcp_input.c |  39 ---------
 2 files changed, 239 deletions(-)

diff --git a/slirp/ip_input.c b/slirp/ip_input.c
index 094a807d41..d360620838 100644
--- a/slirp/ip_input.c
+++ b/slirp/ip_input.c
@@ -447,206 +447,6 @@ ip_slowtimo(Slirp *slirp)
     }
 }
 
-/*
- * Do option processing on a datagram,
- * possibly discarding it if bad options are encountered,
- * or forwarding it if source-routed.
- * Returns 1 if packet has been forwarded/freed,
- * 0 if the packet should be processed further.
- */
-
-#ifdef notdef
-
-int
-ip_dooptions(m)
-       struct mbuf *m;
-{
-       register struct ip *ip = mtod(m, struct ip *);
-       register u_char *cp;
-       register struct ip_timestamp *ipt;
-       register struct in_ifaddr *ia;
-       int opt, optlen, cnt, off, code, type, forward = 0;
-       struct in_addr *sin, dst;
-typedef uint32_t n_time;
-       n_time ntime;
-
-       dst = ip->ip_dst;
-       cp = (u_char *)(ip + 1);
-       cnt = (ip->ip_hl << 2) - sizeof (struct ip);
-       for (; cnt > 0; cnt -= optlen, cp += optlen) {
-               opt = cp[IPOPT_OPTVAL];
-               if (opt == IPOPT_EOL)
-                       break;
-               if (opt == IPOPT_NOP)
-                       optlen = 1;
-               else {
-                       optlen = cp[IPOPT_OLEN];
-                       if (optlen <= 0 || optlen > cnt) {
-                               code = &cp[IPOPT_OLEN] - (u_char *)ip;
-                               goto bad;
-                       }
-               }
-               switch (opt) {
-
-               default:
-                       break;
-
-               /*
-                * Source routing with record.
-                * Find interface with current destination address.
-                * If none on this machine then drop if strictly routed,
-                * or do nothing if loosely routed.
-                * Record interface address and bring up next address
-                * component.  If strictly routed make sure next
-                * address is on directly accessible net.
-                */
-               case IPOPT_LSRR:
-               case IPOPT_SSRR:
-                       if ((off = cp[IPOPT_OFFSET]) < IPOPT_MINOFF) {
-                               code = &cp[IPOPT_OFFSET] - (u_char *)ip;
-                               goto bad;
-                       }
-                       ipaddr.sin_addr = ip->ip_dst;
-                       ia = (struct in_ifaddr *)
-                               ifa_ifwithaddr((struct sockaddr *)&ipaddr);
-                       if (ia == 0) {
-                               if (opt == IPOPT_SSRR) {
-                                       type = ICMP_UNREACH;
-                                       code = ICMP_UNREACH_SRCFAIL;
-                                       goto bad;
-                               }
-                               /*
-                                * Loose routing, and not at next destination
-                                * yet; nothing to do except forward.
-                                */
-                               break;
-                       }
-                        off--; /* 0 origin */
-                       if (off > optlen - sizeof(struct in_addr)) {
-                               /*
-                                * End of source route.  Should be for us.
-                                */
-                               save_rte(cp, ip->ip_src);
-                               break;
-                       }
-                       /*
-                        * locate outgoing interface
-                        */
-                       bcopy((caddr_t)(cp + off), (caddr_t)&ipaddr.sin_addr,
-                           sizeof(ipaddr.sin_addr));
-                       if (opt == IPOPT_SSRR) {
-#define        INA     struct in_ifaddr *
-#define        SA      struct sockaddr *
-                           if ((ia = (INA)ifa_ifwithdstaddr((SA)&ipaddr)) == 0)
-                               ia = (INA)ifa_ifwithnet((SA)&ipaddr);
-                       } else
-                               ia = ip_rtaddr(ipaddr.sin_addr);
-                       if (ia == 0) {
-                               type = ICMP_UNREACH;
-                               code = ICMP_UNREACH_SRCFAIL;
-                               goto bad;
-                       }
-                       ip->ip_dst = ipaddr.sin_addr;
-                       bcopy((caddr_t)&(IA_SIN(ia)->sin_addr),
-                           (caddr_t)(cp + off), sizeof(struct in_addr));
-                       cp[IPOPT_OFFSET] += sizeof(struct in_addr);
-                       /*
-                        * Let ip_intr's mcast routing check handle mcast pkts
-                        */
-                       forward = !IN_MULTICAST(ntohl(ip->ip_dst.s_addr));
-                       break;
-
-               case IPOPT_RR:
-                       if ((off = cp[IPOPT_OFFSET]) < IPOPT_MINOFF) {
-                               code = &cp[IPOPT_OFFSET] - (u_char *)ip;
-                               goto bad;
-                       }
-                       /*
-                        * If no space remains, ignore.
-                        */
-                        off--; /* 0 origin */
-                       if (off > optlen - sizeof(struct in_addr))
-                               break;
-                       bcopy((caddr_t)(&ip->ip_dst), (caddr_t)&ipaddr.sin_addr,
-                           sizeof(ipaddr.sin_addr));
-                       /*
-                        * locate outgoing interface; if we're the destination,
-                        * use the incoming interface (should be same).
-                        */
-                       if ((ia = (INA)ifa_ifwithaddr((SA)&ipaddr)) == 0 &&
-                           (ia = ip_rtaddr(ipaddr.sin_addr)) == 0) {
-                               type = ICMP_UNREACH;
-                               code = ICMP_UNREACH_HOST;
-                               goto bad;
-                       }
-                       bcopy((caddr_t)&(IA_SIN(ia)->sin_addr),
-                           (caddr_t)(cp + off), sizeof(struct in_addr));
-                       cp[IPOPT_OFFSET] += sizeof(struct in_addr);
-                       break;
-
-               case IPOPT_TS:
-                       code = cp - (u_char *)ip;
-                       ipt = (struct ip_timestamp *)cp;
-                       if (ipt->ipt_len < 5)
-                               goto bad;
-                       if (ipt->ipt_ptr > ipt->ipt_len - sizeof (int32_t)) {
-                               if (++ipt->ipt_oflw == 0)
-                                       goto bad;
-                               break;
-                       }
-                       sin = (struct in_addr *)(cp + ipt->ipt_ptr - 1);
-                       switch (ipt->ipt_flg) {
-
-                       case IPOPT_TS_TSONLY:
-                               break;
-
-                       case IPOPT_TS_TSANDADDR:
-                               if (ipt->ipt_ptr + sizeof(n_time) +
-                                   sizeof(struct in_addr) > ipt->ipt_len)
-                                       goto bad;
-                               ipaddr.sin_addr = dst;
-                               ia = (INA)ifaof_ i f p foraddr((SA)&ipaddr,
-                                                           m->m_pkthdr.rcvif);
-                               if (ia == 0)
-                                       continue;
-                               bcopy((caddr_t)&IA_SIN(ia)->sin_addr,
-                                   (caddr_t)sin, sizeof(struct in_addr));
-                               ipt->ipt_ptr += sizeof(struct in_addr);
-                               break;
-
-                       case IPOPT_TS_PRESPEC:
-                               if (ipt->ipt_ptr + sizeof(n_time) +
-                                   sizeof(struct in_addr) > ipt->ipt_len)
-                                       goto bad;
-                               bcopy((caddr_t)sin, (caddr_t)&ipaddr.sin_addr,
-                                   sizeof(struct in_addr));
-                               if (ifa_ifwithaddr((SA)&ipaddr) == 0)
-                                       continue;
-                               ipt->ipt_ptr += sizeof(struct in_addr);
-                               break;
-
-                       default:
-                               goto bad;
-                       }
-                       ntime = iptime();
-                       bcopy((caddr_t)&ntime, (caddr_t)cp + ipt->ipt_ptr - 1,
-                           sizeof(n_time));
-                       ipt->ipt_ptr += sizeof(n_time);
-               }
-       }
-       if (forward) {
-               ip_forward(m, 1);
-               return (1);
-       }
-       return (0);
-bad:
-       icmp_send_error(m, type, code, 0, 0);
-
-       return (1);
-}
-
-#endif /* notdef */
-
 /*
  * Strip out IP options, at higher
  * level protocol in the kernel.
diff --git a/slirp/tcp_input.c b/slirp/tcp_input.c
index 39821e5a34..0f073d4b38 100644
--- a/slirp/tcp_input.c
+++ b/slirp/tcp_input.c
@@ -1441,45 +1441,6 @@ tcp_dooptions(struct tcpcb *tp, u_char *cp, int cnt, 
struct tcpiphdr *ti)
        }
 }
 
-
-/*
- * Pull out of band byte out of a segment so
- * it doesn't appear in the user's data queue.
- * It is still reflected in the segment length for
- * sequencing purposes.
- */
-
-#ifdef notdef
-
-void
-tcp_pulloutofband(so, ti, m)
-       struct socket *so;
-       struct tcpiphdr *ti;
-       register struct mbuf *m;
-{
-       int cnt = ti->ti_urp - 1;
-
-       while (cnt >= 0) {
-               if (m->m_len > cnt) {
-                       char *cp = mtod(m, caddr_t) + cnt;
-                       struct tcpcb *tp = sototcpcb(so);
-
-                       tp->t_iobc = *cp;
-                       tp->t_oobflags |= TCPOOB_HAVEDATA;
-                       memcpy(sp, cp+1, (unsigned)(m->m_len - cnt - 1));
-                       m->m_len--;
-                       return;
-               }
-               cnt -= m->m_len;
-               m = m->m_next; /* XXX WRONG! Fix it! */
-               if (m == 0)
-                       break;
-       }
-       panic("tcp_pulloutofband");
-}
-
-#endif /* notdef */
-
 /*
  * Collect new round-trip time estimate
  * and update averages and current timeout.
-- 
2.20.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]