Ack handles ack of previous response.
(ack *types.Ack)
| 534 | |
| 535 | // Ack handles ack of previous response. |
| 536 | func (dbms *DBMS) Ack(ack *types.Ack) (err error) { |
| 537 | var db *Database |
| 538 | var exists bool |
| 539 | |
| 540 | // check permission |
| 541 | addr, err := crypto.PubKeyHash(ack.Header.Signee) |
| 542 | if err != nil { |
| 543 | return |
| 544 | } |
| 545 | err = dbms.checkPermission(addr, ack.Header.Response.Request.DatabaseID, types.ReadQuery, nil) |
| 546 | if err != nil { |
| 547 | return |
| 548 | } |
| 549 | // find database |
| 550 | if db, exists = dbms.getMeta(ack.Header.Response.Request.DatabaseID); !exists { |
| 551 | err = ErrNotExists |
| 552 | return |
| 553 | } |
| 554 | |
| 555 | // send query |
| 556 | return db.Ack(ack) |
| 557 | } |
| 558 | |
| 559 | func (dbms *DBMS) getMeta(dbID proto.DatabaseID) (db *Database, exists bool) { |
| 560 | var rawDB interface{} |
nothing calls this directly
no test coverage detected