]> Cypherpunks.ru repositories - nncp.git/blobdiff - src/sp.go
nncp-trns
[nncp.git] / src / sp.go
index 7049142421509aeedebbb9bd36f58a7b03c3d8d7..a1f51ebf80276b143675159248c97514ba621494 100644 (file)
--- a/src/sp.go
+++ b/src/sp.go
@@ -53,8 +53,6 @@ type SPCheckerTask struct {
 }
 
 var (
-       MagicNNCPLv1 [8]byte = [8]byte{'N', 'N', 'C', 'P', 'S', 0, 0, 1}
-
        SPInfoOverhead    int
        SPFreqOverhead    int
        SPFileOverhead    int
@@ -279,7 +277,7 @@ func (state *SPState) dirUnlock() {
 func (state *SPState) WriteSP(dst io.Writer, payload []byte, ping bool) error {
        state.writeSPBuf.Reset()
        n, err := xdr.Marshal(&state.writeSPBuf, SPRaw{
-               Magic:   MagicNNCPLv1,
+               Magic:   MagicNNCPSv1.B,
                Payload: payload,
        })
        if err != nil {
@@ -307,7 +305,7 @@ func (state *SPState) ReadSP(src io.Reader) ([]byte, error) {
        }
        state.RxLastSeen = time.Now()
        state.RxBytes += int64(n)
-       if sp.Magic != MagicNNCPLv1 {
+       if sp.Magic != MagicNNCPSv1.B {
                return nil, BadMagic
        }
        return sp.Payload, nil
@@ -660,6 +658,17 @@ func (state *SPState) StartWorkers(
        }
        if !state.NoCK {
                spCheckerOnce.Do(func() { go SPChecker(state.Ctx) })
+               go func() {
+                       for job := range state.Ctx.JobsNoCK(state.Node.Id) {
+                               if job.PktEnc.Nice <= state.Nice {
+                                       spCheckerTasks <- SPCheckerTask{
+                                               nodeId: state.Node.Id,
+                                               hsh:    job.HshValue,
+                                               done:   state.payloads,
+                                       }
+                               }
+                       }
+               }()
        }
 
        // Remaining handshake payload sending