@@ -33,22 +33,22 @@ func NewServer() *Server {
33
33
}
34
34
35
35
//Sets the syslog format (RFC3164 or RFC5424 or RFC6587)
36
- func (self * Server ) SetFormat (f format.Format ) {
37
- self .format = f
36
+ func (s * Server ) SetFormat (f format.Format ) {
37
+ s .format = f
38
38
}
39
39
40
40
//Sets the handler, this handler with receive every syslog entry
41
- func (self * Server ) SetHandler (handler Handler ) {
42
- self .handler = handler
41
+ func (s * Server ) SetHandler (handler Handler ) {
42
+ s .handler = handler
43
43
}
44
44
45
45
//Sets the connection timeout for TCP connections, in milliseconds
46
- func (self * Server ) SetTimeout (millseconds int64 ) {
47
- self .readTimeoutMilliseconds = millseconds
46
+ func (s * Server ) SetTimeout (millseconds int64 ) {
47
+ s .readTimeoutMilliseconds = millseconds
48
48
}
49
49
50
50
//Configure the server for listen on an UDP addr
51
- func (self * Server ) ListenUDP (addr string ) error {
51
+ func (s * Server ) ListenUDP (addr string ) error {
52
52
udpAddr , err := net .ResolveUDPAddr ("udp" , addr )
53
53
if err != nil {
54
54
return err
@@ -59,12 +59,12 @@ func (self *Server) ListenUDP(addr string) error {
59
59
return err
60
60
}
61
61
62
- self .connections = append (self .connections , connection )
62
+ s .connections = append (s .connections , connection )
63
63
return nil
64
64
}
65
65
66
66
//Configure the server for listen on an unix socket
67
- func (self * Server ) ListenUnixgram (addr string ) error {
67
+ func (s * Server ) ListenUnixgram (addr string ) error {
68
68
unixAddr , err := net .ResolveUnixAddr ("unixgram" , addr )
69
69
if err != nil {
70
70
return err
@@ -75,12 +75,12 @@ func (self *Server) ListenUnixgram(addr string) error {
75
75
return err
76
76
}
77
77
78
- self .connections = append (self .connections , connection )
78
+ s .connections = append (s .connections , connection )
79
79
return nil
80
80
}
81
81
82
82
//Configure the server for listen on a TCP addr
83
- func (self * Server ) ListenTCP (addr string ) error {
83
+ func (s * Server ) ListenTCP (addr string ) error {
84
84
tcpAddr , err := net .ResolveTCPAddr ("tcp" , addr )
85
85
if err != nil {
86
86
return err
@@ -91,39 +91,39 @@ func (self *Server) ListenTCP(addr string) error {
91
91
return err
92
92
}
93
93
94
- self .doneTcp = make (chan bool )
95
- self .listeners = append (self .listeners , listener )
94
+ s .doneTcp = make (chan bool )
95
+ s .listeners = append (s .listeners , listener )
96
96
return nil
97
97
}
98
98
99
99
//Starts the server, all the go routines goes to live
100
- func (self * Server ) Boot () error {
101
- if self .format == nil {
100
+ func (s * Server ) Boot () error {
101
+ if s .format == nil {
102
102
return errors .New ("please set a valid format" )
103
103
}
104
104
105
- if self .handler == nil {
105
+ if s .handler == nil {
106
106
return errors .New ("please set a valid handler" )
107
107
}
108
108
109
- for _ , listener := range self .listeners {
110
- self .goAcceptConnection (listener )
109
+ for _ , listener := range s .listeners {
110
+ s .goAcceptConnection (listener )
111
111
}
112
112
113
- for _ , connection := range self .connections {
114
- self .goScanConnection (connection , false )
113
+ for _ , connection := range s .connections {
114
+ s .goScanConnection (connection , false )
115
115
}
116
116
117
117
return nil
118
118
}
119
119
120
- func (self * Server ) goAcceptConnection (listener * net.TCPListener ) {
121
- self .wait .Add (1 )
120
+ func (s * Server ) goAcceptConnection (listener * net.TCPListener ) {
121
+ s .wait .Add (1 )
122
122
go func (listener * net.TCPListener ) {
123
123
loop:
124
124
for {
125
125
select {
126
- case <- self .doneTcp :
126
+ case <- s .doneTcp :
127
127
break loop
128
128
default :
129
129
}
@@ -132,16 +132,16 @@ func (self *Server) goAcceptConnection(listener *net.TCPListener) {
132
132
continue
133
133
}
134
134
135
- self .goScanConnection (connection , true )
135
+ s .goScanConnection (connection , true )
136
136
}
137
137
138
- self .wait .Done ()
138
+ s .wait .Done ()
139
139
}(listener )
140
140
}
141
141
142
- func (self * Server ) goScanConnection (connection net.Conn , needClose bool ) {
142
+ func (s * Server ) goScanConnection (connection net.Conn , needClose bool ) {
143
143
scanner := bufio .NewScanner (connection )
144
- if sf := self .format .GetSplitFunc (); sf != nil {
144
+ if sf := s .format .GetSplitFunc (); sf != nil {
145
145
scanner .Split (sf )
146
146
}
147
147
@@ -152,79 +152,79 @@ func (self *Server) goScanConnection(connection net.Conn, needClose bool) {
152
152
scanCloser = & ScanCloser {scanner , nil }
153
153
}
154
154
155
- self .wait .Add (1 )
156
- go self .scan (scanCloser )
155
+ s .wait .Add (1 )
156
+ go s .scan (scanCloser )
157
157
}
158
158
159
- func (self * Server ) scan (scanCloser * ScanCloser ) {
159
+ func (s * Server ) scan (scanCloser * ScanCloser ) {
160
160
if scanCloser .closer == nil {
161
161
// UDP
162
162
for scanCloser .Scan () {
163
- self .parser ([]byte (scanCloser .Text ()))
163
+ s .parser ([]byte (scanCloser .Text ()))
164
164
}
165
165
} else {
166
166
// TCP
167
167
loop:
168
168
for {
169
169
select {
170
- case <- self .doneTcp :
170
+ case <- s .doneTcp :
171
171
break loop
172
172
default :
173
173
}
174
- if self .readTimeoutMilliseconds > 0 {
175
- scanCloser .closer .SetReadDeadline (time .Now ().Add (time .Duration (self .readTimeoutMilliseconds ) * time .Millisecond ))
174
+ if s .readTimeoutMilliseconds > 0 {
175
+ scanCloser .closer .SetReadDeadline (time .Now ().Add (time .Duration (s .readTimeoutMilliseconds ) * time .Millisecond ))
176
176
}
177
177
if scanCloser .Scan () {
178
- self .parser ([]byte (scanCloser .Text ()))
178
+ s .parser ([]byte (scanCloser .Text ()))
179
179
} else {
180
180
break loop
181
181
}
182
182
}
183
183
scanCloser .closer .Close ()
184
184
}
185
185
186
- self .wait .Done ()
186
+ s .wait .Done ()
187
187
}
188
188
189
- func (self * Server ) parser (line []byte ) {
190
- parser := self .format .GetParser (line )
189
+ func (s * Server ) parser (line []byte ) {
190
+ parser := s .format .GetParser (line )
191
191
err := parser .Parse ()
192
192
if err != nil {
193
- self .lastError = err
193
+ s .lastError = err
194
194
}
195
195
196
- go self .handler .Handle (parser .Dump (), int64 (len (line )), err )
196
+ go s .handler .Handle (parser .Dump (), int64 (len (line )), err )
197
197
}
198
198
199
199
//Returns the last error
200
- func (self * Server ) GetLastError () error {
201
- return self .lastError
200
+ func (s * Server ) GetLastError () error {
201
+ return s .lastError
202
202
}
203
203
204
204
//Kill the server
205
- func (self * Server ) Kill () error {
206
- for _ , connection := range self .connections {
205
+ func (s * Server ) Kill () error {
206
+ for _ , connection := range s .connections {
207
207
err := connection .Close ()
208
208
if err != nil {
209
209
return err
210
210
}
211
211
}
212
212
213
- for _ , listener := range self .listeners {
213
+ for _ , listener := range s .listeners {
214
214
err := listener .Close ()
215
215
if err != nil {
216
216
return err
217
217
}
218
218
}
219
219
// Only need to close channel once to broadcast to all waiting
220
- close (self .doneTcp )
220
+ close (s .doneTcp )
221
221
222
222
return nil
223
223
}
224
224
225
225
//Waits until the server stops
226
- func (self * Server ) Wait () {
227
- self .wait .Wait ()
226
+ func (s * Server ) Wait () {
227
+ s .wait .Wait ()
228
228
}
229
229
230
230
type TimeoutCloser interface {
0 commit comments