-
Notifications
You must be signed in to change notification settings - Fork 0
/
options.go
67 lines (58 loc) · 2.12 KB
/
options.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/*
* Proton - A powerful platform for your real-time web applications
* Copyright (C) 2017 Roland Singer <roland.singer[at]desertbit.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package proton
import "net/http"
//#################//
//### Constants ###//
//#################//
const (
defaultReadBufferSize = 4096
defaultWriteBufferSize = 4096
defaultMaxMessageSize = 300 * 1024 // 300 KB
)
//####################//
//### Options Type ###//
//####################//
// Options define the BinarySocket optional options.
type Options struct {
// ReadBufferSize and WriteBufferSize specify I/O buffer sizes. If a buffer
// size is zero, then a default value of 4096 is used. The I/O buffer sizes
// do not limit the size of the messages that can be sent or received.
ReadBufferSize, WriteBufferSize int
// MaxMessageSize defines the maximum message payload size in bytes.
MaxMessageSize int
// CheckOrigin returns true if the request Origin header is acceptable. If
// CheckOrigin is nil, the host in the Origin header must not be set or
// must match the host of the request.
// This method is used by the backend sockets before establishing connections.
CheckOrigin func(r *http.Request) bool
}
func (o *Options) setDefaults() {
if o.ReadBufferSize <= 0 {
o.ReadBufferSize = defaultReadBufferSize
}
if o.WriteBufferSize <= 0 {
o.WriteBufferSize = defaultWriteBufferSize
}
if o.CheckOrigin == nil {
o.CheckOrigin = checkSameOrigin
}
if o.MaxMessageSize == 0 {
o.MaxMessageSize = defaultMaxMessageSize
}
}