MCPcopy
hub / github.com/42wim/matterbridge / getClient

Method getClient

bridge/irc/irc.go:270–330  ·  view source on GitHub ↗

validateInput validates the server/port/nick configuration. Returns a *girc.Client if successful

()

Source from the content-addressed store, hash-verified

268
269// validateInput validates the server/port/nick configuration. Returns a *girc.Client if successful
270func (b *Birc) getClient() (*girc.Client, error) {
271 server, portstr, err := net.SplitHostPort(b.GetString("Server"))
272 if err != nil {
273 return nil, err
274 }
275 port, err := strconv.Atoi(portstr)
276 if err != nil {
277 return nil, err
278 }
279 user := b.GetString("UserName")
280 if user == "" {
281 user = b.GetString("Nick")
282 }
283 // fix strict user handling of girc
284 for !girc.IsValidUser(user) {
285 if len(user) == 1 || len(user) == 0 {
286 user = "matterbridge"
287 break
288 }
289 user = user[1:]
290 }
291 realName := b.GetString("RealName")
292 if realName == "" {
293 realName = b.GetString("Nick")
294 }
295
296 debug := ioutil.Discard
297 if b.GetInt("DebugLevel") == 2 {
298 debug = b.Log.Writer()
299 }
300
301 pingDelay, err := time.ParseDuration(b.GetString("pingdelay"))
302 if err != nil || pingDelay == 0 {
303 pingDelay = time.Minute
304 }
305
306 b.Log.Debugf("setting pingdelay to %s", pingDelay)
307
308 tlsConfig, err := b.getTLSConfig()
309 if err != nil {
310 return nil, err
311 }
312
313 i := girc.New(girc.Config{
314 Server: server,
315 ServerPass: b.GetString("Password"),
316 Port: port,
317 Nick: b.GetString("Nick"),
318 User: user,
319 Name: realName,
320 SSL: b.GetBool("UseTLS"),
321 Bind: b.GetString("Bind"),
322 TLSConfig: tlsConfig,
323 PingDelay: pingDelay,
324 // skip gIRC internal rate limiting, since we have our own throttling
325 AllowFlood: true,
326 Debug: debug,
327 SupportedCaps: map[string][]string{"overdrivenetworks.com/relaymsg": nil, "draft/relaymsg": nil},

Callers 1

ConnectMethod · 0.95

Calls 4

getTLSConfigMethod · 0.95
GetStringMethod · 0.65
GetIntMethod · 0.65
GetBoolMethod · 0.65

Tested by

no test coverage detected