@@ -190,9 +190,9 @@ func encodeWorkerInfo(worker *store.WorkerInfo) ([]byte, error) {
190190 streamListenMultiaddrLen := uint16 (len (worker .StreamListenMultiaddr ))
191191 filterLen := uint16 (len (worker .Filter ))
192192
193- // totalLen = coreId(8) + totalStorage(8) + automatic(1) + allocated(1)
193+ // totalLen = coreId(8) + totalStorage(8) + availableStorage(8) + automatic(1) + allocated(1)
194194 // + 2 + listen + 2 + stream + 2 + filter
195- totalLen := 8 + 8 + 1 + 1 + 2 + int (listenMultiaddrLen ) + 2 +
195+ totalLen := 8 + 8 + 8 + 1 + 1 + 2 + int (listenMultiaddrLen ) + 2 +
196196 int (streamListenMultiaddrLen ) + 2 + int (filterLen )
197197 data := make ([]byte , totalLen )
198198
@@ -203,6 +203,9 @@ func encodeWorkerInfo(worker *store.WorkerInfo) ([]byte, error) {
203203 binary .BigEndian .PutUint64 (data [offset :], uint64 (worker .TotalStorage ))
204204 offset += 8
205205
206+ binary .BigEndian .PutUint64 (data [offset :], uint64 (worker .AvailableStorage ))
207+ offset += 8
208+
206209 if worker .Automatic {
207210 data [offset ] = 1
208211 } else {
@@ -252,6 +255,15 @@ func decodeWorkerInfo(data []byte) (*store.WorkerInfo, error) {
252255 totalStorage := binary .BigEndian .Uint64 (data [offset :])
253256 offset += 8
254257
258+ var availableStorage uint64
259+ // Backwards compatibility
260+ if offset + 8 <= len (data ) {
261+ availableStorage = binary .BigEndian .Uint64 (data [offset :])
262+ offset += 8
263+ } else {
264+ availableStorage = totalStorage
265+ }
266+
255267 if offset + 1 > len (data ) {
256268 return nil , errors .New ("truncated automatic flag" )
257269 }
@@ -312,6 +324,7 @@ func decodeWorkerInfo(data []byte) (*store.WorkerInfo, error) {
312324 StreamListenMultiaddr : streamListenMultiaddr ,
313325 Filter : filter ,
314326 TotalStorage : uint (totalStorage ),
327+ AvailableStorage : uint (availableStorage ),
315328 Automatic : automatic ,
316329 Allocated : allocated ,
317330 }, nil
0 commit comments