@@ -9,6 +9,7 @@ package goesl
9
9
import (
10
10
"bufio"
11
11
"fmt"
12
+ "io"
12
13
"time"
13
14
)
14
15
@@ -41,30 +42,31 @@ func (c *Client) EstablishConnection() error {
41
42
func (c * Client ) Authenticate () error {
42
43
43
44
m , err := newMessage (bufio .NewReaderSize (c , ReadBufferSize ), false )
44
-
45
45
if err != nil {
46
46
Error (ECouldNotCreateMessage , err )
47
47
return err
48
48
}
49
49
50
50
cmr , err := m .tr .ReadMIMEHeader ()
51
-
52
- Debug ("A: %v %v " , cmr , err )
53
-
54
51
if err != nil && err .Error () != "EOF" {
55
52
Error (ECouldNotReadMIMEHeaders , err )
56
53
return err
57
54
}
58
55
56
+ Debug ("A: %v\n " , cmr )
57
+
59
58
if cmr .Get ("Content-Type" ) != "auth/request" {
60
59
Error (EUnexpectedAuthHeader , cmr .Get ("Content-Type" ))
61
60
return fmt .Errorf (EUnexpectedAuthHeader , cmr .Get ("Content-Type" ))
62
61
}
63
62
64
- fmt .Fprintf (c , "auth %s\r \n \r \n " , c .Passwd )
63
+ s := "auth " + c .Passwd + "\r \n \r \n "
64
+ _ , err = io .WriteString (c , s )
65
+ if err != nil {
66
+ return err
67
+ }
65
68
66
69
am , err := m .tr .ReadMIMEHeader ()
67
-
68
70
if err != nil && err .Error () != "EOF" {
69
71
Error (ECouldNotReadMIMEHeaders , err )
70
72
return err
@@ -80,22 +82,24 @@ func (c *Client) Authenticate() error {
80
82
81
83
// NewClient - Will initiate new client that will establish connection and attempt to authenticate
82
84
// against connected freeswitch server
83
- func NewClient (host string , port uint , passwd string , timeout int ) (Client , error ) {
85
+ func NewClient (host string , port uint , passwd string , timeout int ) (* Client , error ) {
84
86
client := Client {
85
87
Proto : "tcp" , // Let me know if you ever need this open up lol
86
88
Addr : fmt .Sprintf ("%s:%d" , host , port ),
87
89
Passwd : passwd ,
88
90
Timeout : timeout ,
89
91
}
90
92
91
- if err := client .EstablishConnection (); err != nil {
92
- return client , err
93
+ err := client .EstablishConnection ()
94
+ if err != nil {
95
+ return nil , err
93
96
}
94
97
95
- if err := client .Authenticate (); err != nil {
98
+ err = client .Authenticate ()
99
+ if err != nil {
96
100
client .Close ()
97
- return client , err
101
+ return nil , err
98
102
}
99
103
100
- return client , nil
104
+ return & client , nil
101
105
}
0 commit comments