<feed xmlns='http://www.w3.org/2005/Atom'>
<title>phosphor-ipmi-blobs, branch master</title>
<subtitle>OpenBMC Phosphor IPMI daemon module loader sources</subtitle>
<id>https://git.raptorcs.com/git/phosphor-ipmi-blobs/atom?h=master</id>
<link rel='self' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/'/>
<updated>2019-11-25T19:02:00+00:00</updated>
<entry>
<title>Various cleanups</title>
<updated>2019-11-25T19:02:00+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-23T04:11:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=9cd8f76d3a786645ba6e21e146f66f5f27a6290c'/>
<id>urn:sha1:9cd8f76d3a786645ba6e21e146f66f5f27a6290c</id>
<content type='text'>
* Move functions to private as appropriate
* Reorder functions to match declaration order
* Declare arguments as const when appropriate
* Rename to getActionHandler() to match previous method name

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: I7d3b5bbb07c218c6c2d6277a1f19d8a0299bd6e6
</content>
</entry>
<entry>
<title>cleanup: remove getPath</title>
<updated>2019-11-25T18:18:55+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-23T04:01:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=beee9e54ae3e20bce5e466773cfda9232382e2e7'/>
<id>urn:sha1:beee9e54ae3e20bce5e466773cfda9232382e2e7</id>
<content type='text'>
The getPath call is only used once. Getting rid of it makes it easier to
understand.

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: Ifc8859f5fc68bb594003a6db7f7e80b1c1dfed28
</content>
</entry>
<entry>
<title>Fix openFiles refcount</title>
<updated>2019-11-25T18:06:06+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-22T22:59:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=cd833aa11075ac1041531270060e1fb3ba8aa5ac'/>
<id>urn:sha1:cd833aa11075ac1041531270060e1fb3ba8aa5ac</id>
<content type='text'>
The old code deletes session from the session map before doing a lookup
of the path. Fix the order and add a unit test to catch the error case.
(The unit test would fail without this fix).

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: If043d6aad7bbaafa19ae3b63a6d9cc7a836d25b5
</content>
</entry>
<entry>
<title>cleanup: Use scoped initializers; move implementation to source file</title>
<updated>2019-11-21T18:06:48+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-14T19:38:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=fea1d8115bace4bedae2523a9d9389a990adb09f'/>
<id>urn:sha1:fea1d8115bace4bedae2523a9d9389a990adb09f</id>
<content type='text'>
Simplify code and address comments from
http://gerrit.openbmc-project.xyz/c/openbmc/phosphor-ipmi-blobs/+/27399:

* Use C++17 syntax of intializers in conditionals to simplify code.
* Move getActionHandle() implementation to .cpp
* return false explicitly

Tested:
  Unit tests still pass.

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: I08a78125206f284d8c748822912e11828fb39968
</content>
</entry>
<entry>
<title>cleanup: Operate on members directly and allow empty paths in the lookup table</title>
<updated>2019-11-21T18:06:48+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-14T21:08:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=9ce834822ed625512913e14b83c50487d4b2c12b'/>
<id>urn:sha1:9ce834822ed625512913e14b83c50487d4b2c12b</id>
<content type='text'>
Instead of using private methods to change data, directly operate on
it. Currently no test depends on these methods.

There is also a minor bug fix: the previous code will not increment or
decrement the open session count if the blobId is an empty string,
however there is no check on the manager side. If empty blobIds are
disallowed they should be checked earlier.

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: I8d97e098bed2d5c27a204a86ed688d0d9a98f0a2
</content>
</entry>
<entry>
<title>test: Add unit tests for session expiration</title>
<updated>2019-11-21T18:06:48+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-14T21:12:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=aa17bdaf3e34ce3a876dfb828ace2ec2c635e5e5'/>
<id>urn:sha1:aa17bdaf3e34ce3a876dfb828ace2ec2c635e5e5</id>
<content type='text'>
Add simple tests to ensure the session expire method is called when
the timeout is set to zero.

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: Ic6e973ede760a6a6f15726d5b6c93a892d858c8b
</content>
</entry>
<entry>
<title>Implement session expiration</title>
<updated>2019-11-19T21:50:55+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-13T06:50:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=b61a88bacdd5fdd2507cb218afcf95c40a2565f2'/>
<id>urn:sha1:b61a88bacdd5fdd2507cb218afcf95c40a2565f2</id>
<content type='text'>
If the caller opens sessions but doesn't close them, either
intentionally or unintentionally, session IDs will leak. Once the
maximum number of sessions are reached, no new session can be opened.

Implement a cleanup procedure to automatically remove stale sessions. If
a session hasn't seen activity for a while, call the expire()
functions on the handler, and remove the session from tracking table.
For handlers that haven't implemented the expire() call this change will
be a no-op.

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: I895ae19b4003d2d6f7a0b2e73370fe5aa664adee
</content>
</entry>
<entry>
<title>Store the last action time in session info</title>
<updated>2019-11-19T21:50:11+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-19T21:45:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=7fc52c8fe3bc7cc9b57a007ce1b7c38e60f9602f'/>
<id>urn:sha1:7fc52c8fe3bc7cc9b57a007ce1b7c38e60f9602f</id>
<content type='text'>
Add a timestamp member in SessionStat to capture when the session
sees activity last, and update it with every action. The timestamp
will be used to check when the session should expire.

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: Ic781d54173099bff76b3c37dd296521680fe7986
</content>
</entry>
<entry>
<title>Refactor various methods to get session or blob handler</title>
<updated>2019-11-19T21:47:45+00:00</updated>
<author>
<name>Kun Yi</name>
<email>kunyi731@gmail.com</email>
</author>
<published>2019-11-19T21:42:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=c892f4a0a863ff982b108d1a73f65dacb2cfbdac'/>
<id>urn:sha1:c892f4a0a863ff982b108d1a73f65dacb2cfbdac</id>
<content type='text'>
Use a single method to fetch the handler, if it can be found using
session ID.

Signed-off-by: Kun Yi &lt;kunyi731@gmail.com&gt;
Change-Id: I648cbc48ebfae479f63d34e8f2465d2c8cbe9d64
</content>
</entry>
<entry>
<title>blobs: s/struct BlobMeta/BlobMeta/g</title>
<updated>2019-06-17T18:51:19+00:00</updated>
<author>
<name>Patrick Venture</name>
<email>venture@google.com</email>
</author>
<published>2019-06-04T14:20:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/phosphor-ipmi-blobs/commit/?id=8bc117792fbf118dd74d015546c22612961ccc26'/>
<id>urn:sha1:8bc117792fbf118dd74d015546c22612961ccc26</id>
<content type='text'>
Because this structure is not anything special, simply use the cpp
idiomatic way of referencing the object.

Consistently, structures that are packed still have "struct" used in
declarations.  However, this distinction is only clear through its usage
and nothing in the language.  Perhaps a better approach would be
notational naming struct PackedXYZ {};.  However, that can get out of
control quickly.

Signed-off-by: Patrick Venture &lt;venture@google.com&gt;
Change-Id: I3b7e48e4b6687ef2e15e9d07c0eeba96eb5d2552
</content>
</entry>
</feed>
