lkml.org 
[lkml]   [2016]   [Sep]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [PATCH v3] net: ip, diag -- Add diag interface for raw sockets
    From
    Date
    On 9/15/16 2:22 PM, Cyrill Gorcunov wrote:
    >> ss -K is not working. Socket lookup fails to find a match due to a protocol mismatch.
    >>
    >> haven't had time to track down why there is a mismatch since the kill uses the socket returned
    >> from the dump. Won't have time to come back to this until early next week.
    >
    > Have you ran iproute2 patched? I just ran ss -K and all sockets get closed
    > (including raw ones), which actually kicked me off the testing machine sshd :/
    >


    This is the patch I applied to iproute2; the change in your goo.gl link plus a debug to confirm the kill action is initiated by ss:

    diff --git a/misc/ss.c b/misc/ss.c
    index 3b268d999426..4d98411738ea 100644
    --- a/misc/ss.c
    +++ b/misc/ss.c
    @@ -2334,6 +2334,10 @@ static int show_one_inet_sock(const struct sockaddr_nl *addr,
    if (diag_arg->f->f && run_ssfilter(diag_arg->f->f, &s) == 0)
    return 0;

    + if (diag_arg->f->kill) {
    +printf("want to kill:\n");
    + err = inet_show_sock(h, &s, diag_arg->protocol);
    + }
    if (diag_arg->f->kill && kill_inet_sock(h, arg) != 0) {
    if (errno == EOPNOTSUPP || errno == ENOENT) {
    /* Socket can't be closed, or is already closed. */
    @@ -2631,6 +2635,10 @@ static int raw_show(struct filter *f)

    dg_proto = RAW_PROTO;

    +if (!getenv("PROC_NET_RAW") && !getenv("PROC_ROOT") &&
    +inet_show_netlink(f, NULL, IPPROTO_RAW) == 0)
    +return 0;
    +
    if (f->families&(1<<AF_INET)) {
    if ((fp = net_raw_open()) == NULL)
    goto outerr;
    \
     
     \ /
      Last update: 2016-09-17 09:59    [W:2.422 / U:0.168 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site