Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
B
beego
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
go
beego
Commits
a06022f7
Commit
a06022f7
authored
Dec 12, 2015
by
fuxiaohei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clean compliated codes, refactor if sections in app.go
parent
80bc372f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
226 additions
and
231 deletions
+226
-231
admin.go
admin.go
+121
-123
app.go
app.go
+105
-108
No files found.
admin.go
View file @
a06022f7
...
...
@@ -81,91 +81,93 @@ func qpsIndex(rw http.ResponseWriter, r *http.Request) {
func
listConf
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
r
.
ParseForm
()
command
:=
r
.
Form
.
Get
(
"command"
)
if
command
!=
""
{
data
:=
make
(
map
[
interface
{}]
interface
{})
switch
command
{
case
"conf"
:
tmpl
:=
template
.
Must
(
template
.
New
(
"dashboard"
)
.
Parse
(
dashboardTpl
))
tmpl
=
template
.
Must
(
tmpl
.
Parse
(
configTpl
))
tmpl
=
template
.
Must
(
tmpl
.
Parse
(
defaultScriptsTpl
))
data
[
"Content"
]
=
BConfig
tmpl
.
Execute
(
rw
,
data
)
case
"router"
:
content
:=
make
(
map
[
string
]
interface
{})
if
command
==
""
{
rw
.
Write
([]
byte
(
"command not support"
))
return
}
var
fields
=
[]
string
{
fmt
.
Sprintf
(
"Router Pattern"
),
fmt
.
Sprintf
(
"Methods"
),
fmt
.
Sprintf
(
"Controller"
),
data
:=
make
(
map
[
interface
{}]
interface
{})
switch
command
{
case
"conf"
:
tmpl
:=
template
.
Must
(
template
.
New
(
"dashboard"
)
.
Parse
(
dashboardTpl
))
tmpl
=
template
.
Must
(
tmpl
.
Parse
(
configTpl
))
tmpl
=
template
.
Must
(
tmpl
.
Parse
(
defaultScriptsTpl
))
data
[
"Content"
]
=
BConfig
tmpl
.
Execute
(
rw
,
data
)
case
"router"
:
var
(
content
=
map
[
string
]
interface
{}{
"Fields"
:
[]
string
{
"Router Pattern"
,
"Methods"
,
"Controller"
,
},
}
content
[
"Fields"
]
=
fields
methods
:=
[]
string
{}
methodsData
:=
make
(
map
[
string
]
interface
{})
for
method
,
t
:=
range
BeeApp
.
Handlers
.
routers
{
methods
=
[]
string
{}
methodsData
=
make
(
map
[
string
]
interface
{})
)
for
method
,
t
:=
range
BeeApp
.
Handlers
.
routers
{
resultList
:=
new
([][]
string
)
resultList
:=
new
([][]
string
)
printTree
(
resultList
,
t
)
printTree
(
resultList
,
t
)
methods
=
append
(
methods
,
method
)
methodsData
[
method
]
=
resultList
}
methods
=
append
(
methods
,
method
)
methodsData
[
method
]
=
resultList
}
content
[
"Data"
]
=
methodsData
content
[
"Methods"
]
=
methods
data
[
"Content"
]
=
content
data
[
"Title"
]
=
"Routers"
execTpl
(
rw
,
data
,
routerAndFilterTpl
,
defaultScriptsTpl
)
case
"filter"
:
content
:=
make
(
map
[
string
]
interface
{})
var
fields
=
[]
string
{
fmt
.
Sprintf
(
"Router Pattern"
),
fmt
.
Sprintf
(
"Filter Function"
),
content
[
"Data"
]
=
methodsData
content
[
"Methods"
]
=
methods
data
[
"Content"
]
=
content
data
[
"Title"
]
=
"Routers"
execTpl
(
rw
,
data
,
routerAndFilterTpl
,
defaultScriptsTpl
)
case
"filter"
:
var
(
content
=
map
[
string
]
interface
{}{
"Fields"
:
[]
string
{
"Router Pattern"
,
"Filter Function"
,
},
}
content
[
"Fields"
]
=
fields
filterTypes
:=
[]
string
{}
filterTypeData
:=
make
(
map
[
string
]
interface
{})
if
BeeApp
.
Handlers
.
enableFilter
{
var
filterType
string
for
k
,
fr
:=
range
map
[
int
]
string
{
BeforeStatic
:
"Before Static"
,
BeforeRouter
:
"Before Router"
,
BeforeExec
:
"Before Exec"
,
AfterExec
:
"After Exec"
,
FinishRouter
:
"Finish Router"
}
{
if
bf
,
ok
:=
BeeApp
.
Handlers
.
filters
[
k
];
ok
{
filterType
=
fr
filterTypes
=
append
(
filterTypes
,
filterType
)
resultList
:=
new
([][]
string
)
for
_
,
f
:=
range
bf
{
var
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
f
.
pattern
),
fmt
.
Sprintf
(
"%s"
,
utils
.
GetFuncName
(
f
.
filterFunc
)),
}
*
resultList
=
append
(
*
resultList
,
result
)
filterTypes
=
[]
string
{}
filterTypeData
=
make
(
map
[
string
]
interface
{})
)
if
BeeApp
.
Handlers
.
enableFilter
{
var
filterType
string
for
k
,
fr
:=
range
map
[
int
]
string
{
BeforeStatic
:
"Before Static"
,
BeforeRouter
:
"Before Router"
,
BeforeExec
:
"Before Exec"
,
AfterExec
:
"After Exec"
,
FinishRouter
:
"Finish Router"
}
{
if
bf
,
ok
:=
BeeApp
.
Handlers
.
filters
[
k
];
ok
{
filterType
=
fr
filterTypes
=
append
(
filterTypes
,
filterType
)
resultList
:=
new
([][]
string
)
for
_
,
f
:=
range
bf
{
var
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
f
.
pattern
),
fmt
.
Sprintf
(
"%s"
,
utils
.
GetFuncName
(
f
.
filterFunc
)),
}
filterTypeData
[
filterType
]
=
resultList
*
resultList
=
append
(
*
resultList
,
result
)
}
filterTypeData
[
filterType
]
=
resultList
}
}
}
content
[
"Data"
]
=
filterTypeData
content
[
"Methods"
]
=
filterTypes
content
[
"Data"
]
=
filterTypeData
content
[
"Methods"
]
=
filterTypes
data
[
"Content"
]
=
content
data
[
"Title"
]
=
"Filters"
execTpl
(
rw
,
data
,
routerAndFilterTpl
,
defaultScriptsTpl
)
default
:
rw
.
Write
([]
byte
(
"command not support"
))
}
}
else
{
data
[
"Content"
]
=
content
data
[
"Title"
]
=
"Filters"
execTpl
(
rw
,
data
,
routerAndFilterTpl
,
defaultScriptsTpl
)
default
:
rw
.
Write
([]
byte
(
"command not support"
))
}
}
...
...
@@ -180,23 +182,23 @@ func printTree(resultList *[][]string, t *Tree) {
if
v
,
ok
:=
l
.
runObject
.
(
*
controllerInfo
);
ok
{
if
v
.
routerType
==
routerTypeBeego
{
var
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
v
.
pattern
)
,
v
.
pattern
,
fmt
.
Sprintf
(
"%s"
,
v
.
methods
),
fmt
.
Sprintf
(
"%s"
,
v
.
controllerType
),
}
*
resultList
=
append
(
*
resultList
,
result
)
}
else
if
v
.
routerType
==
routerTypeRESTFul
{
var
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
v
.
pattern
)
,
v
.
pattern
,
fmt
.
Sprintf
(
"%s"
,
v
.
methods
),
fmt
.
Sprintf
(
""
)
,
""
,
}
*
resultList
=
append
(
*
resultList
,
result
)
}
else
if
v
.
routerType
==
routerTypeHandler
{
var
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
v
.
pattern
)
,
fmt
.
Sprintf
(
""
)
,
fmt
.
Sprintf
(
""
)
,
v
.
pattern
,
""
,
""
,
}
*
resultList
=
append
(
*
resultList
,
result
)
}
...
...
@@ -209,49 +211,49 @@ func printTree(resultList *[][]string, t *Tree) {
func
profIndex
(
rw
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
r
.
ParseForm
()
command
:=
r
.
Form
.
Get
(
"command"
)
format
:=
r
.
Form
.
Get
(
"format"
)
data
:=
make
(
map
[
interface
{}]
interface
{})
var
result
bytes
.
Buffer
if
command
!=
""
{
toolbox
.
ProcessInput
(
command
,
&
result
)
data
[
"Content"
]
=
result
.
String
()
if
format
==
"json"
&&
command
==
"gc summary"
{
dataJSON
,
err
:=
json
.
Marshal
(
data
)
if
err
!=
nil
{
http
.
Error
(
rw
,
err
.
Error
(),
http
.
StatusInternalServerError
)
return
}
if
command
==
""
{
return
}
rw
.
Header
()
.
Set
(
"Content-Type"
,
"application/json"
)
rw
.
Write
(
dataJSON
)
var
(
format
=
r
.
Form
.
Get
(
"format"
)
data
=
make
(
map
[
interface
{}]
interface
{})
result
bytes
.
Buffer
)
toolbox
.
ProcessInput
(
command
,
&
result
)
data
[
"Content"
]
=
result
.
String
()
if
format
==
"json"
&&
command
==
"gc summary"
{
dataJSON
,
err
:=
json
.
Marshal
(
data
)
if
err
!=
nil
{
http
.
Error
(
rw
,
err
.
Error
(),
http
.
StatusInternalServerError
)
return
}
data
[
"Title"
]
=
command
defaultTpl
:=
defaultScriptsTpl
if
command
==
"gc summary"
{
defaultTpl
=
gcAjaxTpl
}
execTpl
(
rw
,
data
,
profillingTpl
,
defaultTpl
)
rw
.
Header
()
.
Set
(
"Content-Type"
,
"application/json"
)
rw
.
Write
(
dataJSON
)
return
}
data
[
"Title"
]
=
command
defaultTpl
:=
defaultScriptsTpl
if
command
==
"gc summary"
{
defaultTpl
=
gcAjaxTpl
}
execTpl
(
rw
,
data
,
profillingTpl
,
defaultTpl
)
}
// Healthcheck is a http.Handler calling health checking and showing the result.
// it's in "/healthcheck" pattern in admin module.
func
healthcheck
(
rw
http
.
ResponseWriter
,
req
*
http
.
Request
)
{
data
:=
make
(
map
[
interface
{}]
interface
{})
var
result
=
[]
string
{}
fields
:=
[]
string
{
fmt
.
Sprintf
(
"Name"
),
fmt
.
Sprintf
(
"Message"
),
fmt
.
Sprintf
(
"Status"
),
}
resultList
:=
new
([][]
string
)
content
:=
make
(
map
[
string
]
interface
{})
var
(
data
=
make
(
map
[
interface
{}]
interface
{})
result
=
[]
string
{}
resultList
=
new
([][]
string
)
content
=
map
[
string
]
interface
{}{
"Fields"
:
[]
string
{
"Name"
,
"Message"
,
"Status"
},
}
)
for
name
,
h
:=
range
toolbox
.
AdminCheckList
{
if
err
:=
h
.
Check
();
err
!=
nil
{
...
...
@@ -271,8 +273,6 @@ func healthcheck(rw http.ResponseWriter, req *http.Request) {
}
*
resultList
=
append
(
*
resultList
,
result
)
}
content
[
"Fields"
]
=
fields
content
[
"Data"
]
=
resultList
data
[
"Content"
]
=
content
data
[
"Title"
]
=
"Health Check"
...
...
@@ -288,10 +288,8 @@ func taskStatus(rw http.ResponseWriter, req *http.Request) {
req
.
ParseForm
()
taskname
:=
req
.
Form
.
Get
(
"taskname"
)
if
taskname
!=
""
{
if
t
,
ok
:=
toolbox
.
AdminTaskList
[
taskname
];
ok
{
err
:=
t
.
Run
()
if
err
!=
nil
{
if
err
:=
t
.
Run
();
err
!=
nil
{
data
[
"Message"
]
=
[]
string
{
"error"
,
fmt
.
Sprintf
(
"%s"
,
err
)}
}
data
[
"Message"
]
=
[]
string
{
"success"
,
fmt
.
Sprintf
(
"%s run success,Now the Status is <br>%s"
,
taskname
,
t
.
GetStatus
())}
...
...
@@ -305,18 +303,18 @@ func taskStatus(rw http.ResponseWriter, req *http.Request) {
resultList
:=
new
([][]
string
)
var
result
=
[]
string
{}
var
fields
=
[]
string
{
fmt
.
Sprintf
(
"Task Name"
)
,
fmt
.
Sprintf
(
"Task Spec"
)
,
fmt
.
Sprintf
(
"Task Status"
)
,
fmt
.
Sprintf
(
"Last Time"
)
,
fmt
.
Sprintf
(
""
)
,
"Task Name"
,
"Task Spec"
,
"Task Status"
,
"Last Time"
,
""
,
}
for
tname
,
tk
:=
range
toolbox
.
AdminTaskList
{
result
=
[]
string
{
fmt
.
Sprintf
(
"%s"
,
tname
)
,
tname
,
fmt
.
Sprintf
(
"%s"
,
tk
.
GetSpec
()),
fmt
.
Sprintf
(
"%s"
,
tk
.
GetStatus
()),
fmt
.
Sprintf
(
"%s"
,
tk
.
GetPrev
()
.
String
()
),
tk
.
GetPrev
()
.
String
(
),
}
*
resultList
=
append
(
*
resultList
,
result
)
}
...
...
app.go
View file @
a06022f7
...
...
@@ -59,128 +59,125 @@ func (app *App) Run() {
}
var
(
err
error
l
net
.
Listener
err
error
l
net
.
Listener
endRunning
=
make
(
chan
bool
,
1
)
)
endRunning
:=
make
(
chan
bool
,
1
)
// run cgi server
if
BConfig
.
Listen
.
EnableFcgi
{
if
BConfig
.
Listen
.
EnableStdIo
{
err
=
fcgi
.
Serve
(
nil
,
app
.
Handlers
)
// standard I/O
if
err
==
nil
{
if
err
=
fcgi
.
Serve
(
nil
,
app
.
Handlers
);
err
==
nil
{
// standard I/O
BeeLogger
.
Info
(
"Use FCGI via standard I/O"
)
}
else
{
BeeLogger
.
Info
(
"Cannot use FCGI via standard I/O"
,
err
)
BeeLogger
.
Critical
(
"Cannot use FCGI via standard I/O"
,
err
)
}
}
else
{
if
BConfig
.
Listen
.
HTTPPort
==
0
{
// remove the Socket file before start
if
utils
.
FileExists
(
addr
)
{
os
.
Remove
(
addr
)
}
l
,
err
=
net
.
Listen
(
"unix"
,
addr
)
}
else
{
l
,
err
=
net
.
Listen
(
"tcp"
,
addr
)
}
if
err
!=
nil
{
BeeLogger
.
Critical
(
"Listen: "
,
err
)
}
err
=
fcgi
.
Serve
(
l
,
app
.
Handlers
)
return
}
}
else
{
if
BConfig
.
Listen
.
Graceful
{
httpsAddr
:=
BConfig
.
Listen
.
HTTPSAddr
app
.
Server
.
Addr
=
httpsAddr
app
.
Server
.
Handler
=
app
.
Handlers
app
.
Server
.
ReadTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
app
.
Server
.
WriteTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
if
BConfig
.
Listen
.
HTTPSEnable
{
go
func
()
{
time
.
Sleep
(
20
*
time
.
Microsecond
)
if
BConfig
.
Listen
.
HTTPSPort
!=
0
{
httpsAddr
=
fmt
.
Sprintf
(
"%s:%d"
,
BConfig
.
Listen
.
HTTPSAddr
,
BConfig
.
Listen
.
HTTPSPort
)
app
.
Server
.
Addr
=
httpsAddr
}
server
:=
grace
.
NewServer
(
httpsAddr
,
app
.
Handlers
)
server
.
Server
.
ReadTimeout
=
app
.
Server
.
ReadTimeout
server
.
Server
.
WriteTimeout
=
app
.
Server
.
WriteTimeout
err
:=
server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
)
if
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServeTLS: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}()
}
if
BConfig
.
Listen
.
HTTPEnable
{
go
func
()
{
server
:=
grace
.
NewServer
(
addr
,
app
.
Handlers
)
server
.
Server
.
ReadTimeout
=
app
.
Server
.
ReadTimeout
server
.
Server
.
WriteTimeout
=
app
.
Server
.
WriteTimeout
if
BConfig
.
Listen
.
ListenTCP4
{
server
.
Network
=
"tcp4"
}
err
:=
server
.
ListenAndServe
()
if
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}()
if
BConfig
.
Listen
.
HTTPPort
==
0
{
// remove the Socket file before start
if
utils
.
FileExists
(
addr
)
{
os
.
Remove
(
addr
)
}
l
,
err
=
net
.
Listen
(
"unix"
,
addr
)
}
else
{
app
.
Server
.
Addr
=
addr
app
.
Server
.
Handler
=
app
.
Handlers
app
.
Server
.
ReadTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
app
.
Server
.
WriteTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
l
,
err
=
net
.
Listen
(
"tcp"
,
addr
)
}
if
err
!=
nil
{
BeeLogger
.
Critical
(
"Listen: "
,
err
)
}
if
err
=
fcgi
.
Serve
(
l
,
app
.
Handlers
);
err
!=
nil
{
BeeLogger
.
Critical
(
"fcgi.Serve: "
,
err
)
}
return
}
if
BConfig
.
Listen
.
HTTPSEnable
{
go
func
()
{
time
.
Sleep
(
20
*
time
.
Microsecond
)
if
BConfig
.
Listen
.
HTTPSPort
!=
0
{
app
.
Server
.
Addr
=
fmt
.
Sprintf
(
"%s:%d"
,
BConfig
.
Listen
.
HTTPSAddr
,
BConfig
.
Listen
.
HTTPSPort
)
}
BeeLogger
.
Info
(
"https server Running on %s"
,
app
.
Server
.
Addr
)
err
:=
app
.
Server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
)
if
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServeTLS: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}()
}
app
.
Server
.
Handler
=
app
.
Handlers
app
.
Server
.
ReadTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
app
.
Server
.
WriteTimeout
=
time
.
Duration
(
BConfig
.
Listen
.
ServerTimeOut
)
*
time
.
Second
if
BConfig
.
Listen
.
HTTPEnable
{
go
func
()
{
app
.
Server
.
Addr
=
addr
BeeLogger
.
Info
(
"http server Running on %s"
,
app
.
Server
.
Addr
)
if
BConfig
.
Listen
.
ListenTCP4
{
ln
,
err
:=
net
.
Listen
(
"tcp4"
,
app
.
Server
.
Addr
)
if
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
return
}
err
=
app
.
Server
.
Serve
(
ln
)
if
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
return
}
}
else
{
err
:=
app
.
Server
.
ListenAndServe
()
if
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}
}()
}
// run graceful mode
if
BConfig
.
Listen
.
Graceful
{
httpsAddr
:=
BConfig
.
Listen
.
HTTPSAddr
app
.
Server
.
Addr
=
httpsAddr
if
BConfig
.
Listen
.
HTTPSEnable
{
go
func
()
{
time
.
Sleep
(
20
*
time
.
Microsecond
)
if
BConfig
.
Listen
.
HTTPSPort
!=
0
{
httpsAddr
=
fmt
.
Sprintf
(
"%s:%d"
,
BConfig
.
Listen
.
HTTPSAddr
,
BConfig
.
Listen
.
HTTPSPort
)
app
.
Server
.
Addr
=
httpsAddr
}
server
:=
grace
.
NewServer
(
httpsAddr
,
app
.
Handlers
)
server
.
Server
.
ReadTimeout
=
app
.
Server
.
ReadTimeout
server
.
Server
.
WriteTimeout
=
app
.
Server
.
WriteTimeout
if
err
:=
server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServeTLS: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}()
}
if
BConfig
.
Listen
.
HTTPEnable
{
go
func
()
{
server
:=
grace
.
NewServer
(
addr
,
app
.
Handlers
)
server
.
Server
.
ReadTimeout
=
app
.
Server
.
ReadTimeout
server
.
Server
.
WriteTimeout
=
app
.
Server
.
WriteTimeout
if
BConfig
.
Listen
.
ListenTCP4
{
server
.
Network
=
"tcp4"
}
if
err
:=
server
.
ListenAndServe
();
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
,
fmt
.
Sprintf
(
"%d"
,
os
.
Getpid
()))
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}()
}
<-
endRunning
return
}
// run normal mode
app
.
Server
.
Addr
=
addr
if
BConfig
.
Listen
.
HTTPSEnable
{
go
func
()
{
time
.
Sleep
(
20
*
time
.
Microsecond
)
if
BConfig
.
Listen
.
HTTPSPort
!=
0
{
app
.
Server
.
Addr
=
fmt
.
Sprintf
(
"%s:%d"
,
BConfig
.
Listen
.
HTTPSAddr
,
BConfig
.
Listen
.
HTTPSPort
)
}
BeeLogger
.
Info
(
"https server Running on %s"
,
app
.
Server
.
Addr
)
if
err
:=
app
.
Server
.
ListenAndServeTLS
(
BConfig
.
Listen
.
HTTPSCertFile
,
BConfig
.
Listen
.
HTTPSKeyFile
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServeTLS: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}()
}
if
BConfig
.
Listen
.
HTTPEnable
{
go
func
()
{
app
.
Server
.
Addr
=
addr
BeeLogger
.
Info
(
"http server Running on %s"
,
app
.
Server
.
Addr
)
if
BConfig
.
Listen
.
ListenTCP4
{
ln
,
err
:=
net
.
Listen
(
"tcp4"
,
app
.
Server
.
Addr
)
if
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
return
}
if
err
=
app
.
Server
.
Serve
(
ln
);
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
return
}
}
else
{
if
err
:=
app
.
Server
.
ListenAndServe
();
err
!=
nil
{
BeeLogger
.
Critical
(
"ListenAndServe: "
,
err
)
time
.
Sleep
(
100
*
time
.
Microsecond
)
endRunning
<-
true
}
}
}()
}
<-
endRunning
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment