Commits
- Commit:
fcf8ca156c415ee0c3c1b224205e09bddfad562e
- From:
- Omar Polo <op@omarpolo.com>
- Date:
allow directory to be read again using offset 0
The documentation says explicitly that the offset is *either* 0 or the
last offset plus count; that means that after some read a client can
require *again* an offset 0 (i.e. doing a rewinding the directory.)
- Commit:
5585f1c3803e04ba1341fef0f031b1df1312682a
- From:
- Omar Polo <op@omarpolo.com>
- Date:
implement Tread against directories
To do so it was needed to modify the np_* functions so they take an
explicit evbuffer.
- Commit:
20c188cec87a667632239f58cf43696ddb60ec77
- From:
- Omar Polo <op@omarpolo.com>
- Date:
PATH_MAX already accounts for NUL
- Commit:
1e8d72fd3f333ff75989cca10a0ae9285f4b5f2f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
free evp only if it was allocated
apparently, evbuffer_free doesn't like NULLs
- Commit:
5f362b7f054ee9e876d7b8c208fcc09b2235091f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
typo spotted by cage, thanks!
- Commit:
c0ae57b900c0dda41d12793b7a0480159f2946ca
- From:
- Omar Polo <op@omarpolo.com>
- Date:
initialize evbuffer only for dirs
- Commit:
baa405044968a73fd6a257a3504efe7dc5fe7443
- From:
- Omar Polo <op@omarpolo.com>
- Date:
first half of the tread implementation done, no new tests yet
- Commit:
d4e438158258d53a0d22189b432537b22300dd2e
- From:
- Omar Polo <op@omarpolo.com>
- Date:
allow opening directories (for reading only)
- Commit:
99a435901454cc6ca529a783486c83ffddadb110
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix walk fid check: look at fd not iomode to see if it was opened
- Commit:
87a818e80dd7b59d2ee3f9b1cdffc82d7c5c1b4c
- From:
- Omar Polo <op@omarpolo.com>
- Date:
ensure we don't call openat(2) with "" as path
- Commit:
cf758c3329364c1516e2b78c573d6901843bc670
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix Tattach handling
The previous implementation assumed that you can't attach more than
once. This is clearly wrong, Tattach and Twalk are the two ways to
obtain new fids.
This drops the error on subsequential attach and making the test
"multiple attach" passes.
- Commit:
3242c0bccce6e6d431c59b04e2cd955e732fa074
- From:
- Omar Polo <op@omarpolo.com>
- Date:
don't let nwqid become negative
at the start of the loop nwqid is 0, so if the first component can't be
opened nwqid becomes -1 and since it's not 0, we end up calling np_walk
with -1 as length. This in turns converts it back to uint16_t and we
generate an invalid packet.
The solution is to not decrement nwqid at all, it fixes all the current
tests case and is the correct behaviour that the rest of the code
expects.
- Commit:
054cd6b98fbb367f781b25084661076f5c1fe4b1
- From:
- Omar Polo <op@omarpolo.com>
- Date:
Twalk: validate path component
disallow empty path, the dot or components which contains the path
separator ('/'). The current implementation transforms these into a
"can't open" type of failure, I'm unsure if we want to turn these into
hard Rerror.
- Commit:
021481cadee5324ef838e632a87746cdabffd5e3
- From:
- Omar Polo <op@omarpolo.com>
- Date:
Topen implemented
Implement Topen plus some basic testing. ORCLOSE (remove file when the
fid is clunked) is mapped to O_CLOEXEC and tried to be honoured on
fid_free.
"vanilla" 9P2000 uses reads on directories to list the entries while
9P2000.L (and .U too possibly) introduces an explicit Treaddir. I'm
planning to support 9P2000-style read-on-dir but not yet.
- Commit:
5b704257daf17ddb642c3e353095663903c3247e
- From:
- Omar Polo <op@omarpolo.com>
- Date:
initialize to -1 fid' fd