summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/lib/pq/notify.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/lib/pq/notify.go')
-rw-r--r--vendor/github.com/lib/pq/notify.go22
1 files changed, 19 insertions, 3 deletions
diff --git a/vendor/github.com/lib/pq/notify.go b/vendor/github.com/lib/pq/notify.go
index 8cad57815..09f94244b 100644
--- a/vendor/github.com/lib/pq/notify.go
+++ b/vendor/github.com/lib/pq/notify.go
@@ -62,14 +62,18 @@ type ListenerConn struct {
// Creates a new ListenerConn. Use NewListener instead.
func NewListenerConn(name string, notificationChan chan<- *Notification) (*ListenerConn, error) {
- cn, err := Open(name)
+ return newDialListenerConn(defaultDialer{}, name, notificationChan)
+}
+
+func newDialListenerConn(d Dialer, name string, c chan<- *Notification) (*ListenerConn, error) {
+ cn, err := DialOpen(d, name)
if err != nil {
return nil, err
}
l := &ListenerConn{
cn: cn.(*conn),
- notificationChan: notificationChan,
+ notificationChan: c,
connState: connStateIdle,
replyChan: make(chan message, 2),
}
@@ -391,6 +395,7 @@ type Listener struct {
name string
minReconnectInterval time.Duration
maxReconnectInterval time.Duration
+ dialer Dialer
eventCallback EventCallbackType
lock sync.Mutex
@@ -421,10 +426,21 @@ func NewListener(name string,
minReconnectInterval time.Duration,
maxReconnectInterval time.Duration,
eventCallback EventCallbackType) *Listener {
+ return NewDialListener(defaultDialer{}, name, minReconnectInterval, maxReconnectInterval, eventCallback)
+}
+
+// NewDialListener is like NewListener but it takes a Dialer.
+func NewDialListener(d Dialer,
+ name string,
+ minReconnectInterval time.Duration,
+ maxReconnectInterval time.Duration,
+ eventCallback EventCallbackType) *Listener {
+
l := &Listener{
name: name,
minReconnectInterval: minReconnectInterval,
maxReconnectInterval: maxReconnectInterval,
+ dialer: d,
eventCallback: eventCallback,
channels: make(map[string]struct{}),
@@ -660,7 +676,7 @@ func (l *Listener) closed() bool {
func (l *Listener) connect() error {
notificationChan := make(chan *Notification, 32)
- cn, err := NewListenerConn(l.name, notificationChan)
+ cn, err := newDialListenerConn(l.dialer, l.name, notificationChan)
if err != nil {
return err
}