summaryrefslogtreecommitdiffhomepage
path: root/src/conn_linux.go
blob: b04471c22cd98c00c360beff300ae0514891fe8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main

import (
	"golang.org/x/sys/unix"
	"net"
)

func setMark(conn *net.UDPConn, value int) error {
	if conn == nil || value == 0 {
		return nil
	}

	file, err := conn.File()
	if err != nil {
		return err
	}

	return unix.SetsockoptInt(
		int(file.Fd()),
		unix.SOL_SOCKET,
		unix.SO_MARK,
		value,
	)
}