mirror of
https://github.com/doublecmd/doublecmd.git
synced 2026-06-21 09:58:13 +00:00
ADD: Pass last error code
This commit is contained in:
parent
add57039f3
commit
e0a85f2e9c
2 changed files with 20 additions and 1 deletions
|
|
@ -61,7 +61,7 @@ var
|
|||
implementation
|
||||
|
||||
uses
|
||||
uDebug;
|
||||
DCOSUtils, uDebug;
|
||||
|
||||
const
|
||||
MasterAddress = 'doublecmd-master-';
|
||||
|
|
@ -144,6 +144,7 @@ end;
|
|||
|
||||
function TWorkerProxy.ProcessObject(ACommand: UInt32; const ObjectName: String): LongBool;
|
||||
var
|
||||
LastError: Integer;
|
||||
Stream: TMemoryStream;
|
||||
begin
|
||||
Result:= False;
|
||||
|
|
@ -161,6 +162,8 @@ begin
|
|||
FClient.WriteBuffer(Stream.Memory^, Stream.Size);
|
||||
// Receive command result
|
||||
FClient.ReadBuffer(Result, SizeOf(Result));
|
||||
FClient.ReadBuffer(LastError, SizeOf(LastError));
|
||||
SetLastOSError(LastError);
|
||||
finally
|
||||
Stream.Free;
|
||||
end;
|
||||
|
|
@ -169,6 +172,7 @@ end;
|
|||
function TWorkerProxy.ProcessObject(ACommand: UInt32; const OldName,
|
||||
NewName: String): LongBool;
|
||||
var
|
||||
LastError: Integer;
|
||||
Stream: TMemoryStream;
|
||||
begin
|
||||
Result:= False;
|
||||
|
|
@ -187,6 +191,8 @@ begin
|
|||
FClient.WriteBuffer(Stream.Memory^, Stream.Size);
|
||||
// Receive command result
|
||||
FClient.ReadBuffer(Result, SizeOf(Result));
|
||||
FClient.ReadBuffer(LastError, SizeOf(LastError));
|
||||
SetLastOSError(LastError);
|
||||
finally
|
||||
Stream.Free;
|
||||
end;
|
||||
|
|
|
|||
|
|
@ -99,6 +99,7 @@ var
|
|||
NewName: String;
|
||||
FileName: String;
|
||||
Result: LongBool;
|
||||
LastError: Integer;
|
||||
begin
|
||||
case ACommand of
|
||||
RPC_DeleteFile:
|
||||
|
|
@ -106,7 +107,9 @@ begin
|
|||
FileName:= ARequest.ReadAnsiString;
|
||||
DCDebug('DeleteFile ', FileName);
|
||||
Result:= mbDeleteFile(FileName);
|
||||
LastError:= GetLastOSError;
|
||||
ATransport.WriteBuffer(Result, SizeOf(Result));
|
||||
ATransport.WriteBuffer(LastError, SizeOf(LastError));
|
||||
end;
|
||||
RPC_FileOpen:
|
||||
begin
|
||||
|
|
@ -130,7 +133,9 @@ begin
|
|||
NewName:= ARequest.ReadAnsiString;
|
||||
DCDebug('RenameFile ', FileName);
|
||||
Result:= mbRenameFile(FileName, NewName);
|
||||
LastError:= GetLastOSError;
|
||||
ATransport.WriteBuffer(Result, SizeOf(Result));
|
||||
ATransport.WriteBuffer(LastError, SizeOf(LastError));
|
||||
end;
|
||||
RPC_CreateHardLink:
|
||||
begin
|
||||
|
|
@ -138,7 +143,9 @@ begin
|
|||
NewName:= ARequest.ReadAnsiString;
|
||||
DCDebug('CreateHardLink ', NewName);
|
||||
Result:= CreateHardLink(FileName, NewName);
|
||||
LastError:= GetLastOSError;
|
||||
ATransport.WriteBuffer(Result, SizeOf(Result));
|
||||
ATransport.WriteBuffer(LastError, SizeOf(LastError));
|
||||
end;
|
||||
RPC_CreateSymbolicLink:
|
||||
begin
|
||||
|
|
@ -146,21 +153,27 @@ begin
|
|||
NewName:= ARequest.ReadAnsiString;
|
||||
DCDebug('CreateSymbolicLink ', NewName);
|
||||
Result:= CreateSymLink(FileName, NewName);
|
||||
LastError:= GetLastOSError;
|
||||
ATransport.WriteBuffer(Result, SizeOf(Result));
|
||||
ATransport.WriteBuffer(LastError, SizeOf(LastError));
|
||||
end;
|
||||
RPC_CreateDirectory:
|
||||
begin
|
||||
FileName:= ARequest.ReadAnsiString;
|
||||
DCDebug('CreateDirectory ', FileName);
|
||||
Result:= mbCreateDir(FileName);
|
||||
LastError:= GetLastOSError;
|
||||
ATransport.WriteBuffer(Result, SizeOf(Result));
|
||||
ATransport.WriteBuffer(LastError, SizeOf(LastError));
|
||||
end;
|
||||
RPC_RemoveDirectory:
|
||||
begin
|
||||
FileName:= ARequest.ReadAnsiString;
|
||||
DCDebug('RemoveDirectory ', FileName);
|
||||
Result:= mbRemoveDir(FileName);
|
||||
LastError:= GetLastOSError;
|
||||
ATransport.WriteBuffer(Result, SizeOf(Result));
|
||||
ATransport.WriteBuffer(LastError, SizeOf(LastError));
|
||||
end;
|
||||
RPC_Terminate: Halt;
|
||||
end;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue