Added beginnings of server-side file handling.
Added -debugmsg +server support.
Better server request dumping for varargs requests.
diff --git a/server/request.c b/server/request.c
index 6ce5b35..4c14c48 100644
--- a/server/request.c
+++ b/server/request.c
@@ -152,6 +152,14 @@
send_reply( current, -1, 0 );
}
+/* set the debug level */
+DECL_HANDLER(set_debug)
+{
+ debug_level = req->level;
+ CLEAR_ERROR();
+ send_reply( current, -1, 0 );
+}
+
/* terminate a process */
DECL_HANDLER(terminate_process)
{
@@ -372,3 +380,38 @@
send_reply( current, -1, 1, &reply, sizeof(reply) );
}
+/* create a file */
+DECL_HANDLER(create_file)
+{
+ struct create_file_reply reply = { -1 };
+ struct object *obj;
+ int new_fd;
+
+ if ((new_fd = dup(fd)) == -1)
+ {
+ SET_ERROR( ERROR_TOO_MANY_OPEN_FILES );
+ goto done;
+ }
+ if ((obj = create_file( new_fd )) != NULL)
+ {
+ reply.handle = alloc_handle( current->process, obj, req->access, req->inherit );
+ release_object( obj );
+ }
+ done:
+ send_reply( current, -1, 1, &reply, sizeof(reply) );
+}
+
+/* get a Unix handle to a file */
+DECL_HANDLER(get_unix_handle)
+{
+ int handle = file_get_unix_handle( req->handle, req->access );
+ send_reply( current, handle, 0 );
+}
+
+/* get a file information */
+DECL_HANDLER(get_file_info)
+{
+ struct get_file_info_reply reply;
+ get_file_info( req->handle, &reply );
+ send_reply( current, -1, 1, &reply, sizeof(reply) );
+}