Ignore:
Timestamp:
Apr 16, 2017, 3:07:01 PM (3 months ago)
Author:
brainslayer
Message:

update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/linux/universal/linux-3.18/net/l2tp/l2tp_ip.c

    r30256 r31869  
    1212#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
    1313
     14#include <asm/ioctls.h>
    1415#include <linux/icmp.h>
    1516#include <linux/module.h>
     
    382383        IP_INC_STATS(sock_net(sk), IPSTATS_MIB_INDISCARDS);
    383384        kfree_skb(skb);
    384         return -1;
     385        return 0;
    385386}
    386387
     
    555556}
    556557
     558int l2tp_ioctl(struct sock *sk, int cmd, unsigned long arg)
     559{
     560        struct sk_buff *skb;
     561        int amount;
     562
     563        switch (cmd) {
     564        case SIOCOUTQ:
     565                amount = sk_wmem_alloc_get(sk);
     566                break;
     567        case SIOCINQ:
     568                spin_lock_bh(&sk->sk_receive_queue.lock);
     569                skb = skb_peek(&sk->sk_receive_queue);
     570                amount = skb ? skb->len : 0;
     571                spin_unlock_bh(&sk->sk_receive_queue.lock);
     572                break;
     573
     574        default:
     575                return -ENOIOCTLCMD;
     576        }
     577
     578        return put_user(amount, (int __user *)arg);
     579}
     580EXPORT_SYMBOL(l2tp_ioctl);
     581
    557582static struct proto l2tp_ip_prot = {
    558583        .name              = "L2TP/IP",
     
    563588        .connect           = l2tp_ip_connect,
    564589        .disconnect        = l2tp_ip_disconnect,
    565         .ioctl             = udp_ioctl,
     590        .ioctl             = l2tp_ioctl,
    566591        .destroy           = l2tp_ip_destroy_sock,
    567592        .setsockopt        = ip_setsockopt,
Note: See TracChangeset for help on using the changeset viewer.