to post messages and comments.

github.com

[10:22:45]<L29Ah_> а ещё у прыщей поменялся синтаксис dial'ов для 9p
[10:23:25]<L29Ah_> о чём символизирует крайне информативное сообщение в логе:
[12773.145511] 9pnet: p9_fd_create_unix (19482): problem connecting socket: unix!/tmp/npttest: -2

А ещё в 9umount обнаружился ещё какой-то баг, который я пока не смог воспроизвести из-за цирка с suid :/

Норм придумал?

type IOObject a = (IO a, a -> IO ())

— FIXME sane errors
heterObj :: IOObject a -> IOObject a -> IOObject a
heterObj a b = (fst a, snd b)

nulls :: IOObject a
nulls = (throw $ Underflow, const $ return ())

chans :: Chan a -> IOObject a
chans a = (readChan a, writeChan a)

type DataTypeObject a = (a -> ByteString, ByteString -> a)

lazyByteStrings :: DataTypeObject ByteString
lazyByteStrings = (id, id)

showBool True = "true"
showBool False = "false"
readBool s
| s == "1" = True
| s == "true" = True
| s == "0" = False
| s == "false" = False
booleans :: DataTypeObject Bool
booleans = (showBool, readBool)

simpleFile :: forall a m. (Monad m, EmbedIO m)
=> String
-> IOObject a
-> DataTypeObject a
-> NineFile m
simpleFile name (rd, wr) (rdc, wrc) = (boringFile name :: NineFile m) {
read = simpleRead $ liftM rdc $ rd,
write = simpleWrite $ wr . wrc
}

% ls /bus/wpas/
total 0
-rw------- 1 muromec muromec 0 Jun 26 05:27 debug
drwx------ 1 muromec muromec 0 Jun 26 05:27 iface/
drwx------ 1 muromec muromec 0 Jun 26 05:27 net/
-rw------- 1 muromec muromec 0 Jun 26 05:27 status

% ls /bus/wpas/net
% ls /bus/wpas/iface
wlan0/
% ls /bus/wpas/iface/wlan0
current_ssid ifname state
% cat /bus/wpas/iface/wlan0/ifname
wlan0%
% cat /bus/wpas/iface/wlan0/state
COMPLETED%

via github.com