Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 182755 | Differences between
and this patch

Collapse All | Expand All

(-)vpnclient.orig/interceptor.c (-1 / +45 lines)
Lines 83-88 Link Here
83
83
84
static int vpn_is_up = FALSE;
84
static int vpn_is_up = FALSE;
85
85
86
// LAN ACCESS PATCH: Module parameter used to retrieve "gateway" address from user space
87
static int gateway[4] = { 0,0,0,0 };
88
module_param_array(gateway, uint, NULL, 0644);
89
MODULE_PARM_DESC(gateway," Gateway's public address (separated by ',') to be passed from user space.");
90
86
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
91
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)
87
#define interceptor_name LINUX_VPN_IFNAME
92
#define interceptor_name LINUX_VPN_IFNAME
88
#else
93
#else
Lines 362-368 Link Here
362
        goto error_exit;
367
        goto error_exit;
363
    }
368
    }
364
    vpn_is_up = TRUE;
369
    vpn_is_up = TRUE;
365
    return error;
370
	// LAN ACCESS PATCH: Display current "gateway" information from user space
371
	printk(KERN_INFO "LAN ACCESS: vpn_is_up: gateway from userspace: %d.%d.%d.%d\n",
372
		   gateway[0], gateway[1], gateway[2], gateway[3]);
373
	return error;
366
374
367
  error_exit:
375
  error_exit:
368
    do_cleanup();
376
    do_cleanup();
Lines 558-563 Link Here
558
        goto exit_gracefully;
566
        goto exit_gracefully;
559
    }
567
    }
560
568
569
	// LAN ACCESS PATCH: re-route traffic to original ip handler, if not receiving from VPN gateway's public address 
570
	if ( vpn_is_up && strcmp(dev->name,LINUX_VPN_IFNAME) && 
571
		(gateway[0] || gateway[1] || gateway[2] || gateway[3]) && 
572
		(
573
		 (((unsigned char *)&(CISCOVPN_SKB_IPHEADER(skb)->saddr))[0] != gateway[0]) ||
574
		 (((unsigned char *)&(CISCOVPN_SKB_IPHEADER(skb)->saddr))[1] != gateway[1]) ||
575
		 (((unsigned char *)&(CISCOVPN_SKB_IPHEADER(skb)->saddr))[2] != gateway[2]) ||
576
		 (((unsigned char *)&(CISCOVPN_SKB_IPHEADER(skb)->saddr))[3] != gateway[3]) ) ) {
577
		/*
578
		printk(KERN_INFO "LAN ACCESS: recv_ip_packet_handler(%s): %u.%u.%u.%u --> %u.%u.%u.%u\n",
579
			dev->name,
580
			NIPQUAD(CISCOVPN_SKB_IPHEADER(skb)->saddr),
581
			NIPQUAD(CISCOVPN_SKB_IPHEADER(skb)->daddr));
582
		*/
583
		rc2 = original_ip_handler.orig_handler_func(skb, dev, type);
584
		goto exit_gracefully;
585
	}
586
561
    if (CHECK_IP_SUMMED(skb->ip_summed))
587
    if (CHECK_IP_SUMMED(skb->ip_summed))
562
    {
588
    {
563
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7)
589
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,7)
Lines 817-822 Link Here
817
        goto exit_gracefully;
843
        goto exit_gracefully;
818
    }
844
    }
819
845
846
	// LAN ACCESS PATCH: re-route traffic to original ip handler, if not sending to VPN gateway's public address
847
	if ( vpn_is_up && strcmp(dev->name,LINUX_VPN_IFNAME) && 
848
		 (gateway[0] || gateway[1] || gateway[2] || gateway[3]) && 
849
		 (
850
		  (((unsigned char *)&(CISCOVPN_SKB_IPHEADER(skb)->daddr))[0] != gateway[0]) ||
851
		  (((unsigned char *)&(CISCOVPN_SKB_IPHEADER(skb)->daddr))[1] != gateway[1]) ||
852
		  (((unsigned char *)&(CISCOVPN_SKB_IPHEADER(skb)->daddr))[2] != gateway[2]) ||
853
		  (((unsigned char *)&(CISCOVPN_SKB_IPHEADER(skb)->daddr))[3] != gateway[3]) ) ) {
854
		/*
855
	  	printk(KERN_INFO "LAN ACCESS: replacement_dev_xmit(%s): %u.%u.%u.%u --> %u.%u.%u.%u\n",
856
			 dev->name,
857
			 NIPQUAD(CISCOVPN_SKB_IPHEADER(skb)->saddr),
858
			 NIPQUAD(CISCOVPN_SKB_IPHEADER(skb)->daddr));
859
		*/
860
	  rc2 = pBinding->InjectSend(skb, dev);
861
	  goto exit_gracefully;
862
	}
863
820
    if (need_reorder_frag(skb))
864
    if (need_reorder_frag(skb))
821
    {
865
    {
822
        rc2 = handle_fragment(pBinding, skb, dev);
866
        rc2 = handle_fragment(pBinding, skb, dev);

Return to bug 182755