@@ -64,10 +64,23 @@ func (b *baseBGPQWorker) runCommand(args []string) (ixtypes.PrefixFilters, error
6464 return filters , nil
6565}
6666
67- func NewBGPQ3Worker () * BGPQ3Worker {
67+ func NewBGPQ3Worker (path string ) * BGPQ3Worker {
68+ var executable string
69+ if path != "" {
70+ if _ , err := os .Stat (path ); err == nil {
71+ // check if path is executable on linux or mac
72+ executable = path
73+ } else {
74+ log .Printf ("Warning: %s is not a valid executable file, will use default executable" , path )
75+ executable = findExecutable (getExecutableName ("bgpq3" ))
76+ }
77+ } else {
78+ executable = findExecutable (getExecutableName ("bgpq3" ))
79+ }
80+
6881 return & BGPQ3Worker {
6982 baseBGPQWorker {config : BGPQConfig {
70- Executable : findExecutable ( getExecutableName ( "bgpq3" )) ,
83+ Executable : executable ,
7184 Version : 3 ,
7285 }},
7386 }
@@ -86,20 +99,33 @@ type BGPQ4Worker struct {
8699 baseBGPQWorker
87100}
88101
89- func NewBGPQ4Worker () * BGPQ4Worker {
102+ func NewBGPQ4Worker (path string ) * BGPQ4Worker {
103+ var executable string
104+ if path != "" {
105+ if _ , err := os .Stat (path ); err == nil {
106+ // check if path is executable on linux or mac
107+ executable = path
108+ } else {
109+ log .Printf ("Warning: %s is not a valid executable file, will use default executable" , path )
110+ executable = findExecutable (getExecutableName ("bgpq4" ))
111+ }
112+ } else {
113+ executable = findExecutable (getExecutableName ("bgpq4" ))
114+ }
115+
90116 return & BGPQ4Worker {
91117 baseBGPQWorker {config : BGPQConfig {
92- Executable : findExecutable ( getExecutableName ( "bgpq4" )) ,
118+ Executable : executable ,
93119 Version : 4 ,
94120 }},
95121 }
96122}
97123
98- func NewBGPQWorker (version int ) BGPQ {
124+ func NewBGPQWorker (version int , path string ) BGPQ {
99125 if version == 4 {
100- return NewBGPQ4Worker ()
126+ return NewBGPQ4Worker (path )
101127 }
102- return NewBGPQ3Worker ()
128+ return NewBGPQ3Worker (path )
103129}
104130
105131// GenPrefixList generates the prefix lists in bgqp4 way
0 commit comments