/// <exception cref="SharpCifs.Smb.SmbException"></exception> /// <exception cref="System.UriFormatException"></exception> /// <exception cref="UnknownHostException"></exception> internal SmbFileOutputStream(SmbFile file, bool append, int openFlags) { this._file = file; this._append = append; this._openFlags = openFlags; _access = ((int)(((uint)openFlags) >> 16)) & 0xFFFF; if (append) { try { _fp = file.Length(); } catch (SmbAuthException sae) { throw; } catch (SmbException) { _fp = 0L; } } if (file is SmbNamedPipe && file.Unc.StartsWith("\\pipe\\")) { file.Unc = Runtime.Substring(file.Unc, 5); file.Send(new TransWaitNamedPipe("\\pipe" + file.Unc), new TransWaitNamedPipeResponse()); } file.Open(openFlags, _access | SmbConstants.FileWriteData, SmbFile.AttrNormal, 0); this._openFlags &= ~(SmbFile.OCreat | SmbFile.OTrunc); _writeSize = file.Tree.Session.transport.SndBufSize - 70; _useNtSmbs = file.Tree.Session.transport.HasCapability(SmbConstants.CapNtSmbs); if (_useNtSmbs) { _reqx = new SmbComWriteAndX(); _rspx = new SmbComWriteAndXResponse(); } else { _req = new SmbComWrite(); _rsp = new SmbComWriteResponse(); } }
/// <exception cref="SharpCifs.Smb.SmbException"></exception> /// <exception cref="System.UriFormatException"></exception> /// <exception cref="UnknownHostException"></exception> internal SmbFileOutputStream(SmbFile file, bool append, int openFlags) { this._file = file; this._append = append; this._openFlags = openFlags; _access = ((int)(((uint)openFlags) >> 16)) & 0xFFFF; if (append) { try { _fp = file.Length(); } catch (SmbAuthException sae) { throw; } catch (SmbException) { _fp = 0L; } } if (file is SmbNamedPipe && file.Unc.StartsWith("\\pipe\\")) { file.Unc = Runtime.Substring(file.Unc, 5); file.Send(new TransWaitNamedPipe("\\pipe" + file.Unc), new TransWaitNamedPipeResponse ()); } file.Open(openFlags, _access | SmbConstants.FileWriteData, SmbFile.AttrNormal, 0); this._openFlags &= ~(SmbFile.OCreat | SmbFile.OTrunc); _writeSize = file.Tree.Session.transport.SndBufSize - 70; _useNtSmbs = file.Tree.Session.transport.HasCapability(SmbConstants.CapNtSmbs ); if (_useNtSmbs) { _reqx = new SmbComWriteAndX(); _rspx = new SmbComWriteAndXResponse(); } else { _req = new SmbComWrite(); _rsp = new SmbComWriteResponse(); } }
/// <exception cref="SharpCifs.Smb.SmbException"></exception> public WriterThread(SmbFile enclosing) : base("JCIFS-WriterThread") { this._enclosing = enclosing; UseNtSmbs = this._enclosing.Tree.Session.transport.HasCapability(SmbConstants.CapNtSmbs); if (UseNtSmbs) { Reqx = new SmbComWriteAndX(); Resp = new SmbComWriteAndXResponse(); } else { Req = new SmbComWrite(); Resp = new SmbComWriteResponse(); } Ready = false; }