/
WebKitNetworkProxySettings.go
155 lines (128 loc) · 5.06 KB
/
WebKitNetworkProxySettings.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
// Code generated by girgen. DO NOT EDIT.
package webkit2
import (
"fmt"
"runtime"
"unsafe"
"github.com/diamondburned/gotk4/pkg/core/gextras"
externglib "github.com/diamondburned/gotk4/pkg/core/glib"
)
// #cgo pkg-config: webkit2gtk-4.0
// #cgo CFLAGS: -Wno-deprecated-declarations
// #include <glib-object.h>
// #include <webkit2/webkit2.h>
import "C"
func init() {
externglib.RegisterGValueMarshalers([]externglib.TypeMarshaler{
{T: externglib.Type(C.webkit_network_proxy_mode_get_type()), F: marshalNetworkProxyMode},
{T: externglib.Type(C.webkit_network_proxy_settings_get_type()), F: marshalNetworkProxySettings},
})
}
// NetworkProxyMode: enum values used to set the network proxy mode.
type NetworkProxyMode int
const (
// NetworkProxyModeDefault: use the default proxy of the system.
NetworkProxyModeDefault NetworkProxyMode = iota
// NetworkProxyModeNoProxy: do not use any proxy.
NetworkProxyModeNoProxy
// NetworkProxyModeCustom: use custom proxy settings.
NetworkProxyModeCustom
)
func marshalNetworkProxyMode(p uintptr) (interface{}, error) {
return NetworkProxyMode(C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p)))), nil
}
// String returns the name in string for NetworkProxyMode.
func (n NetworkProxyMode) String() string {
switch n {
case NetworkProxyModeDefault:
return "Default"
case NetworkProxyModeNoProxy:
return "NoProxy"
case NetworkProxyModeCustom:
return "Custom"
default:
return fmt.Sprintf("NetworkProxyMode(%d)", n)
}
}
// NetworkProxySettings: instance of this type is always passed by reference.
type NetworkProxySettings struct {
*networkProxySettings
}
// networkProxySettings is the struct that's finalized.
type networkProxySettings struct {
native *C.WebKitNetworkProxySettings
}
func marshalNetworkProxySettings(p uintptr) (interface{}, error) {
b := C.g_value_get_boxed((*C.GValue)(unsafe.Pointer(p)))
return &NetworkProxySettings{&networkProxySettings{(*C.WebKitNetworkProxySettings)(unsafe.Pointer(b))}}, nil
}
// NewNetworkProxySettings constructs a struct NetworkProxySettings.
func NewNetworkProxySettings(defaultProxyUri string, ignoreHosts []string) *NetworkProxySettings {
var _arg1 *C.gchar // out
var _arg2 **C.gchar // out
var _cret *C.WebKitNetworkProxySettings // in
if defaultProxyUri != "" {
_arg1 = (*C.gchar)(unsafe.Pointer(C.CString(defaultProxyUri)))
defer C.free(unsafe.Pointer(_arg1))
}
{
_arg2 = (**C.gchar)(C.malloc(C.ulong(len(ignoreHosts)+1) * C.ulong(unsafe.Sizeof(uint(0)))))
defer C.free(unsafe.Pointer(_arg2))
{
out := unsafe.Slice(_arg2, len(ignoreHosts)+1)
var zero *C.gchar
out[len(ignoreHosts)] = zero
for i := range ignoreHosts {
out[i] = (*C.gchar)(unsafe.Pointer(C.CString(ignoreHosts[i])))
defer C.free(unsafe.Pointer(out[i]))
}
}
}
_cret = C.webkit_network_proxy_settings_new(_arg1, _arg2)
runtime.KeepAlive(defaultProxyUri)
runtime.KeepAlive(ignoreHosts)
var _networkProxySettings *NetworkProxySettings // out
_networkProxySettings = (*NetworkProxySettings)(gextras.NewStructNative(unsafe.Pointer(_cret)))
runtime.SetFinalizer(
gextras.StructIntern(unsafe.Pointer(_networkProxySettings)),
func(intern *struct{ C unsafe.Pointer }) {
C.webkit_network_proxy_settings_free((*C.WebKitNetworkProxySettings)(intern.C))
},
)
return _networkProxySettings
}
// AddProxyForScheme adds a URI-scheme-specific proxy. URIs whose scheme matches
// uri_scheme will be proxied via proxy_uri. As with the default proxy URI, if
// proxy_uri starts with "socks://", it will be treated as referring to all
// three of the socks5, socks4a, and socks4 proxy types.
func (proxySettings *NetworkProxySettings) AddProxyForScheme(scheme string, proxyUri string) {
var _arg0 *C.WebKitNetworkProxySettings // out
var _arg1 *C.gchar // out
var _arg2 *C.gchar // out
_arg0 = (*C.WebKitNetworkProxySettings)(gextras.StructNative(unsafe.Pointer(proxySettings)))
_arg1 = (*C.gchar)(unsafe.Pointer(C.CString(scheme)))
defer C.free(unsafe.Pointer(_arg1))
_arg2 = (*C.gchar)(unsafe.Pointer(C.CString(proxyUri)))
defer C.free(unsafe.Pointer(_arg2))
C.webkit_network_proxy_settings_add_proxy_for_scheme(_arg0, _arg1, _arg2)
runtime.KeepAlive(proxySettings)
runtime.KeepAlive(scheme)
runtime.KeepAlive(proxyUri)
}
// Copy: make a copy of the KitNetworkProxySettings.
func (proxySettings *NetworkProxySettings) Copy() *NetworkProxySettings {
var _arg0 *C.WebKitNetworkProxySettings // out
var _cret *C.WebKitNetworkProxySettings // in
_arg0 = (*C.WebKitNetworkProxySettings)(gextras.StructNative(unsafe.Pointer(proxySettings)))
_cret = C.webkit_network_proxy_settings_copy(_arg0)
runtime.KeepAlive(proxySettings)
var _networkProxySettings *NetworkProxySettings // out
_networkProxySettings = (*NetworkProxySettings)(gextras.NewStructNative(unsafe.Pointer(_cret)))
runtime.SetFinalizer(
gextras.StructIntern(unsafe.Pointer(_networkProxySettings)),
func(intern *struct{ C unsafe.Pointer }) {
C.webkit_network_proxy_settings_free((*C.WebKitNetworkProxySettings)(intern.C))
},
)
return _networkProxySettings
}