Skip to content

Commit de9cae6

Browse files
authored
remove xdp and pkgutils packages (#710)
* remove xdp and pkgutils packages
1 parent 6f20336 commit de9cae6

File tree

125 files changed

+319
-365
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

125 files changed

+319
-365
lines changed

.github/workflows/testing-dnstap.yml

+7-7
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
4848
- name: Deploy docker image
4949
run: |
50-
sudo docker run -d --network="host" --name=unbound --volume=$PWD/testsdata/unbound/unbound_${{ matrix.mode }}.conf:/opt/unbound/etc/unbound/unbound.conf:z -v /tmp/:/opt/unbound/etc/unbound/tmp/:z mvance/unbound:${{ matrix.unbound }}
50+
sudo docker run -d --network="host" --name=unbound --volume=$PWD/tests/testsdata/unbound/unbound_${{ matrix.mode }}.conf:/opt/unbound/etc/unbound/unbound.conf:z -v /tmp/:/opt/unbound/etc/unbound/tmp/:z mvance/unbound:${{ matrix.unbound }}
5151
until (dig -p 5553 www.github.com @127.0.0.1 | grep NOERROR); do sleep 5.0; done
5252
5353
- name: Test ${{ matrix.mode }}
@@ -82,7 +82,7 @@ jobs:
8282
8383
- name: Deploy coredns docker image
8484
run: |
85-
sudo docker run -d --network="host" --name=coredns -v $PWD/testsdata/:$PWD/testsdata/ -v /tmp/:/tmp/ coredns/coredns:${{ matrix.coredns }} -conf $PWD/testsdata/coredns/coredns_${{ matrix.mode }}.conf
85+
sudo docker run -d --network="host" --name=coredns -v $PWD/tests/testsdata/:$PWD/tests/testsdata/ -v /tmp/:/tmp/ coredns/coredns:${{ matrix.coredns }} -conf $PWD/tests/testsdata/coredns/coredns_${{ matrix.mode }}.conf
8686
until (dig -p 5553 www.github.com @127.0.0.1 | grep NOERROR); do sleep 5.0; done
8787
8888
- name: Test ${{ matrix.mode }}
@@ -122,12 +122,12 @@ jobs:
122122
openssl req -new -passin file:passphrase.txt -key server.key -out server.csr -subj "/C=FR/O=krkr/OU=Domain Control Validated/CN=*.krkr.io"
123123
openssl rsa -in server.key -passin file:passphrase.txt -out dnscollector.key
124124
openssl x509 -req -days 36500 -in server.csr -signkey dnscollector.key -out dnscollector.crt
125-
mv dnscollector.key ./testsdata/
126-
mv dnscollector.crt ./testsdata/
125+
mv dnscollector.key ./tests/testsdata/
126+
mv dnscollector.crt ./tests/testsdata/
127127
128128
- name: Deploy coredns docker image
129129
run: |
130-
sudo docker run -d --network="host" --name=coredns -v $PWD/testsdata/:$PWD/testsdata/ -v /tmp/:/tmp/ coredns/coredns:${{ matrix.coredns }} -conf $PWD/testsdata/coredns/coredns_${{ matrix.mode }}.conf
130+
sudo docker run -d --network="host" --name=coredns -v $PWD/tests/testsdata/:$PWD/tests/testsdata/ -v /tmp/:/tmp/ coredns/coredns:${{ matrix.coredns }} -conf $PWD/tests/testsdata/coredns/coredns_${{ matrix.mode }}.conf
131131
until (dig -p 5553 www.github.com @127.0.0.1 | grep NOERROR); do sleep 5.0; done
132132
133133
- name: Test ${{ matrix.mode }}
@@ -170,7 +170,7 @@ jobs:
170170
171171
- name: Deploy dnsdist docker image
172172
run: |
173-
sudo docker run -d --network="host" --name=dnsdist --volume=$PWD/testsdata/powerdns/dnsdist_${{ matrix.mode }}.conf:/etc/dnsdist/conf.d/dnsdist.conf:z -v /tmp/:/tmp/ powerdns/dnsdist-${{ matrix.dnsdist }}
173+
sudo docker run -d --network="host" --name=dnsdist --volume=$PWD/tests/testsdata/powerdns/dnsdist_${{ matrix.mode }}.conf:/etc/dnsdist/conf.d/dnsdist.conf:z -v /tmp/:/tmp/ powerdns/dnsdist-${{ matrix.dnsdist }}
174174
until (dig -p 5553 www.github.com @127.0.0.1 | grep NOERROR); do sleep 5.0; done
175175
176176
- name: Test ${{ matrix.mode }}
@@ -218,7 +218,7 @@ jobs:
218218
219219
- name: Deploy dnsdist docker image
220220
run: |
221-
sudo docker run -d --network="host" --name=dnsdist --volume=$PWD/testsdata/powerdns/dnsdist_dox.conf:/etc/dnsdist/conf.d/dnsdist.conf:z --volume=$PWD/server.key:/etc/dnsdist/conf.d/server.key:z --volume=$PWD/server.crt:/etc/dnsdist/conf.d/server.crt:z powerdns/dnsdist-${{ matrix.dnsdist }}
221+
sudo docker run -d --network="host" --name=dnsdist --volume=$PWD/tests/testsdata/powerdns/dnsdist_dox.conf:/etc/dnsdist/conf.d/dnsdist.conf:z --volume=$PWD/server.key:/etc/dnsdist/conf.d/server.key:z --volume=$PWD/server.crt:/etc/dnsdist/conf.d/server.crt:z powerdns/dnsdist-${{ matrix.dnsdist }}
222222
until (dig -p 5553 www.github.com @127.0.0.1 | grep NOERROR); do sleep 5.0; done
223223
224224
- name: Tests

.github/workflows/testing-go.yml

+2-3
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ jobs:
2727
- '.'
2828
- 'pkgconfig'
2929
- 'pkglinker'
30-
- 'pkgutils'
3130
- 'dnsutils'
3231
- 'workers'
3332
- 'transformers'
@@ -110,7 +109,7 @@ jobs:
110109
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o go-dnscollector *.go
111110
112111
- name: run collector
113-
run: ./go-dnscollector -config ./testsdata/config_prom.yml &
112+
run: ./go-dnscollector -config ./tests/testsdata/config_prom.yml &
114113

115114
- name: download dnstap generator
116115
run: |
@@ -143,7 +142,7 @@ jobs:
143142

144143
- id: count_tests
145144
run: |
146-
data=$(sudo go test -timeout 360s -v ./workers ./dnsutils ./netutils ./transformers ./pkgconfig ./pkglinker ./pkgutils ././ 2>&1 | grep -c RUN)
145+
data=$(sudo go test -timeout 360s -v ./workers ./dnsutils ./netutils ./transformers ./pkgconfig ./pkglinker ././ 2>&1 | grep -c RUN)
147146
echo "Count of Tests: $data"
148147
echo "data=$data" >> $GITHUB_OUTPUT
149148

.github/workflows/testing-powerdns.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
4747
- name: Deploy dnsdist docker image
4848
run: |
49-
sudo docker run -d --network="host" --name=dnsdist --volume=$PWD/testsdata/powerdns/dnsdist_protobuf.conf:/etc/dnsdist/conf.d/dnsdist.conf:z -v /tmp/:/tmp/ powerdns/dnsdist-${{ matrix.dnsdist }}
49+
sudo docker run -d --network="host" --name=dnsdist --volume=$PWD/tests/testsdata/powerdns/dnsdist_protobuf.conf:/etc/dnsdist/conf.d/dnsdist.conf:z -v /tmp/:/tmp/ powerdns/dnsdist-${{ matrix.dnsdist }}
5050
until (dig -p 5553 www.github.com @127.0.0.1 | grep NOERROR); do sleep 5.0; done
5151
5252
- name: Test dns query
@@ -79,7 +79,7 @@ jobs:
7979
8080
- name: Deploy recursor docker image
8181
run: |
82-
sudo docker run -d --network="host" --name=recursor --volume=$PWD/testsdata/powerdns/pdns_recursor.lua:/etc/powerdns/recursor.lua:z --volume=$PWD/testsdata/powerdns/pdns_recursor.conf:/etc/powerdns/recursor.conf:z powerdns/pdns-recursor-${{ matrix.recursor }}
82+
sudo docker run -d --network="host" --name=recursor --volume=$PWD/tests/testsdata/powerdns/pdns_recursor.lua:/etc/powerdns/recursor.lua:z --volume=$PWD/tests/testsdata/powerdns/pdns_recursor.conf:/etc/powerdns/recursor.conf:z powerdns/pdns-recursor-${{ matrix.recursor }}
8383
until (dig -p 5553 www.github.com @127.0.0.1 | grep NOERROR); do sleep 5.0; done
8484
8585
- name: Test send query

dnscollector.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111

1212
"github.com/dmachard/go-dnscollector/pkgconfig"
1313
"github.com/dmachard/go-dnscollector/pkglinker"
14-
"github.com/dmachard/go-dnscollector/pkgutils"
14+
"github.com/dmachard/go-dnscollector/workers"
1515
"github.com/dmachard/go-logger"
1616
"github.com/natefinch/lumberjack"
1717
"github.com/prometheus/common/version"
@@ -107,8 +107,8 @@ func main() {
107107
logger.Info("main - starting dns-collector...")
108108

109109
// init active collectors and loggers
110-
mapLoggers := make(map[string]pkgutils.Worker)
111-
mapCollectors := make(map[string]pkgutils.Worker)
110+
mapLoggers := make(map[string]workers.Worker)
111+
mapCollectors := make(map[string]workers.Worker)
112112

113113
// running mode,
114114
// multiplexer ?

dnsutils/message.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1421,7 +1421,7 @@ func (dm *DNSMessage) Matching(matching map[string]interface{}) (error, bool) {
14211421

14221422
// map can be provided by user in the config
14231423
// dns.qname:
1424-
// match-source: "file://./testsdata/filtering_keep_domains_regex.txt"
1424+
// match-source: "file://./tests/testsdata/filtering_keep_domains_regex.txt"
14251425
// source-kind: "regexp_list"
14261426
func matchUserMap(realValue, expectedValue reflect.Value) (bool, error) {
14271427
for _, opKey := range expectedValue.MapKeys() {

docs/_examples/use-case-11.pipeline.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pipelines:
1212
listen-port: 6000
1313
transforms:
1414
geoip:
15-
mmdb-country-file: "./testsdata/GeoLite2-Country.mmdb"
15+
mmdb-country-file: "./tests/testsdata/GeoLite2-Country.mmdb"
1616
routing-policy:
1717
default: [ console ]
1818

docs/_examples/use-case-9.pipeline.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ pipelines:
1212
listen-port: 6000
1313
transforms:
1414
filtering:
15-
keep-domain-file: ./testsdata/filtering_fqdn.txt
15+
keep-domain-file: ./tests/testsdata/filtering_fqdn.txt
1616
routing-policy:
1717
default: [ console ]
1818

docs/_examples/use-case-9.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ multiplexer:
2323
transforms:
2424
filtering:
2525
downsample: 1
26-
keep-domain-file: ./testsdata/filtering_fqdn.txt
26+
keep-domain-file: ./tests/testsdata/filtering_fqdn.txt
2727

2828
# Print DNS messages on standard output with TEXT format
2929
loggers:

docs/development.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -178,11 +178,11 @@ import (
178178
)
179179

180180
type MyWorker struct {
181-
*pkgutils.GenericWorker
181+
*GenericWorker
182182
}
183183

184184
func NewMyWorker(config *pkgconfig.Config, console *logger.Logger, name string) *MyWorker {
185-
s := &MyWorker{GenericWorker: pkgutils.NewGenericWorker(config, console, name, "worker", DefaultBufferSize)}
185+
s := &MyWorker{GenericWorker: NewGenericWorker(config, console, name, "worker", DefaultBufferSize)}
186186
s.ReadConfig()
187187
return s
188188
}

docs/loggers/logger_restapi.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ restapi:
5252
basic-auth-pwd: changeme
5353
tls-support: true
5454
tls-min-version: 1.2
55-
cert-file: "./testsdata/server.crt"
56-
key-file: "./testsdata/server.key"
55+
cert-file: "./tests/testsdata/server.crt"
56+
key-file: "./tests/testsdata/server.key"
5757
top-n: 100
5858
chan-buffer-size: 65535
5959
```
File renamed without changes.

netutils/bpf.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ func Htons(v uint16) int {
1616
return int((v << 8) | (v >> 8))
1717
}
1818

19-
func GetBpfFilter(port int) []bpf.Instruction {
19+
func GetBpfFilterPort(port int) []bpf.Instruction {
2020
// bpf filter: (ip or ip6 ) and (udp or tcp) and port 53
2121
// fragmented packets are ignored
2222
var filter = []bpf.Instruction{

xdp/bpf_bpfeb.go netutils/bpf_bpfeb.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
File renamed without changes.

xdp/bpf_bpfel.go netutils/bpf_bpfel.go

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
File renamed without changes.

netutils/packetprocessor_test.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ func Test_IpDefrag(t *testing.T) {
1818
}{
1919
{
2020
name: "DNS UDP with IPv4 Fragmented",
21-
pcapFile: "./../testsdata/pcap/dnsdump_ip4_fragmented+udp.pcap",
21+
pcapFile: "./../tests/testsdata/pcap/dnsdump_ip4_fragmented+udp.pcap",
2222
nbPackets: 2,
2323
},
2424

2525
{
2626
name: "DNS UDP with IPv6 Fragmented",
27-
pcapFile: "./../testsdata/pcap/dnsdump_ip6_fragmented+udp.pcap",
27+
pcapFile: "./../tests/testsdata/pcap/dnsdump_ip6_fragmented+udp.pcap",
2828
nbPackets: 2,
2929
},
3030
}

netutils/tcpassembly_test.go

+5-5
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,31 @@ func Test_TcpAssembly(t *testing.T) {
1818
}{
1919
{
2020
name: "DNS UDP",
21-
pcapFile: "./../testsdata/pcap/dnsdump_udp.pcap",
21+
pcapFile: "./../tests/testsdata/pcap/dnsdump_udp.pcap",
2222
nbPackets: 33,
2323
},
2424

2525
{
2626
name: "DNS TCP",
27-
pcapFile: "./../testsdata/pcap/dnsdump_tcp.pcap",
27+
pcapFile: "./../tests/testsdata/pcap/dnsdump_tcp.pcap",
2828
nbPackets: 10,
2929
},
3030

3131
{
3232
name: "DNS UDP+TCP",
33-
pcapFile: "./../testsdata/pcap/dnsdump_udp+tcp.pcap",
33+
pcapFile: "./../tests/testsdata/pcap/dnsdump_udp+tcp.pcap",
3434
nbPackets: 4,
3535
},
3636

3737
{
3838
name: "DNS UDP Truncated + TCP fragmented",
39-
pcapFile: "./../testsdata/pcap/dnsdump_udp_truncated+tcp_fragmented.pcap",
39+
pcapFile: "./../tests/testsdata/pcap/dnsdump_udp_truncated+tcp_fragmented.pcap",
4040
nbPackets: 4,
4141
},
4242

4343
{
4444
name: "DNS TCP FASTOPEN",
45-
pcapFile: "./../testsdata/pcap/dnsdump_tcp_fastopen.pcap",
45+
pcapFile: "./../tests/testsdata/pcap/dnsdump_tcp_fastopen.pcap",
4646
nbPackets: 8,
4747
},
4848
}

xdp/xdp.go netutils/xdp.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
package xdp
1+
package netutils
22

33
//go:generate go run github.com/cilium/ebpf/cmd/bpf2go -type pkt_event bpf xdp_dns_kern.c -- -I./headers
File renamed without changes.

pkgconfig/constants.go

+15
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,18 @@ var (
5656
TLSV13: tls.VersionTLS13,
5757
}
5858
)
59+
60+
var (
61+
PrefixLogWorker = "worker - "
62+
PrefixLogTransformer = "transformer - "
63+
DefaultBufferSize = 512
64+
DefaultBufferOne = 1
65+
DefaultMonitor = true
66+
WorkerMonitorDisabled = false
67+
68+
ExpectedQname = "dnscollector.dev"
69+
ExpectedQname2 = "dns.collector"
70+
ExpectedBufferMsg511 = ".*buffer is full, 511.*"
71+
ExpectedBufferMsg1023 = ".*buffer is full, 1023.*"
72+
ExpectedIdentity = "powerdnspb"
73+
)

pkglinker/multiplexer.go

+3-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"strings"
66

77
"github.com/dmachard/go-dnscollector/pkgconfig"
8-
"github.com/dmachard/go-dnscollector/pkgutils"
98
"github.com/dmachard/go-dnscollector/workers"
109
"github.com/dmachard/go-logger"
1110
"gopkg.in/yaml.v2"
@@ -86,7 +85,7 @@ func GetItemConfig(section string, config *pkgconfig.Config, item pkgconfig.Mult
8685
return subcfg
8786
}
8887

89-
func InitMultiplexer(mapLoggers map[string]pkgutils.Worker, mapCollectors map[string]pkgutils.Worker, config *pkgconfig.Config, logger *logger.Logger) {
88+
func InitMultiplexer(mapLoggers map[string]workers.Worker, mapCollectors map[string]workers.Worker, config *pkgconfig.Config, logger *logger.Logger) {
9089

9190
// checking all routes before to continue
9291
if err := AreRoutesValid(config); err != nil {
@@ -191,7 +190,7 @@ func InitMultiplexer(mapLoggers map[string]pkgutils.Worker, mapCollectors map[st
191190
// here the multiplexer logic
192191
// connect collectors between loggers
193192
for _, route := range config.Multiplexer.Routes {
194-
var logwrks []pkgutils.Worker
193+
var logwrks []workers.Worker
195194
for _, dst := range route.Dst {
196195
if _, ok := mapLoggers[dst]; ok {
197196
logwrks = append(logwrks, mapLoggers[dst])
@@ -212,7 +211,7 @@ func InitMultiplexer(mapLoggers map[string]pkgutils.Worker, mapCollectors map[st
212211
}
213212
}
214213

215-
func ReloadMultiplexer(mapLoggers map[string]pkgutils.Worker, mapCollectors map[string]pkgutils.Worker, config *pkgconfig.Config, logger *logger.Logger) {
214+
func ReloadMultiplexer(mapLoggers map[string]workers.Worker, mapCollectors map[string]workers.Worker, config *pkgconfig.Config, logger *logger.Logger) {
216215
for _, output := range config.Multiplexer.Loggers {
217216
newcfg := GetItemConfig("loggers", config, output)
218217
if _, ok := mapLoggers[output.Name]; ok {

pkglinker/pipelines.go

+4-5
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"fmt"
55

66
"github.com/dmachard/go-dnscollector/pkgconfig"
7-
"github.com/dmachard/go-dnscollector/pkgutils"
87
"github.com/dmachard/go-dnscollector/workers"
98
"github.com/dmachard/go-logger"
109
"github.com/pkg/errors"
@@ -81,8 +80,8 @@ func IsRouteExist(target string, config *pkgconfig.Config) (ret error) {
8180
return fmt.Errorf("route=%s doest not exist", target)
8281
}
8382

84-
func CreateRouting(stanza pkgconfig.ConfigPipelines, mapCollectors map[string]pkgutils.Worker, mapLoggers map[string]pkgutils.Worker, logger *logger.Logger) {
85-
var currentStanza pkgutils.Worker
83+
func CreateRouting(stanza pkgconfig.ConfigPipelines, mapCollectors map[string]workers.Worker, mapLoggers map[string]workers.Worker, logger *logger.Logger) {
84+
var currentStanza workers.Worker
8685
if collector, ok := mapCollectors[stanza.Name]; ok {
8786
currentStanza = collector
8887
}
@@ -121,7 +120,7 @@ func CreateRouting(stanza pkgconfig.ConfigPipelines, mapCollectors map[string]pk
121120
}
122121
}
123122

124-
func CreateStanza(stanzaName string, config *pkgconfig.Config, mapCollectors map[string]pkgutils.Worker, mapLoggers map[string]pkgutils.Worker, logger *logger.Logger) {
123+
func CreateStanza(stanzaName string, config *pkgconfig.Config, mapCollectors map[string]workers.Worker, mapLoggers map[string]workers.Worker, logger *logger.Logger) {
125124
// register the logger if enabled
126125
if config.Loggers.RestAPI.Enable {
127126
mapLoggers[stanzaName] = workers.NewRestAPI(config, logger, stanzaName)
@@ -205,7 +204,7 @@ func CreateStanza(stanzaName string, config *pkgconfig.Config, mapCollectors map
205204
}
206205
}
207206

208-
func InitPipelines(mapLoggers map[string]pkgutils.Worker, mapCollectors map[string]pkgutils.Worker, config *pkgconfig.Config, logger *logger.Logger) error {
207+
func InitPipelines(mapLoggers map[string]workers.Worker, mapCollectors map[string]workers.Worker, config *pkgconfig.Config, logger *logger.Logger) error {
209208
// check if the name of each stanza is uniq
210209
for _, stanza := range config.Pipelines {
211210
if err := StanzaNameIsUniq(stanza.Name, config); err != nil {

pkgutils/constant.go

-16
This file was deleted.

tests/bench.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ def test_stdout_recv(self):
5454
async def run():
5555
# run collector
5656
is_listening = asyncio.Future()
57-
args = ( "./go-dnscollector", "-config", "./testsdata/config_bench.yml",)
57+
args = ( "./go-dnscollector", "-config", "./tests/testsdata/config_bench.yml",)
5858
transport_collector, protocol_collector = await self.loop.subprocess_exec(lambda: CollectorProc(is_listening),
5959
*args, stdout=asyncio.subprocess.PIPE)
6060

tests/clientquery_dnstaptcp.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ async def run():
8383
# run collector
8484
is_listening = asyncio.Future()
8585
is_clientquery = asyncio.Future()
86-
args = ( "./go-dnscollector", "-config", "./testsdata/config_stdout_dnstaptcp.yml",)
86+
args = ( "./go-dnscollector", "-config", "./tests/testsdata/config_stdout_dnstaptcp.yml",)
8787
transport_collector, protocol_collector = await self.loop.subprocess_exec(lambda: ProcessProtocol(is_listening, is_clientquery),
8888
*args, stdout=asyncio.subprocess.PIPE)
8989

tests/clientquery_dnstapunix.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ async def run():
8383
# run collector
8484
is_listening = asyncio.Future()
8585
is_clientquery = asyncio.Future()
86-
args = ( "./go-dnscollector", "-config", "./testsdata/config_stdout_dnstapunix.yml",)
86+
args = ( "./go-dnscollector", "-config", "./tests/testsdata/config_stdout_dnstapunix.yml",)
8787
transport_collector, protocol_collector = await self.loop.subprocess_exec(lambda: ProcessProtocol(is_listening, is_clientquery),
8888
*args, stdout=asyncio.subprocess.PIPE)
8989

0 commit comments

Comments
 (0)