Added server_call_noerr function that avoids touching the last error.

oldstable
Alexandre Julliard 1999-11-21 21:02:06 +00:00
parent d92870fd49
commit af04ebe4bb
2 changed files with 14 additions and 10 deletions

View File

@ -922,6 +922,10 @@ enum request
/* client communication functions */ /* client communication functions */
extern unsigned int server_call_noerr( enum request req );
extern unsigned int server_call_fd( enum request req, int fd_out, int *fd_in );
extern void server_protocol_error( const char *err, ... );
/* get a pointer to the request buffer */ /* get a pointer to the request buffer */
static inline void * WINE_UNUSED get_req_buffer(void) static inline void * WINE_UNUSED get_req_buffer(void)
{ {
@ -934,9 +938,13 @@ static inline int WINE_UNUSED server_remaining( const void *ptr )
return (char *)NtCurrentTeb()->buffer + NtCurrentTeb()->buffer_size - (char *)ptr; return (char *)NtCurrentTeb()->buffer + NtCurrentTeb()->buffer_size - (char *)ptr;
} }
extern unsigned int server_call( enum request req ); /* do a server call and set the last error code */
extern unsigned int server_call_fd( enum request req, int fd_out, int *fd_in ); static inline int server_call( enum request req )
extern void server_protocol_error( const char *err, ... ); {
unsigned int res = server_call_noerr( req );
if (res) SetLastError( res );
return res;
}
extern int CLIENT_InitServer(void); extern int CLIENT_InitServer(void);
extern int CLIENT_SetDebug( int level ); extern int CLIENT_SetDebug( int level );

View File

@ -225,18 +225,14 @@ static unsigned int wait_reply_fd( int *fd )
/*********************************************************************** /***********************************************************************
* server_call * server_call_noerr
* *
* Perform a server call. * Perform a server call.
*/ */
unsigned int server_call( enum request req ) unsigned int server_call_noerr( enum request req )
{ {
unsigned int res;
send_request( req ); send_request( req );
res = wait_reply(); return wait_reply();
if (res) SetLastError( res );
return res; /* error code */
} }