--- zzzz-none-000/linux-2.6.28.10/net/core/sock.c 2009-05-02 18:54:43.000000000 +0000 +++ puma5-6360-529/linux-2.6.28.10/net/core/sock.c 2011-12-09 10:45:47.000000000 +0000 @@ -666,6 +666,14 @@ } break; + case SO_MARKTASK: /* AVM calle, for PUMA */ + if (!capable(CAP_NET_ADMIN)) + ret = -EPERM; + else { + current->netmark = val; + } + break; + /* We implement the SO_SNDLOWAT etc to not be settable (1003.1g 5.3) */ default: @@ -840,6 +848,10 @@ v.val = sk->sk_mark; break; + case SO_MARKTASK: /* AVM calle, for PUMA */ + v.val = current->netmark; + break; + default: return -ENOPROTOOPT; } @@ -951,6 +963,7 @@ sk->sk_prot = sk->sk_prot_creator = prot; sock_lock_init(sk); sock_net_set(sk, get_net(net)); + sk->sk_mark = current->netmark; /* AVM calle */ } return sk;