mirror of
https://github.com/lionsoul2014/ip2region.git
synced 2025-12-08 19:25:22 +00:00
fix the bug of header write and regen the xdb file
This commit is contained in:
parent
7eb4a5ba5e
commit
9751227b97
Binary file not shown.
@ -69,22 +69,25 @@ func genDb() {
|
|||||||
tStart := time.Now()
|
tStart := time.Now()
|
||||||
maker, err := xdb.NewMaker(indexPolicy, srcFile, dstFile)
|
maker, err := xdb.NewMaker(indexPolicy, srcFile, dstFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("failed to create maker: %s", err)
|
fmt.Printf("failed to create %s\n", err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = maker.Init()
|
err = maker.Init()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("failed Init: %s", err)
|
fmt.Printf("failed Init: %s\n", err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = maker.Start()
|
err = maker.Start()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("failed Start: %s", err)
|
fmt.Printf("failed Start: %s\n", err)
|
||||||
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
err = maker.End()
|
err = maker.End()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("failed End: %s", err)
|
fmt.Printf("failed End: %s\n", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Printf("Done, elapsed: %s\n", time.Since(tStart))
|
log.Printf("Done, elapsed: %s\n", time.Since(tStart))
|
||||||
@ -124,7 +127,8 @@ func testSearch() {
|
|||||||
|
|
||||||
searcher, err := xdb.NewSearcher(dbFile)
|
searcher, err := xdb.NewSearcher(dbFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("failed to create searcher: %s", err.Error())
|
fmt.Printf("failed to create searcher with `%s`: %s\n", dbFile, err.Error())
|
||||||
|
return
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
searcher.Close()
|
searcher.Close()
|
||||||
@ -228,6 +232,10 @@ func testBench() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
searcher, err := xdb.NewSearcher(dbFile)
|
searcher, err := xdb.NewSearcher(dbFile)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Printf("failed to create searcher with `%s`: %s\n", dbFile, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
searcher.Close()
|
searcher.Close()
|
||||||
}()
|
}()
|
||||||
|
|||||||
@ -115,16 +115,16 @@ func (m *Maker) initDbHeader() error {
|
|||||||
binary.LittleEndian.PutUint16(header, uint16(VersionNo))
|
binary.LittleEndian.PutUint16(header, uint16(VersionNo))
|
||||||
|
|
||||||
// 2, index policy code
|
// 2, index policy code
|
||||||
binary.LittleEndian.PutUint16(header, uint16(m.indexPolicy))
|
binary.LittleEndian.PutUint16(header[2:], uint16(m.indexPolicy))
|
||||||
|
|
||||||
// 3, generate unix timestamp
|
// 3, generate unix timestamp
|
||||||
binary.LittleEndian.PutUint32(header[2:], uint32(time.Now().Unix()))
|
binary.LittleEndian.PutUint32(header[4:], uint32(time.Now().Unix()))
|
||||||
|
|
||||||
// 4, index block start ptr
|
// 4, index block start ptr
|
||||||
binary.LittleEndian.PutUint32(header[6:], uint32(0))
|
binary.LittleEndian.PutUint32(header[8:], uint32(0))
|
||||||
|
|
||||||
// 5, index block end ptr
|
// 5, index block end ptr
|
||||||
binary.LittleEndian.PutUint32(header[10:], uint32(0))
|
binary.LittleEndian.PutUint32(header[12:], uint32(0))
|
||||||
|
|
||||||
_, err = m.dstHandle.Write(header)
|
_, err = m.dstHandle.Write(header)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@ -43,9 +43,11 @@ func NewSearcher(dbFile string) (*Searcher, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Searcher) Close() {
|
func (s *Searcher) Close() {
|
||||||
err := s.handle.Close()
|
if s.handle != nil {
|
||||||
if err != nil {
|
err := s.handle.Close()
|
||||||
return
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user