Rev 3535 | Rev 4345 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3535 | Rev 4341 | ||
---|---|---|---|
Line 70... | Line 70... | ||
70 | * connection later. |
70 | * connection later. |
71 | */ |
71 | */ |
72 | while (keep_on_going) { |
72 | while (keep_on_going) { |
73 | ipc_callid_t callid; |
73 | ipc_callid_t callid; |
74 | ipc_call_t call; |
74 | ipc_call_t call; |
- | 75 | int phone; |
|
- | 76 | fs_handle_t fs_handle; |
|
75 | 77 | ||
76 | callid = async_get_call(&call); |
78 | callid = async_get_call(&call); |
77 | 79 | ||
78 | switch (IPC_GET_METHOD(call)) { |
80 | switch (IPC_GET_METHOD(call)) { |
79 | case IPC_M_PHONE_HUNGUP: |
81 | case IPC_M_PHONE_HUNGUP: |
80 | keep_on_going = false; |
82 | keep_on_going = false; |
81 | break; |
83 | break; |
- | 84 | case IPC_M_CONNECT_ME_TO: |
|
- | 85 | /* |
|
- | 86 | * Connect the client file system to another one. |
|
- | 87 | */ |
|
- | 88 | /* FIXME: |
|
- | 89 | * Prevent ordinary clients from connecting to file |
|
- | 90 | * system servers directly. This should be solved by |
|
- | 91 | * applying some security mechanisms. |
|
- | 92 | */ |
|
- | 93 | fs_handle = IPC_GET_ARG1(call); |
|
- | 94 | phone = vfs_grab_phone(fs_handle); |
|
- | 95 | (void) ipc_forward_fast(callid, phone, 0, 0, 0, |
|
- | 96 | IPC_FF_NONE); |
|
- | 97 | vfs_release_phone(phone); |
|
- | 98 | break; |
|
82 | case VFS_REGISTER: |
99 | case VFS_REGISTER: |
83 | vfs_register(callid, &call); |
100 | vfs_register(callid, &call); |
- | 101 | /* |
|
84 | keep_on_going = false; |
102 | * Keep the connection open so that a file system can |
- | 103 | * later ask us to connect it to another file system. |
|
- | 104 | * This is necessary to support non-root mounts. |
|
- | 105 | */ |
|
85 | break; |
106 | break; |
86 | case VFS_MOUNT: |
107 | case VFS_MOUNT: |
87 | vfs_mount(callid, &call); |
108 | vfs_mount(callid, &call); |
88 | break; |
109 | break; |
89 | case VFS_OPEN: |
110 | case VFS_OPEN: |