Skip to content

Commit d23073f

Browse files
committed
litrpc+session: add CreatedAt member to Session
1 parent 03deb1a commit d23073f

File tree

6 files changed

+72
-46
lines changed

6 files changed

+72
-46
lines changed

litrpc/lit-sessions.pb.go

Lines changed: 55 additions & 45 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

litrpc/lit-sessions.proto

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,8 @@ message Session {
7474
bytes local_public_key = 9;
7575

7676
bytes remote_public_key = 10;
77+
78+
uint64 created_at = 11 [jstype = JS_STRING];
7779
}
7880

7981
message ListSessionsRequest {

session/interface.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ type Session struct {
4343
State State
4444
Type Type
4545
Expiry time.Time
46+
CreatedAt time.Time
4647
ServerAddr string
4748
DevServer bool
4849
MacaroonRootKey uint64
@@ -78,6 +79,7 @@ func NewSession(label string, typ Type, expiry time.Time, serverAddr string,
7879
State: StateCreated,
7980
Type: typ,
8081
Expiry: expiry,
82+
CreatedAt: time.Now(),
8183
ServerAddr: serverAddr,
8284
DevServer: devServer,
8385
MacaroonRootKey: macRootKey,

session/tlv.go

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const (
2424
typeLocalPrivateKey tlv.Type = 10
2525
typeRemotePublicKey tlv.Type = 11
2626
typeMacaroonRecipe tlv.Type = 12
27+
typeCreatedAt tlv.Type = 13
2728

2829
// typeMacaroon is no longer used, but we leave it defined for backwards
2930
// compatibility.
@@ -56,6 +57,7 @@ func SerializeSession(w io.Writer, session *Session) error {
5657
devServer = uint8(0)
5758
pairingSecret = session.PairingSecret[:]
5859
privateKey = session.LocalPrivateKey.Serialize()
60+
createdAt = uint64(session.CreatedAt.Unix())
5961
)
6062

6163
if session.DevServer {
@@ -99,6 +101,10 @@ func SerializeSession(w io.Writer, session *Session) error {
99101
))
100102
}
101103

104+
tlvRecords = append(
105+
tlvRecords, tlv.MakePrimitiveRecord(typeCreatedAt, &createdAt),
106+
)
107+
102108
tlvStream, err := tlv.NewStream(tlvRecords...)
103109
if err != nil {
104110
return err
@@ -115,7 +121,7 @@ func DeserializeSession(r io.Reader) (*Session, error) {
115121
label, serverAddr []byte
116122
pairingSecret, privateKey []byte
117123
state, typ, devServer uint8
118-
expiry uint64
124+
expiry, createdAt uint64
119125
macRecipe MacaroonRecipe
120126
)
121127
tlvStream, err := tlv.NewStream(
@@ -137,6 +143,7 @@ func DeserializeSession(r io.Reader) (*Session, error) {
137143
typeMacaroonRecipe, &macRecipe, nil,
138144
macaroonRecipeEncoder, macaroonRecipeDecoder,
139145
),
146+
tlv.MakePrimitiveRecord(typeCreatedAt, &createdAt),
140147
)
141148
if err != nil {
142149
return nil, err
@@ -151,6 +158,7 @@ func DeserializeSession(r io.Reader) (*Session, error) {
151158
session.State = State(state)
152159
session.Type = Type(typ)
153160
session.Expiry = time.Unix(int64(expiry), 0)
161+
session.CreatedAt = time.Unix(int64(createdAt), 0)
154162
session.ServerAddr = string(serverAddr)
155163
session.DevServer = devServer == 1
156164

session/tlv_test.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ func TestSerializeDeserializeSession(t *testing.T) {
9999
)
100100
session.Expiry = time.Time{}
101101
deserializedSession.Expiry = time.Time{}
102+
session.CreatedAt = time.Time{}
103+
deserializedSession.CreatedAt = time.Time{}
104+
102105
require.Equal(t, session, deserializedSession)
103106
})
104107
}

session_rpcserver.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,7 @@ func marshalRPCSession(sess *session.Session) (*litrpc.Session, error) {
333333
PairingSecretMnemonic: strings.Join(mnemonic[:], " "),
334334
LocalPublicKey: sess.LocalPublicKey.SerializeCompressed(),
335335
RemotePublicKey: remotePubKey,
336+
CreatedAt: uint64(sess.CreatedAt.Unix()),
336337
}, nil
337338
}
338339

0 commit comments

Comments
 (0)