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
08ea9b33
Commit
08ea9b33
authored
Apr 23, 2017
by
eyalpost
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'upstream/develop' into develop
parents
19f4a6ac
3bb4ca5a
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
41 additions
and
25 deletions
+41
-25
ini.go
config/ini.go
+11
-3
input_test.go
context/input_test.go
+2
-2
controller_test.go
controller_test.go
+2
-2
signature.go
logs/alils/signature.go
+1
-2
file_test.go
logs/file_test.go
+2
-2
db.go
orm/db.go
+1
-1
template.go
template.go
+4
-1
statistics.go
toolbox/statistics.go
+1
-1
task.go
toolbox/task.go
+1
-0
tree.go
tree.go
+15
-10
tree_test.go
tree_test.go
+1
-1
No files found.
config/ini.go
View file @
08ea9b33
...
...
@@ -21,6 +21,7 @@ import (
"io"
"io/ioutil"
"os"
"os/user"
"path/filepath"
"strconv"
"strings"
...
...
@@ -184,10 +185,17 @@ func (ini *IniConfig) parseData(dir string, data []byte) (*IniConfigContainer, e
// ParseData parse ini the data
// When include other.conf,other.conf is either absolute directory
// or under beego in default temporary directory(/tmp/beego).
// or under beego in default temporary directory(/tmp/beego
[-username]
).
func
(
ini
*
IniConfig
)
ParseData
(
data
[]
byte
)
(
Configer
,
error
)
{
dir
:=
filepath
.
Join
(
os
.
TempDir
(),
"beego"
)
os
.
MkdirAll
(
dir
,
os
.
ModePerm
)
dir
:=
"beego"
currentUser
,
err
:=
user
.
Current
()
if
err
==
nil
{
dir
=
"beego-"
+
currentUser
.
Username
}
dir
=
filepath
.
Join
(
os
.
TempDir
(),
dir
)
if
err
=
os
.
MkdirAll
(
dir
,
os
.
ModePerm
);
err
!=
nil
{
return
nil
,
err
}
return
ini
.
parseData
(
dir
,
data
)
}
...
...
context/input_test.go
View file @
08ea9b33
...
...
@@ -73,8 +73,8 @@ func TestBind(t *testing.T) {
{
"/?human.ID=888&human.Nick=astaxie&human.Ms=true&human[Pwd]=pass"
,
[]
testItem
{{
"human"
,
Human
{},
Human
{
ID
:
888
,
Nick
:
"astaxie"
,
Ms
:
true
,
Pwd
:
"pass"
}}}},
{
"/?human[0].ID=888&human[0].Nick=astaxie&human[0].Ms=true&human[0][Pwd]=pass01&human[1].ID=999&human[1].Nick=ysqi&human[1].Ms=On&human[1].Pwd=pass02"
,
[]
testItem
{{
"human"
,
[]
Human
{},
[]
Human
{
Human
{
ID
:
888
,
Nick
:
"astaxie"
,
Ms
:
true
,
Pwd
:
"pass01"
},
Human
{
ID
:
999
,
Nick
:
"ysqi"
,
Ms
:
true
,
Pwd
:
"pass02"
},
{
ID
:
888
,
Nick
:
"astaxie"
,
Ms
:
true
,
Pwd
:
"pass01"
},
{
ID
:
999
,
Nick
:
"ysqi"
,
Ms
:
true
,
Pwd
:
"pass02"
},
}}}},
{
...
...
controller_test.go
View file @
08ea9b33
...
...
@@ -172,10 +172,10 @@ func TestAdditionalViewPaths(t *testing.T) {
t
.
Fatal
(
"TestAdditionalViewPaths expected error"
)
}
}()
ctrl
.
RenderString
()
;
ctrl
.
RenderString
()
}()
ctrl
.
TplName
=
"file2.tpl"
ctrl
.
ViewPath
=
dir2
ctrl
.
RenderString
()
;
ctrl
.
RenderString
()
}
logs/alils/signature.go
View file @
08ea9b33
...
...
@@ -76,7 +76,7 @@ func signature(project *LogProject, method, uri string,
var
keys
sort
.
StringSlice
vals
:=
u
.
Query
()
for
k
,
_
:=
range
vals
{
for
k
:=
range
vals
{
keys
=
append
(
keys
,
k
)
}
...
...
@@ -109,4 +109,3 @@ func signature(project *LogProject, method, uri string,
digest
=
base64
.
StdEncoding
.
EncodeToString
(
mac
.
Sum
(
nil
))
return
}
logs/file_test.go
View file @
08ea9b33
...
...
@@ -162,7 +162,7 @@ func TestFileRotate_05(t *testing.T) {
testFileDailyRotate
(
t
,
fn1
,
fn2
)
os
.
Remove
(
fn
)
}
func
TestFileRotate_06
(
t
*
testing
.
T
)
{
//test file mode
func
TestFileRotate_06
(
t
*
testing
.
T
)
{
//test file mode
log
:=
NewLogger
(
10000
)
log
.
SetLogger
(
"file"
,
`{"filename":"test3.log","maxlines":4}`
)
log
.
Debug
(
"debug"
)
...
...
@@ -174,7 +174,7 @@ func TestFileRotate_06(t *testing.T) {//test file mode
log
.
Critical
(
"critical"
)
log
.
Emergency
(
"emergency"
)
rotateName
:=
"test3"
+
fmt
.
Sprintf
(
".%s.%03d"
,
time
.
Now
()
.
Format
(
"2006-01-02"
),
1
)
+
".log"
s
,
_
:=
os
.
Lstat
(
rotateName
)
s
,
_
:=
os
.
Lstat
(
rotateName
)
if
s
.
Mode
()
!=
0440
{
os
.
Remove
(
rotateName
)
os
.
Remove
(
"test3.log"
)
...
...
orm/db.go
View file @
08ea9b33
...
...
@@ -592,7 +592,7 @@ func (d *dbBase) InsertOrUpdate(q dbQuerier, mi *modelInfo, ind reflect.Value, a
row
:=
q
.
QueryRow
(
query
,
values
...
)
var
id
int64
err
=
row
.
Scan
(
&
id
)
if
err
.
Error
()
==
`pq: syntax error at or near "ON"`
{
if
err
!=
nil
&&
err
.
Error
()
==
`pq: syntax error at or near "ON"`
{
err
=
fmt
.
Errorf
(
"postgres version must 9.5 or higher"
)
}
return
id
,
err
...
...
template.go
View file @
08ea9b33
...
...
@@ -230,9 +230,12 @@ func BuildTemplate(dir string, files ...string) error {
func
getTplDeep
(
root
,
file
,
parent
string
,
t
*
template
.
Template
)
(
*
template
.
Template
,
[][]
string
,
error
)
{
var
fileAbsPath
string
var
rParent
string
if
filepath
.
HasPrefix
(
file
,
"../"
)
{
rParent
=
filepath
.
Join
(
filepath
.
Dir
(
parent
),
file
)
fileAbsPath
=
filepath
.
Join
(
root
,
filepath
.
Dir
(
parent
),
file
)
}
else
{
rParent
=
file
fileAbsPath
=
filepath
.
Join
(
root
,
file
)
}
if
e
:=
utils
.
FileExists
(
fileAbsPath
);
!
e
{
...
...
@@ -257,7 +260,7 @@ func getTplDeep(root, file, parent string, t *template.Template) (*template.Temp
if
!
HasTemplateExt
(
m
[
1
])
{
continue
}
_
,
_
,
err
=
getTplDeep
(
root
,
m
[
1
],
file
,
t
)
_
,
_
,
err
=
getTplDeep
(
root
,
m
[
1
],
rParent
,
t
)
if
err
!=
nil
{
return
nil
,
[][]
string
{},
err
}
...
...
toolbox/statistics.go
View file @
08ea9b33
...
...
@@ -119,7 +119,7 @@ func (m *URLMap) GetMap() map[string]interface{} {
func
(
m
*
URLMap
)
GetMapData
()
[]
map
[
string
]
interface
{}
{
m
.
lock
.
Lock
()
defer
m
.
lock
.
Unlock
()
var
resultLists
[]
map
[
string
]
interface
{}
for
k
,
v
:=
range
m
.
urlmap
{
...
...
toolbox/task.go
View file @
08ea9b33
...
...
@@ -427,6 +427,7 @@ func run() {
}
continue
case
<-
changed
:
now
=
time
.
Now
()
.
Local
()
continue
case
<-
stop
:
return
...
...
tree.go
View file @
08ea9b33
...
...
@@ -288,10 +288,10 @@ func (t *Tree) Match(pattern string, ctx *context.Context) (runObject interface{
return
nil
}
w
:=
make
([]
string
,
0
,
20
)
return
t
.
match
(
pattern
,
w
,
ctx
)
return
t
.
match
(
pattern
[
1
:
],
pattern
,
w
,
ctx
)
}
func
(
t
*
Tree
)
match
(
pattern
string
,
wildcardValues
[]
string
,
ctx
*
context
.
Context
)
(
runObject
interface
{})
{
func
(
t
*
Tree
)
match
(
treePattern
string
,
pattern
string
,
wildcardValues
[]
string
,
ctx
*
context
.
Context
)
(
runObject
interface
{})
{
if
len
(
pattern
)
>
0
{
i
:=
0
for
;
i
<
len
(
pattern
)
&&
pattern
[
i
]
==
'/'
;
i
++
{
...
...
@@ -301,13 +301,13 @@ func (t *Tree) match(pattern string, wildcardValues []string, ctx *context.Conte
// Handle leaf nodes:
if
len
(
pattern
)
==
0
{
for
_
,
l
:=
range
t
.
leaves
{
if
ok
:=
l
.
match
(
wildcardValues
,
ctx
);
ok
{
if
ok
:=
l
.
match
(
treePattern
,
wildcardValues
,
ctx
);
ok
{
return
l
.
runObject
}
}
if
t
.
wildcard
!=
nil
{
for
_
,
l
:=
range
t
.
wildcard
.
leaves
{
if
ok
:=
l
.
match
(
wildcardValues
,
ctx
);
ok
{
if
ok
:=
l
.
match
(
treePattern
,
wildcardValues
,
ctx
);
ok
{
return
l
.
runObject
}
}
...
...
@@ -327,7 +327,12 @@ func (t *Tree) match(pattern string, wildcardValues []string, ctx *context.Conte
}
for
_
,
subTree
:=
range
t
.
fixrouters
{
if
subTree
.
prefix
==
seg
{
runObject
=
subTree
.
match
(
pattern
,
wildcardValues
,
ctx
)
if
len
(
pattern
)
!=
0
&&
pattern
[
0
]
==
'/'
{
treePattern
=
pattern
[
1
:
]
}
else
{
treePattern
=
pattern
}
runObject
=
subTree
.
match
(
treePattern
,
pattern
,
wildcardValues
,
ctx
)
if
runObject
!=
nil
{
break
}
...
...
@@ -339,7 +344,7 @@ func (t *Tree) match(pattern string, wildcardValues []string, ctx *context.Conte
if
strings
.
HasSuffix
(
seg
,
str
)
{
for
_
,
subTree
:=
range
t
.
fixrouters
{
if
subTree
.
prefix
==
seg
[
:
len
(
seg
)
-
len
(
str
)]
{
runObject
=
subTree
.
match
(
pattern
,
wildcardValues
,
ctx
)
runObject
=
subTree
.
match
(
treePattern
,
pattern
,
wildcardValues
,
ctx
)
if
runObject
!=
nil
{
ctx
.
Input
.
SetParam
(
":ext"
,
str
[
1
:
])
}
...
...
@@ -349,7 +354,7 @@ func (t *Tree) match(pattern string, wildcardValues []string, ctx *context.Conte
}
}
if
runObject
==
nil
&&
t
.
wildcard
!=
nil
{
runObject
=
t
.
wildcard
.
match
(
pattern
,
append
(
wildcardValues
,
seg
),
ctx
)
runObject
=
t
.
wildcard
.
match
(
treePattern
,
pattern
,
append
(
wildcardValues
,
seg
),
ctx
)
}
if
runObject
==
nil
&&
len
(
t
.
leaves
)
>
0
{
...
...
@@ -368,7 +373,7 @@ func (t *Tree) match(pattern string, wildcardValues []string, ctx *context.Conte
wildcardValues
=
append
(
wildcardValues
,
pattern
[
start
:
i
])
}
for
_
,
l
:=
range
t
.
leaves
{
if
ok
:=
l
.
match
(
wildcardValues
,
ctx
);
ok
{
if
ok
:=
l
.
match
(
treePattern
,
wildcardValues
,
ctx
);
ok
{
return
l
.
runObject
}
}
...
...
@@ -386,7 +391,7 @@ type leafInfo struct {
runObject
interface
{}
}
func
(
leaf
*
leafInfo
)
match
(
wildcardValues
[]
string
,
ctx
*
context
.
Context
)
(
ok
bool
)
{
func
(
leaf
*
leafInfo
)
match
(
treePattern
string
,
wildcardValues
[]
string
,
ctx
*
context
.
Context
)
(
ok
bool
)
{
//fmt.Println("Leaf:", wildcardValues, leaf.wildcards, leaf.regexps)
if
leaf
.
regexps
==
nil
{
if
len
(
wildcardValues
)
==
0
&&
len
(
leaf
.
wildcards
)
==
0
{
// static path
...
...
@@ -394,7 +399,7 @@ func (leaf *leafInfo) match(wildcardValues []string, ctx *context.Context) (ok b
}
// match *
if
len
(
leaf
.
wildcards
)
==
1
&&
leaf
.
wildcards
[
0
]
==
":splat"
{
ctx
.
Input
.
SetParam
(
":splat"
,
path
.
Join
(
wildcardValues
...
)
)
ctx
.
Input
.
SetParam
(
":splat"
,
treePattern
)
return
true
}
// match *.* or :id
...
...
tree_test.go
View file @
08ea9b33
...
...
@@ -42,7 +42,7 @@ func init() {
routers
=
append
(
routers
,
testinfo
{
"/"
,
"/"
,
nil
})
routers
=
append
(
routers
,
testinfo
{
"/customer/login"
,
"/customer/login"
,
nil
})
routers
=
append
(
routers
,
testinfo
{
"/customer/login"
,
"/customer/login.json"
,
map
[
string
]
string
{
":ext"
:
"json"
}})
routers
=
append
(
routers
,
testinfo
{
"/*"
,
"/
customer/123"
,
map
[
string
]
string
{
":splat"
:
"customer/123
"
}})
routers
=
append
(
routers
,
testinfo
{
"/*"
,
"/
http://customer/123/"
,
map
[
string
]
string
{
":splat"
:
"http://customer/123/
"
}})
routers
=
append
(
routers
,
testinfo
{
"/*"
,
"/customer/2009/12/11"
,
map
[
string
]
string
{
":splat"
:
"customer/2009/12/11"
}})
routers
=
append
(
routers
,
testinfo
{
"/aa/*/bb"
,
"/aa/2009/bb"
,
map
[
string
]
string
{
":splat"
:
"2009"
}})
routers
=
append
(
routers
,
testinfo
{
"/cc/*/dd"
,
"/cc/2009/11/dd"
,
map
[
string
]
string
{
":splat"
:
"2009/11"
}})
...
...
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