aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssh/doc/standard/draft-ietf-secsh-filexfer-02.2.ps
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ssh/doc/standard/draft-ietf-secsh-filexfer-02.2.ps')
-rw-r--r--lib/ssh/doc/standard/draft-ietf-secsh-filexfer-02.2.ps2853
1 files changed, 2853 insertions, 0 deletions
diff --git a/lib/ssh/doc/standard/draft-ietf-secsh-filexfer-02.2.ps b/lib/ssh/doc/standard/draft-ietf-secsh-filexfer-02.2.ps
new file mode 100644
index 0000000000..06c91bf8cd
--- /dev/null
+++ b/lib/ssh/doc/standard/draft-ietf-secsh-filexfer-02.2.ps
@@ -0,0 +1,2853 @@
+%!PS-Adobe-3.0
+%%BoundingBox: 75 0 595 747
+%%Title: Enscript Output
+%%For: Magnus Thoang
+%%Creator: GNU enscript 1.6.1
+%%CreationDate: Wed Nov 12 12:26:07 2003
+%%Orientation: Portrait
+%%Pages: 15 0
+%%DocumentMedia: A4 595 842 0 () ()
+%%DocumentNeededResources: (atend)
+%%EndComments
+%%BeginProlog
+%%BeginProcSet: PStoPS 1 15
+userdict begin
+[/showpage/erasepage/copypage]{dup where{pop dup load
+ type/operatortype eq{1 array cvx dup 0 3 index cvx put
+ bind def}{pop}ifelse}{pop}ifelse}forall
+[/letter/legal/executivepage/a4/a4small/b5/com10envelope
+ /monarchenvelope/c5envelope/dlenvelope/lettersmall/note
+ /folio/quarto/a5]{dup where{dup wcheck{exch{}put}
+ {pop{}def}ifelse}{pop}ifelse}forall
+/setpagedevice {pop}bind 1 index where{dup wcheck{3 1 roll put}
+ {pop def}ifelse}{def}ifelse
+/PStoPSmatrix matrix currentmatrix def
+/PStoPSxform matrix def/PStoPSclip{clippath}def
+/defaultmatrix{PStoPSmatrix exch PStoPSxform exch concatmatrix}bind def
+/initmatrix{matrix defaultmatrix setmatrix}bind def
+/initclip[{matrix currentmatrix PStoPSmatrix setmatrix
+ [{currentpoint}stopped{$error/newerror false put{newpath}}
+ {/newpath cvx 3 1 roll/moveto cvx 4 array astore cvx}ifelse]
+ {[/newpath cvx{/moveto cvx}{/lineto cvx}
+ {/curveto cvx}{/closepath cvx}pathforall]cvx exch pop}
+ stopped{$error/errorname get/invalidaccess eq{cleartomark
+ $error/newerror false put cvx exec}{stop}ifelse}if}bind aload pop
+ /initclip dup load dup type dup/operatortype eq{pop exch pop}
+ {dup/arraytype eq exch/packedarraytype eq or
+ {dup xcheck{exch pop aload pop}{pop cvx}ifelse}
+ {pop cvx}ifelse}ifelse
+ {newpath PStoPSclip clip newpath exec setmatrix} bind aload pop]cvx def
+/initgraphics{initmatrix newpath initclip 1 setlinewidth
+ 0 setlinecap 0 setlinejoin []0 setdash 0 setgray
+ 10 setmiterlimit}bind def
+end
+%%EndProcSet
+%%BeginResource: procset Enscript-Prolog 1.6 1
+%
+% Procedures.
+%
+
+/_S { % save current state
+ /_s save def
+} def
+/_R { % restore from saved state
+ _s restore
+} def
+
+/S { % showpage protecting gstate
+ gsave
+ showpage
+ grestore
+} bind def
+
+/MF { % fontname newfontname -> - make a new encoded font
+ /newfontname exch def
+ /fontname exch def
+
+ /fontdict fontname findfont def
+ /newfont fontdict maxlength dict def
+
+ fontdict {
+ exch
+ dup /FID eq {
+ % skip FID pair
+ pop pop
+ } {
+ % copy to the new font dictionary
+ exch newfont 3 1 roll put
+ } ifelse
+ } forall
+
+ newfont /FontName newfontname put
+
+ % insert only valid encoding vectors
+ encoding_vector length 256 eq {
+ newfont /Encoding encoding_vector put
+ } if
+
+ newfontname newfont definefont pop
+} def
+
+/SF { % fontname width height -> - set a new font
+ /height exch def
+ /width exch def
+
+ findfont
+ [width 0 0 height 0 0] makefont setfont
+} def
+
+/SUF { % fontname width height -> - set a new user font
+ /height exch def
+ /width exch def
+
+ /F-gs-user-font MF
+ /F-gs-user-font width height SF
+} def
+
+/M {moveto} bind def
+/s {show} bind def
+
+/Box { % x y w h -> - define box path
+ /d_h exch def /d_w exch def /d_y exch def /d_x exch def
+ d_x d_y moveto
+ d_w 0 rlineto
+ 0 d_h rlineto
+ d_w neg 0 rlineto
+ closepath
+} def
+
+/bgs { % x y height blskip gray str -> - show string with bg color
+ /str exch def
+ /gray exch def
+ /blskip exch def
+ /height exch def
+ /y exch def
+ /x exch def
+
+ gsave
+ x y blskip sub str stringwidth pop height Box
+ gray setgray
+ fill
+ grestore
+ x y M str s
+} def
+
+% Highlight bars.
+/highlight_bars { % nlines lineheight output_y_margin gray -> -
+ gsave
+ setgray
+ /ymarg exch def
+ /lineheight exch def
+ /nlines exch def
+
+ % This 2 is just a magic number to sync highlight lines to text.
+ 0 d_header_y ymarg sub 2 sub translate
+
+ /cw d_output_w cols div def
+ /nrows d_output_h ymarg 2 mul sub lineheight div cvi def
+
+ % for each column
+ 0 1 cols 1 sub {
+ cw mul /xp exch def
+
+ % for each rows
+ 0 1 nrows 1 sub {
+ /rn exch def
+ rn lineheight mul neg /yp exch def
+ rn nlines idiv 2 mod 0 eq {
+ % Draw highlight bar. 4 is just a magic indentation.
+ xp 4 add yp cw 8 sub lineheight neg Box fill
+ } if
+ } for
+ } for
+
+ grestore
+} def
+
+% Line highlight bar.
+/line_highlight { % x y width height gray -> -
+ gsave
+ /gray exch def
+ Box gray setgray fill
+ grestore
+} def
+
+% Column separator lines.
+/column_lines {
+ gsave
+ .1 setlinewidth
+ 0 d_footer_h translate
+ /cw d_output_w cols div def
+ 1 1 cols 1 sub {
+ cw mul 0 moveto
+ 0 d_output_h rlineto stroke
+ } for
+ grestore
+} def
+
+% Column borders.
+/column_borders {
+ gsave
+ .1 setlinewidth
+ 0 d_footer_h moveto
+ 0 d_output_h rlineto
+ d_output_w 0 rlineto
+ 0 d_output_h neg rlineto
+ closepath stroke
+ grestore
+} def
+
+% Do the actual underlay drawing
+/draw_underlay {
+ ul_style 0 eq {
+ ul_str true charpath stroke
+ } {
+ ul_str show
+ } ifelse
+} def
+
+% Underlay
+/underlay { % - -> -
+ gsave
+ 0 d_page_h translate
+ d_page_h neg d_page_w atan rotate
+
+ ul_gray setgray
+ ul_font setfont
+ /dw d_page_h dup mul d_page_w dup mul add sqrt def
+ ul_str stringwidth pop dw exch sub 2 div ul_h_ptsize -2 div moveto
+ draw_underlay
+ grestore
+} def
+
+/user_underlay { % - -> -
+ gsave
+ ul_x ul_y translate
+ ul_angle rotate
+ ul_gray setgray
+ ul_font setfont
+ 0 0 ul_h_ptsize 2 div sub moveto
+ draw_underlay
+ grestore
+} def
+
+% Page prefeed
+/page_prefeed { % bool -> -
+ statusdict /prefeed known {
+ statusdict exch /prefeed exch put
+ } {
+ pop
+ } ifelse
+} def
+
+% Wrapped line markers
+/wrapped_line_mark { % x y charwith charheight type -> -
+ /type exch def
+ /h exch def
+ /w exch def
+ /y exch def
+ /x exch def
+
+ type 2 eq {
+ % Black boxes (like TeX does)
+ gsave
+ 0 setlinewidth
+ x w 4 div add y M
+ 0 h rlineto w 2 div 0 rlineto 0 h neg rlineto
+ closepath fill
+ grestore
+ } {
+ type 3 eq {
+ % Small arrows
+ gsave
+ .2 setlinewidth
+ x w 2 div add y h 2 div add M
+ w 4 div 0 rlineto
+ x w 4 div add y lineto stroke
+
+ x w 4 div add w 8 div add y h 4 div add M
+ x w 4 div add y lineto
+ w 4 div h 8 div rlineto stroke
+ grestore
+ } {
+ % do nothing
+ } ifelse
+ } ifelse
+} def
+
+% EPSF import.
+
+/BeginEPSF {
+ /b4_Inc_state save def % Save state for cleanup
+ /dict_count countdictstack def % Count objects on dict stack
+ /op_count count 1 sub def % Count objects on operand stack
+ userdict begin
+ /showpage { } def
+ 0 setgray 0 setlinecap
+ 1 setlinewidth 0 setlinejoin
+ 10 setmiterlimit [ ] 0 setdash newpath
+ /languagelevel where {
+ pop languagelevel
+ 1 ne {
+ false setstrokeadjust false setoverprint
+ } if
+ } if
+} bind def
+
+/EndEPSF {
+ count op_count sub { pos } repeat % Clean up stacks
+ countdictstack dict_count sub { end } repeat
+ b4_Inc_state restore
+} bind def
+
+% Check PostScript language level.
+/languagelevel where {
+ pop /gs_languagelevel languagelevel def
+} {
+ /gs_languagelevel 1 def
+} ifelse
+%%EndResource
+%%BeginResource: procset Enscript-Encoding-88591 1.6 1
+/encoding_vector [
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/space /exclam /quotedbl /numbersign
+/dollar /percent /ampersand /quoteright
+/parenleft /parenright /asterisk /plus
+/comma /hyphen /period /slash
+/zero /one /two /three
+/four /five /six /seven
+/eight /nine /colon /semicolon
+/less /equal /greater /question
+/at /A /B /C
+/D /E /F /G
+/H /I /J /K
+/L /M /N /O
+/P /Q /R /S
+/T /U /V /W
+/X /Y /Z /bracketleft
+/backslash /bracketright /asciicircum /underscore
+/quoteleft /a /b /c
+/d /e /f /g
+/h /i /j /k
+/l /m /n /o
+/p /q /r /s
+/t /u /v /w
+/x /y /z /braceleft
+/bar /braceright /tilde /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/.notdef /.notdef /.notdef /.notdef
+/space /exclamdown /cent /sterling
+/currency /yen /brokenbar /section
+/dieresis /copyright /ordfeminine /guillemotleft
+/logicalnot /hyphen /registered /macron
+/degree /plusminus /twosuperior /threesuperior
+/acute /mu /paragraph /bullet
+/cedilla /onesuperior /ordmasculine /guillemotright
+/onequarter /onehalf /threequarters /questiondown
+/Agrave /Aacute /Acircumflex /Atilde
+/Adieresis /Aring /AE /Ccedilla
+/Egrave /Eacute /Ecircumflex /Edieresis
+/Igrave /Iacute /Icircumflex /Idieresis
+/Eth /Ntilde /Ograve /Oacute
+/Ocircumflex /Otilde /Odieresis /multiply
+/Oslash /Ugrave /Uacute /Ucircumflex
+/Udieresis /Yacute /Thorn /germandbls
+/agrave /aacute /acircumflex /atilde
+/adieresis /aring /ae /ccedilla
+/egrave /eacute /ecircumflex /edieresis
+/igrave /iacute /icircumflex /idieresis
+/eth /ntilde /ograve /oacute
+/ocircumflex /otilde /odieresis /divide
+/oslash /ugrave /uacute /ucircumflex
+/udieresis /yacute /thorn /ydieresis
+] def
+%%EndResource
+%%EndProlog
+%%BeginSetup
+%%IncludeResource: font Courier-Bold
+%%IncludeResource: font Courier
+/HFpt_w 10 def
+/HFpt_h 10 def
+/Courier-Bold /HF-gs-font MF
+/HF /HF-gs-font findfont [HFpt_w 0 0 HFpt_h 0 0] makefont def
+/Courier /F-gs-font MF
+/F-gs-font 10 10 SF
+/#copies 1 def
+/d_page_w 520 def
+/d_page_h 747 def
+/d_header_x 0 def
+/d_header_y 747 def
+/d_header_w 520 def
+/d_header_h 0 def
+/d_footer_x 0 def
+/d_footer_y 0 def
+/d_footer_w 520 def
+/d_footer_h 0 def
+/d_output_w 520 def
+/d_output_h 747 def
+/cols 1 def
+userdict/PStoPSxform PStoPSmatrix matrix currentmatrix
+ matrix invertmatrix matrix concatmatrix
+ matrix invertmatrix put
+%%EndSetup
+%%Page: (0,1) 1
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 1 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 701 M
+(Network Working Group T. Ylonen) s
+5 690 M
+(Internet-Draft S. Lehtinen) s
+5 679 M
+(Expires: April 1, 2002 SSH Communications Security Corp) s
+5 668 M
+( October 2001) s
+5 635 M
+( SSH File Transfer Protocol) s
+5 624 M
+( draft-ietf-secsh-filexfer-02.txt) s
+5 602 M
+(Status of this Memo) s
+5 580 M
+( This document is an Internet-Draft and is in full conformance with) s
+5 569 M
+( all provisions of Section 10 of RFC2026.) s
+5 547 M
+( Internet-Drafts are working documents of the Internet Engineering) s
+5 536 M
+( Task Force \(IETF\), its areas, and its working groups. Note that) s
+5 525 M
+( other groups may also distribute working documents as Internet-) s
+5 514 M
+( Drafts.) s
+5 492 M
+( Internet-Drafts are draft documents valid for a maximum of six months) s
+5 481 M
+( and may be updated, replaced, or obsoleted by other documents at any) s
+5 470 M
+( time. It is inappropriate to use Internet-Drafts as reference) s
+5 459 M
+( material or to cite them other than as "work in progress.") s
+5 437 M
+( The list of current Internet-Drafts can be accessed at http://) s
+5 426 M
+( www.ietf.org/ietf/1id-abstracts.txt.) s
+5 404 M
+( The list of Internet-Draft Shadow Directories can be accessed at) s
+5 393 M
+( http://www.ietf.org/shadow.html.) s
+5 371 M
+( This Internet-Draft will expire on April 1, 2002.) s
+5 349 M
+(Copyright Notice) s
+5 327 M
+( Copyright \(C\) The Internet Society \(2001\). All Rights Reserved.) s
+5 305 M
+(Abstract) s
+5 283 M
+( The SSH File Transfer Protocol provides secure file transfer) s
+5 272 M
+( functionality over any reliable data stream. It is the standard file) s
+5 261 M
+( transfer protocol for use with the SSH2 protocol. This document) s
+5 250 M
+( describes the file transfer protocol and its interface to the SSH2) s
+5 239 M
+( protocol suite.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 1]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 2 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(Table of Contents) s
+5 668 M
+( 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3) s
+5 657 M
+( 2. Use with the SSH Connection Protocol . . . . . . . . . . . . 4) s
+5 646 M
+( 3. General Packet Format . . . . . . . . . . . . . . . . . . . 5) s
+5 635 M
+( 4. Protocol Initialization . . . . . . . . . . . . . . . . . . 7) s
+5 624 M
+( 5. File Attributes . . . . . . . . . . . . . . . . . . . . . . 8) s
+5 613 M
+( 6. Requests From the Client to the Server . . . . . . . . . . . 10) s
+5 602 M
+( 6.1 Request Synchronization and Reordering . . . . . . . . . . . 10) s
+5 591 M
+( 6.2 File Names . . . . . . . . . . . . . . . . . . . . . . . . . 11) s
+5 580 M
+( 6.3 Opening, Creating, and Closing Files . . . . . . . . . . . . 11) s
+5 569 M
+( 6.4 Reading and Writing . . . . . . . . . . . . . . . . . . . . 13) s
+5 558 M
+( 6.5 Removing and Renaming Files . . . . . . . . . . . . . . . . 14) s
+5 547 M
+( 6.6 Creating and Deleting Directories . . . . . . . . . . . . . 15) s
+5 536 M
+( 6.7 Scanning Directories . . . . . . . . . . . . . . . . . . . . 15) s
+5 525 M
+( 6.8 Retrieving File Attributes . . . . . . . . . . . . . . . . . 16) s
+5 514 M
+( 6.9 Setting File Attributes . . . . . . . . . . . . . . . . . . 17) s
+5 503 M
+( 6.10 Dealing with Symbolic links . . . . . . . . . . . . . . . . 18) s
+5 492 M
+( 6.11 Canonicalizing the Server-Side Path Name . . . . . . . . . . 18) s
+5 481 M
+( 7. Responses from the Server to the Client . . . . . . . . . . 20) s
+5 470 M
+( 8. Vendor-Specific Extensions . . . . . . . . . . . . . . . . . 24) s
+5 459 M
+( 9. Security Considerations . . . . . . . . . . . . . . . . . . 25) s
+5 448 M
+( 10. Changes from previous protocol versions . . . . . . . . . . 26) s
+5 437 M
+( 10.1 Changes between versions 3 and 2 . . . . . . . . . . . . . . 26) s
+5 426 M
+( 10.2 Changes between versions 2 and 1 . . . . . . . . . . . . . . 26) s
+5 415 M
+( 10.3 Changes between versions 1 and 0 . . . . . . . . . . . . . . 26) s
+5 404 M
+( 11. Trademark Issues . . . . . . . . . . . . . . . . . . . . . . 27) s
+5 393 M
+( References . . . . . . . . . . . . . . . . . . . . . . . . . 28) s
+5 382 M
+( Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 28) s
+5 371 M
+( Full Copyright Statement . . . . . . . . . . . . . . . . . . 29) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 2]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (2,3) 2
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 3 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(1. Introduction) s
+5 668 M
+( This protocol provides secure file transfer \(and more generally file) s
+5 657 M
+( system access\) functionality over a reliable data stream, such as a) s
+5 646 M
+( channel in the SSH2 protocol [3].) s
+5 624 M
+( This protocol is designed so that it could be used to implement a) s
+5 613 M
+( secure remote file system service, as well as a secure file transfer) s
+5 602 M
+( service.) s
+5 580 M
+( This protocol assumes that it runs over a secure channel, and that) s
+5 569 M
+( the server has already authenticated the user at the client end, and) s
+5 558 M
+( that the identity of the client user is externally available to the) s
+5 547 M
+( server implementation.) s
+5 525 M
+( In general, this protocol follows a simple request-response model.) s
+5 514 M
+( Each request and response contains a sequence number and multiple) s
+5 503 M
+( requests may be pending simultaneously. There are a relatively large) s
+5 492 M
+( number of different request messages, but a small number of possible) s
+5 481 M
+( response messages. Each request has one or more response messages) s
+5 470 M
+( that may be returned in result \(e.g., a read either returns data or) s
+5 459 M
+( reports error status\).) s
+5 437 M
+( The packet format descriptions in this specification follow the) s
+5 426 M
+( notation presented in the secsh architecture draft.[3].) s
+5 404 M
+( Even though this protocol is described in the context of the SSH2) s
+5 393 M
+( protocol, this protocol is general and independent of the rest of the) s
+5 382 M
+( SSH2 protocol suite. It could be used in a number of different) s
+5 371 M
+( applications, such as secure file transfer over TLS RFC 2246 [1] and) s
+5 360 M
+( transfer of management information in VPN applications.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 3]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 4 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(2. Use with the SSH Connection Protocol) s
+5 668 M
+( When used with the SSH2 Protocol suite, this protocol is intended to) s
+5 657 M
+( be used from the SSH Connection Protocol [5] as a subsystem, as) s
+5 646 M
+( described in section ``Starting a Shell or a Command''. The) s
+5 635 M
+( subsystem name used with this protocol is "sftp".) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 4]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (4,5) 3
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 5 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(3. General Packet Format) s
+5 668 M
+( All packets transmitted over the secure connection are of the) s
+5 657 M
+( following format:) s
+5 635 M
+( uint32 length) s
+5 624 M
+( byte type) s
+5 613 M
+( byte[length - 1] data payload) s
+5 591 M
+( That is, they are just data preceded by 32-bit length and 8-bit type) s
+5 580 M
+( fields. The `length' is the length of the data area, and does not) s
+5 569 M
+( include the `length' field itself. The format and interpretation of) s
+5 558 M
+( the data area depends on the packet type.) s
+5 536 M
+( All packet descriptions below only specify the packet type and the) s
+5 525 M
+( data that goes into the data field. Thus, they should be prefixed by) s
+5 514 M
+( the `length' and `type' fields.) s
+5 492 M
+( The maximum size of a packet is in practice determined by the client) s
+5 481 M
+( \(the maximum size of read or write requests that it sends, plus a few) s
+5 470 M
+( bytes of packet overhead\). All servers SHOULD support packets of at) s
+5 459 M
+( least 34000 bytes \(where the packet size refers to the full length,) s
+5 448 M
+( including the header above\). This should allow for reads and writes) s
+5 437 M
+( of at most 32768 bytes.) s
+5 415 M
+( There is no limit on the number of outstanding \(non-acknowledged\)) s
+5 404 M
+( requests that the client may send to the server. In practice this is) s
+5 393 M
+( limited by the buffering available on the data stream and the queuing) s
+5 382 M
+( performed by the server. If the server's queues are full, it should) s
+5 371 M
+( not read any more data from the stream, and flow control will prevent) s
+5 360 M
+( the client from sending more requests. Note, however, that while) s
+5 349 M
+( there is no restriction on the protocol level, the client's API may) s
+5 338 M
+( provide a limit in order to prevent infinite queuing of outgoing) s
+5 327 M
+( requests at the client.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 5]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 6 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( The following values are defined for packet types.) s
+5 668 M
+( #define SSH_FXP_INIT 1) s
+5 657 M
+( #define SSH_FXP_VERSION 2) s
+5 646 M
+( #define SSH_FXP_OPEN 3) s
+5 635 M
+( #define SSH_FXP_CLOSE 4) s
+5 624 M
+( #define SSH_FXP_READ 5) s
+5 613 M
+( #define SSH_FXP_WRITE 6) s
+5 602 M
+( #define SSH_FXP_LSTAT 7) s
+5 591 M
+( #define SSH_FXP_FSTAT 8) s
+5 580 M
+( #define SSH_FXP_SETSTAT 9) s
+5 569 M
+( #define SSH_FXP_FSETSTAT 10) s
+5 558 M
+( #define SSH_FXP_OPENDIR 11) s
+5 547 M
+( #define SSH_FXP_READDIR 12) s
+5 536 M
+( #define SSH_FXP_REMOVE 13) s
+5 525 M
+( #define SSH_FXP_MKDIR 14) s
+5 514 M
+( #define SSH_FXP_RMDIR 15) s
+5 503 M
+( #define SSH_FXP_REALPATH 16) s
+5 492 M
+( #define SSH_FXP_STAT 17) s
+5 481 M
+( #define SSH_FXP_RENAME 18) s
+5 470 M
+( #define SSH_FXP_READLINK 19) s
+5 459 M
+( #define SSH_FXP_SYMLINK 20) s
+5 448 M
+( #define SSH_FXP_STATUS 101) s
+5 437 M
+( #define SSH_FXP_HANDLE 102) s
+5 426 M
+( #define SSH_FXP_DATA 103) s
+5 415 M
+( #define SSH_FXP_NAME 104) s
+5 404 M
+( #define SSH_FXP_ATTRS 105) s
+5 393 M
+( #define SSH_FXP_EXTENDED 200) s
+5 382 M
+( #define SSH_FXP_EXTENDED_REPLY 201) s
+5 360 M
+( Additional packet types should only be defined if the protocol) s
+5 349 M
+( version number \(see Section ``Protocol Initialization''\) is) s
+5 338 M
+( incremented, and their use MUST be negotiated using the version) s
+5 327 M
+( number. However, the SSH_FXP_EXTENDED and SSH_FXP_EXTENDED_REPLY) s
+5 316 M
+( packets can be used to implement vendor-specific extensions. See) s
+5 305 M
+( Section ``Vendor-Specific-Extensions'' for more details.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 6]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (6,7) 4
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 7 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(4. Protocol Initialization) s
+5 668 M
+( When the file transfer protocol starts, it first sends a SSH_FXP_INIT) s
+5 657 M
+( \(including its version number\) packet to the server. The server) s
+5 646 M
+( responds with a SSH_FXP_VERSION packet, supplying the lowest of its) s
+5 635 M
+( own and the client's version number. Both parties should from then) s
+5 624 M
+( on adhere to particular version of the protocol.) s
+5 602 M
+( The SSH_FXP_INIT packet \(from client to server\) has the following) s
+5 591 M
+( data:) s
+5 569 M
+( uint32 version) s
+5 558 M
+( <extension data>) s
+5 536 M
+( The SSH_FXP_VERSION packet \(from server to client\) has the following) s
+5 525 M
+( data:) s
+5 503 M
+( uint32 version) s
+5 492 M
+( <extension data>) s
+5 470 M
+( The version number of the protocol specified in this document is 3.) s
+5 459 M
+( The version number should be incremented for each incompatible) s
+5 448 M
+( revision of this protocol.) s
+5 426 M
+( The extension data in the above packets may be empty, or may be a) s
+5 415 M
+( sequence of) s
+5 393 M
+( string extension_name) s
+5 382 M
+( string extension_data) s
+5 360 M
+( pairs \(both strings MUST always be present if one is, but the) s
+5 349 M
+( `extension_data' string may be of zero length\). If present, these) s
+5 338 M
+( strings indicate extensions to the baseline protocol. The) s
+5 327 M
+( `extension_name' field\(s\) identify the name of the extension. The) s
+5 316 M
+( name should be of the form "name@domain", where the domain is the DNS) s
+5 305 M
+( domain name of the organization defining the extension. Additional) s
+5 294 M
+( names that are not of this format may be defined later by the IETF.) s
+5 283 M
+( Implementations MUST silently ignore any extensions whose name they) s
+5 272 M
+( do not recognize.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 7]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 8 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(5. File Attributes) s
+5 668 M
+( A new compound data type is defined for encoding file attributes. It) s
+5 657 M
+( is basically just a combination of elementary types, but is defined) s
+5 646 M
+( once because of the non-trivial description of the fields and to) s
+5 635 M
+( ensure maintainability.) s
+5 613 M
+( The same encoding is used both when returning file attributes from) s
+5 602 M
+( the server and when sending file attributes to the server. When) s
+5 591 M
+( sending it to the server, the flags field specifies which attributes) s
+5 580 M
+( are included, and the server will use default values for the) s
+5 569 M
+( remaining attributes \(or will not modify the values of remaining) s
+5 558 M
+( attributes\). When receiving attributes from the server, the flags) s
+5 547 M
+( specify which attributes are included in the returned data. The) s
+5 536 M
+( server normally returns all attributes it knows about.) s
+5 514 M
+( uint32 flags) s
+5 503 M
+( uint64 size present only if flag SSH_FILEXFER_ATTR_SIZE) s
+5 492 M
+( uint32 uid present only if flag SSH_FILEXFER_ATTR_UIDGID) s
+5 481 M
+( uint32 gid present only if flag SSH_FILEXFER_ATTR_UIDGID) s
+5 470 M
+( uint32 permissions present only if flag SSH_FILEXFER_ATTR_PERMISSIONS) s
+5 459 M
+( uint32 atime present only if flag SSH_FILEXFER_ACMODTIME) s
+5 448 M
+( uint32 mtime present only if flag SSH_FILEXFER_ACMODTIME) s
+5 437 M
+( uint32 extended_count present only if flag SSH_FILEXFER_ATTR_EXTENDED) s
+5 426 M
+( string extended_type) s
+5 415 M
+( string extended_data) s
+5 404 M
+( ... more extended data \(extended_type - extended_data pairs\),) s
+5 393 M
+( so that number of pairs equals extended_count) s
+5 371 M
+( The `flags' specify which of the fields are present. Those fields) s
+5 360 M
+( for which the corresponding flag is not set are not present \(not) s
+5 349 M
+( included in the packet\). New flags can only be added by incrementing) s
+5 338 M
+( the protocol version number \(or by using the extension mechanism) s
+5 327 M
+( described below\).) s
+5 305 M
+( The `size' field specifies the size of the file in bytes.) s
+5 283 M
+( The `uid' and `gid' fields contain numeric Unix-like user and group) s
+5 272 M
+( identifiers, respectively.) s
+5 250 M
+( The `permissions' field contains a bit mask of file permissions as) s
+5 239 M
+( defined by posix [1].) s
+5 217 M
+( The `atime' and `mtime' contain the access and modification times of) s
+5 206 M
+( the files, respectively. They are represented as seconds from Jan 1,) s
+5 195 M
+( 1970 in UTC.) s
+5 173 M
+( The SSH_FILEXFER_ATTR_EXTENDED flag provides a general extension) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 8]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (8,9) 5
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 9 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( mechanism for vendor-specific extensions. If the flag is specified,) s
+5 679 M
+( then the `extended_count' field is present. It specifies the number) s
+5 668 M
+( of extended_type-extended_data pairs that follow. Each of these) s
+5 657 M
+( pairs specifies an extended attribute. For each of the attributes,) s
+5 646 M
+( the extended_type field should be a string of the format) s
+5 635 M
+( "name@domain", where "domain" is a valid, registered domain name and) s
+5 624 M
+( "name" identifies the method. The IETF may later standardize certain) s
+5 613 M
+( names that deviate from this format \(e.g., that do not contain the) s
+5 602 M
+( "@" sign\). The interpretation of `extended_data' depends on the) s
+5 591 M
+( type. Implementations SHOULD ignore extended data fields that they) s
+5 580 M
+( do not understand.) s
+5 558 M
+( Additional fields can be added to the attributes by either defining) s
+5 547 M
+( additional bits to the flags field to indicate their presence, or by) s
+5 536 M
+( defining extended attributes for them. The extended attributes) s
+5 525 M
+( mechanism is recommended for most purposes; additional flags bits) s
+5 514 M
+( should only be defined by an IETF standards action that also) s
+5 503 M
+( increments the protocol version number. The use of such new fields) s
+5 492 M
+( MUST be negotiated by the version number in the protocol exchange.) s
+5 481 M
+( It is a protocol error if a packet with unsupported protocol bits is) s
+5 470 M
+( received.) s
+5 448 M
+( The flags bits are defined to have the following values:) s
+5 426 M
+( #define SSH_FILEXFER_ATTR_SIZE 0x00000001) s
+5 415 M
+( #define SSH_FILEXFER_ATTR_UIDGID 0x00000002) s
+5 404 M
+( #define SSH_FILEXFER_ATTR_PERMISSIONS 0x00000004) s
+5 393 M
+( #define SSH_FILEXFER_ATTR_ACMODTIME 0x00000008) s
+5 382 M
+( #define SSH_FILEXFER_ATTR_EXTENDED 0x80000000) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 9]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 10 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(6. Requests From the Client to the Server) s
+5 668 M
+( Requests from the client to the server represent the various file) s
+5 657 M
+( system operations. Each request begins with an `id' field, which is) s
+5 646 M
+( a 32-bit identifier identifying the request \(selected by the client\).) s
+5 635 M
+( The same identifier will be returned in the response to the request.) s
+5 624 M
+( One possible implementation of it is a monotonically increasing) s
+5 613 M
+( request sequence number \(modulo 2^32\).) s
+5 591 M
+( Many operations in the protocol operate on open files. The) s
+5 580 M
+( SSH_FXP_OPEN request can return a file handle \(which is an opaque) s
+5 569 M
+( variable-length string\) which may be used to access the file later) s
+5 558 M
+( \(e.g. in a read operation\). The client MUST NOT send requests the) s
+5 547 M
+( server with bogus or closed handles. However, the server MUST) s
+5 536 M
+( perform adequate checks on the handle in order to avoid security) s
+5 525 M
+( risks due to fabricated handles.) s
+5 503 M
+( This design allows either stateful and stateless server) s
+5 492 M
+( implementation, as well as an implementation which caches state) s
+5 481 M
+( between requests but may also flush it. The contents of the file) s
+5 470 M
+( handle string are entirely up to the server and its design. The) s
+5 459 M
+( client should not modify or attempt to interpret the file handle) s
+5 448 M
+( strings.) s
+5 426 M
+( The file handle strings MUST NOT be longer than 256 bytes.) s
+5 404 M
+(6.1 Request Synchronization and Reordering) s
+5 382 M
+( The protocol and implementations MUST process requests relating to) s
+5 371 M
+( the same file in the order in which they are received. In other) s
+5 360 M
+( words, if an application submits multiple requests to the server, the) s
+5 349 M
+( results in the responses will be the same as if it had sent the) s
+5 338 M
+( requests one at a time and waited for the response in each case. For) s
+5 327 M
+( example, the server may process non-overlapping read/write requests) s
+5 316 M
+( to the same file in parallel, but overlapping reads and writes cannot) s
+5 305 M
+( be reordered or parallelized. However, there are no ordering) s
+5 294 M
+( restrictions on the server for processing requests from two different) s
+5 283 M
+( file transfer connections. The server may interleave and parallelize) s
+5 272 M
+( them at will.) s
+5 250 M
+( There are no restrictions on the order in which responses to) s
+5 239 M
+( outstanding requests are delivered to the client, except that the) s
+5 228 M
+( server must ensure fairness in the sense that processing of no) s
+5 217 M
+( request will be indefinitely delayed even if the client is sending) s
+5 206 M
+( other requests so that there are multiple outstanding requests all) s
+5 195 M
+( the time.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 10]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (10,11) 6
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 11 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(6.2 File Names) s
+5 668 M
+( This protocol represents file names as strings. File names are) s
+5 657 M
+( assumed to use the slash \('/'\) character as a directory separator.) s
+5 635 M
+( File names starting with a slash are "absolute", and are relative to) s
+5 624 M
+( the root of the file system. Names starting with any other character) s
+5 613 M
+( are relative to the user's default directory \(home directory\). Note) s
+5 602 M
+( that identifying the user is assumed to take place outside of this) s
+5 591 M
+( protocol.) s
+5 569 M
+( Servers SHOULD interpret a path name component ".." as referring to) s
+5 558 M
+( the parent directory, and "." as referring to the current directory.) s
+5 547 M
+( If the server implementation limits access to certain parts of the) s
+5 536 M
+( file system, it must be extra careful in parsing file names when) s
+5 525 M
+( enforcing such restrictions. There have been numerous reported) s
+5 514 M
+( security bugs where a ".." in a path name has allowed access outside) s
+5 503 M
+( the intended area.) s
+5 481 M
+( An empty path name is valid, and it refers to the user's default) s
+5 470 M
+( directory \(usually the user's home directory\).) s
+5 448 M
+( Otherwise, no syntax is defined for file names by this specification.) s
+5 437 M
+( Clients should not make any other assumptions; however, they can) s
+5 426 M
+( splice path name components returned by SSH_FXP_READDIR together) s
+5 415 M
+( using a slash \('/'\) as the separator, and that will work as expected.) s
+5 393 M
+( It is understood that the lack of well-defined semantics for file) s
+5 382 M
+( names may cause interoperability problems between clients and servers) s
+5 371 M
+( using radically different operating systems. However, this approach) s
+5 360 M
+( is known to work acceptably with most systems, and alternative) s
+5 349 M
+( approaches that e.g. treat file names as sequences of structured) s
+5 338 M
+( components are quite complicated.) s
+5 316 M
+(6.3 Opening, Creating, and Closing Files) s
+5 294 M
+( Files are opened and created using the SSH_FXP_OPEN message, whose) s
+5 283 M
+( data part is as follows:) s
+5 261 M
+( uint32 id) s
+5 250 M
+( string filename) s
+5 239 M
+( uint32 pflags) s
+5 228 M
+( ATTRS attrs) s
+5 206 M
+( The `id' field is the request identifier as for all requests.) s
+5 184 M
+( The `filename' field specifies the file name. See Section ``File) s
+5 173 M
+( Names'' for more information.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 11]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 12 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( The `pflags' field is a bitmask. The following bits have been) s
+5 679 M
+( defined.) s
+5 657 M
+( #define SSH_FXF_READ 0x00000001) s
+5 646 M
+( #define SSH_FXF_WRITE 0x00000002) s
+5 635 M
+( #define SSH_FXF_APPEND 0x00000004) s
+5 624 M
+( #define SSH_FXF_CREAT 0x00000008) s
+5 613 M
+( #define SSH_FXF_TRUNC 0x00000010) s
+5 602 M
+( #define SSH_FXF_EXCL 0x00000020) s
+5 580 M
+( These have the following meanings:) s
+5 558 M
+( SSH_FXF_READ) s
+5 547 M
+( Open the file for reading.) s
+5 525 M
+( SSH_FXF_WRITE) s
+5 514 M
+( Open the file for writing. If both this and SSH_FXF_READ are) s
+5 503 M
+( specified, the file is opened for both reading and writing.) s
+5 481 M
+( SSH_FXF_APPEND) s
+5 470 M
+( Force all writes to append data at the end of the file.) s
+5 448 M
+( SSH_FXF_CREAT) s
+5 437 M
+( If this flag is specified, then a new file will be created if one) s
+5 426 M
+( does not already exist \(if O_TRUNC is specified, the new file will) s
+5 415 M
+( be truncated to zero length if it previously exists\).) s
+5 393 M
+( SSH_FXF_TRUNC) s
+5 382 M
+( Forces an existing file with the same name to be truncated to zero) s
+5 371 M
+( length when creating a file by specifying SSH_FXF_CREAT.) s
+5 360 M
+( SSH_FXF_CREAT MUST also be specified if this flag is used.) s
+5 338 M
+( SSH_FXF_EXCL) s
+5 327 M
+( Causes the request to fail if the named file already exists.) s
+5 316 M
+( SSH_FXF_CREAT MUST also be specified if this flag is used.) s
+5 294 M
+( The `attrs' field specifies the initial attributes for the file.) s
+5 283 M
+( Default values will be used for those attributes that are not) s
+5 272 M
+( specified. See Section ``File Attributes'' for more information.) s
+5 250 M
+( Regardless the server operating system, the file will always be) s
+5 239 M
+( opened in "binary" mode \(i.e., no translations between different) s
+5 228 M
+( character sets and newline encodings\).) s
+5 206 M
+( The response to this message will be either SSH_FXP_HANDLE \(if the) s
+5 195 M
+( operation is successful\) or SSH_FXP_STATUS \(if the operation fails\).) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 12]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (12,13) 7
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 13 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( A file is closed by using the SSH_FXP_CLOSE request. Its data field) s
+5 679 M
+( has the following format:) s
+5 657 M
+( uint32 id) s
+5 646 M
+( string handle) s
+5 624 M
+( where `id' is the request identifier, and `handle' is a handle) s
+5 613 M
+( previously returned in the response to SSH_FXP_OPEN or) s
+5 602 M
+( SSH_FXP_OPENDIR. The handle becomes invalid immediately after this) s
+5 591 M
+( request has been sent.) s
+5 569 M
+( The response to this request will be a SSH_FXP_STATUS message. One) s
+5 558 M
+( should note that on some server platforms even a close can fail.) s
+5 547 M
+( This can happen e.g. if the server operating system caches writes,) s
+5 536 M
+( and an error occurs while flushing cached writes during the close.) s
+5 514 M
+(6.4 Reading and Writing) s
+5 492 M
+( Once a file has been opened, it can be read using the SSH_FXP_READ) s
+5 481 M
+( message, which has the following format:) s
+5 459 M
+( uint32 id) s
+5 448 M
+( string handle) s
+5 437 M
+( uint64 offset) s
+5 426 M
+( uint32 len) s
+5 404 M
+( where `id' is the request identifier, `handle' is an open file handle) s
+5 393 M
+( returned by SSH_FXP_OPEN, `offset' is the offset \(in bytes\) relative) s
+5 382 M
+( to the beginning of the file from where to start reading, and `len') s
+5 371 M
+( is the maximum number of bytes to read.) s
+5 349 M
+( In response to this request, the server will read as many bytes as it) s
+5 338 M
+( can from the file \(up to `len'\), and return them in a SSH_FXP_DATA) s
+5 327 M
+( message. If an error occurs or EOF is encountered before reading any) s
+5 316 M
+( data, the server will respond with SSH_FXP_STATUS. For normal disk) s
+5 305 M
+( files, it is guaranteed that this will read the specified number of) s
+5 294 M
+( bytes, or up to end of file. For e.g. device files this may return) s
+5 283 M
+( fewer bytes than requested.) s
+5 261 M
+( Writing to a file is achieved using the SSH_FXP_WRITE message, which) s
+5 250 M
+( has the following format:) s
+5 228 M
+( uint32 id) s
+5 217 M
+( string handle) s
+5 206 M
+( uint64 offset) s
+5 195 M
+( string data) s
+5 173 M
+( where `id' is a request identifier, `handle' is a file handle) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 13]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 14 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( returned by SSH_FXP_OPEN, `offset' is the offset \(in bytes\) from the) s
+5 679 M
+( beginning of the file where to start writing, and `data' is the data) s
+5 668 M
+( to be written.) s
+5 646 M
+( The write will extend the file if writing beyond the end of the file.) s
+5 635 M
+( It is legal to write way beyond the end of the file; the semantics) s
+5 624 M
+( are to write zeroes from the end of the file to the specified offset) s
+5 613 M
+( and then the data. On most operating systems, such writes do not) s
+5 602 M
+( allocate disk space but instead leave "holes" in the file.) s
+5 580 M
+( The server responds to a write request with a SSH_FXP_STATUS message.) s
+5 558 M
+(6.5 Removing and Renaming Files) s
+5 536 M
+( Files can be removed using the SSH_FXP_REMOVE message. It has the) s
+5 525 M
+( following format:) s
+5 503 M
+( uint32 id) s
+5 492 M
+( string filename) s
+5 470 M
+( where `id' is the request identifier and `filename' is the name of) s
+5 459 M
+( the file to be removed. See Section ``File Names'' for more) s
+5 448 M
+( information. This request cannot be used to remove directories.) s
+5 426 M
+( The server will respond to this request with a SSH_FXP_STATUS) s
+5 415 M
+( message.) s
+5 393 M
+( Files \(and directories\) can be renamed using the SSH_FXP_RENAME) s
+5 382 M
+( message. Its data is as follows:) s
+5 360 M
+( uint32 id) s
+5 349 M
+( string oldpath) s
+5 338 M
+( string newpath) s
+5 316 M
+( where `id' is the request identifier, `oldpath' is the name of an) s
+5 305 M
+( existing file or directory, and `newpath' is the new name for the) s
+5 294 M
+( file or directory. It is an error if there already exists a file) s
+5 283 M
+( with the name specified by newpath. The server may also fail rename) s
+5 272 M
+( requests in other situations, for example if `oldpath' and `newpath') s
+5 261 M
+( point to different file systems on the server.) s
+5 239 M
+( The server will respond to this request with a SSH_FXP_STATUS) s
+5 228 M
+( message.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 14]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (14,15) 8
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 15 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(6.6 Creating and Deleting Directories) s
+5 668 M
+( New directories can be created using the SSH_FXP_MKDIR request. It) s
+5 657 M
+( has the following format:) s
+5 635 M
+( uint32 id) s
+5 624 M
+( string path) s
+5 613 M
+( ATTRS attrs) s
+5 591 M
+( where `id' is the request identifier, `path' and `attrs' specifies) s
+5 580 M
+( the modifications to be made to its attributes. See Section ``File) s
+5 569 M
+( Names'' for more information on file names. Attributes are discussed) s
+5 558 M
+( in more detail in Section ``File Attributes''. specifies the) s
+5 547 M
+( directory to be created. An error will be returned if a file or) s
+5 536 M
+( directory with the specified path already exists. The server will) s
+5 525 M
+( respond to this request with a SSH_FXP_STATUS message.) s
+5 503 M
+( Directories can be removed using the SSH_FXP_RMDIR request, which) s
+5 492 M
+( has the following format:) s
+5 470 M
+( uint32 id) s
+5 459 M
+( string path) s
+5 437 M
+( where `id' is the request identifier, and `path' specifies the) s
+5 426 M
+( directory to be removed. See Section ``File Names'' for more) s
+5 415 M
+( information on file names. An error will be returned if no directory) s
+5 404 M
+( with the specified path exists, or if the specified directory is not) s
+5 393 M
+( empty, or if the path specified a file system object other than a) s
+5 382 M
+( directory. The server responds to this request with a SSH_FXP_STATUS) s
+5 371 M
+( message.) s
+5 349 M
+(6.7 Scanning Directories) s
+5 327 M
+( The files in a directory can be listed using the SSH_FXP_OPENDIR and) s
+5 316 M
+( SSH_FXP_READDIR requests. Each SSH_FXP_READDIR request returns one) s
+5 305 M
+( or more file names with full file attributes for each file. The) s
+5 294 M
+( client should call SSH_FXP_READDIR repeatedly until it has found the) s
+5 283 M
+( file it is looking for or until the server responds with a) s
+5 272 M
+( SSH_FXP_STATUS message indicating an error \(normally SSH_FX_EOF if) s
+5 261 M
+( there are no more files in the directory\). The client should then) s
+5 250 M
+( close the handle using the SSH_FXP_CLOSE request.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 15]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 16 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( The SSH_FXP_OPENDIR opens a directory for reading. It has the) s
+5 679 M
+( following format:) s
+5 657 M
+( uint32 id) s
+5 646 M
+( string path) s
+5 624 M
+( where `id' is the request identifier and `path' is the path name of) s
+5 613 M
+( the directory to be listed \(without any trailing slash\). See Section) s
+5 602 M
+( ``File Names'' for more information on file names. This will return) s
+5 591 M
+( an error if the path does not specify a directory or if the directory) s
+5 580 M
+( is not readable. The server will respond to this request with either) s
+5 569 M
+( a SSH_FXP_HANDLE or a SSH_FXP_STATUS message.) s
+5 547 M
+( Once the directory has been successfully opened, files \(and) s
+5 536 M
+( directories\) contained in it can be listed using SSH_FXP_READDIR) s
+5 525 M
+( requests. These are of the format) s
+5 503 M
+( uint32 id) s
+5 492 M
+( string handle) s
+5 470 M
+( where `id' is the request identifier, and `handle' is a handle) s
+5 459 M
+( returned by SSH_FXP_OPENDIR. \(It is a protocol error to attempt to) s
+5 448 M
+( use an ordinary file handle returned by SSH_FXP_OPEN.\)) s
+5 426 M
+( The server responds to this request with either a SSH_FXP_NAME or a) s
+5 415 M
+( SSH_FXP_STATUS message. One or more names may be returned at a time.) s
+5 404 M
+( Full status information is returned for each name in order to speed) s
+5 393 M
+( up typical directory listings.) s
+5 371 M
+( When the client no longer wishes to read more names from the) s
+5 360 M
+( directory, it SHOULD call SSH_FXP_CLOSE for the handle. The handle) s
+5 349 M
+( should be closed regardless of whether an error has occurred or not.) s
+5 327 M
+(6.8 Retrieving File Attributes) s
+5 305 M
+( Very often, file attributes are automatically returned by) s
+5 294 M
+( SSH_FXP_READDIR. However, sometimes there is need to specifically) s
+5 283 M
+( retrieve the attributes for a named file. This can be done using the) s
+5 272 M
+( SSH_FXP_STAT, SSH_FXP_LSTAT and SSH_FXP_FSTAT requests.) s
+5 250 M
+( SSH_FXP_STAT and SSH_FXP_LSTAT only differ in that SSH_FXP_STAT) s
+5 239 M
+( follows symbolic links on the server, whereas SSH_FXP_LSTAT does not) s
+5 228 M
+( follow symbolic links. Both have the same format:) s
+5 206 M
+( uint32 id) s
+5 195 M
+( string path) s
+5 173 M
+( where `id' is the request identifier, and `path' specifies the file) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 16]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (16,17) 9
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 17 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( system object for which status is to be returned. The server) s
+5 679 M
+( responds to this request with either SSH_FXP_ATTRS or SSH_FXP_STATUS.) s
+5 657 M
+( SSH_FXP_FSTAT differs from the others in that it returns status) s
+5 646 M
+( information for an open file \(identified by the file handle\). Its) s
+5 635 M
+( format is as follows:) s
+5 613 M
+( uint32 id) s
+5 602 M
+( string handle) s
+5 580 M
+( where `id' is the request identifier and `handle' is a file handle) s
+5 569 M
+( returned by SSH_FXP_OPEN. The server responds to this request with) s
+5 558 M
+( SSH_FXP_ATTRS or SSH_FXP_STATUS.) s
+5 536 M
+(6.9 Setting File Attributes) s
+5 514 M
+( File attributes may be modified using the SSH_FXP_SETSTAT and) s
+5 503 M
+( SSH_FXP_FSETSTAT requests. These requests are used for operations) s
+5 492 M
+( such as changing the ownership, permissions or access times, as well) s
+5 481 M
+( as for truncating a file.) s
+5 459 M
+( The SSH_FXP_SETSTAT request is of the following format:) s
+5 437 M
+( uint32 id) s
+5 426 M
+( string path) s
+5 415 M
+( ATTRS attrs) s
+5 393 M
+( where `id' is the request identifier, `path' specifies the file) s
+5 382 M
+( system object \(e.g. file or directory\) whose attributes are to be) s
+5 371 M
+( modified, and `attrs' specifies the modifications to be made to its) s
+5 360 M
+( attributes. Attributes are discussed in more detail in Section) s
+5 349 M
+( ``File Attributes''.) s
+5 327 M
+( An error will be returned if the specified file system object does) s
+5 316 M
+( not exist or the user does not have sufficient rights to modify the) s
+5 305 M
+( specified attributes. The server responds to this request with a) s
+5 294 M
+( SSH_FXP_STATUS message.) s
+5 272 M
+( The SSH_FXP_FSETSTAT request modifies the attributes of a file which) s
+5 261 M
+( is already open. It has the following format:) s
+5 239 M
+( uint32 id) s
+5 228 M
+( string handle) s
+5 217 M
+( ATTRS attrs) s
+5 195 M
+( where `id' is the request identifier, `handle' \(MUST be returned by) s
+5 184 M
+( SSH_FXP_OPEN\) identifies the file whose attributes are to be) s
+5 173 M
+( modified, and `attrs' specifies the modifications to be made to its) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 17]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 18 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( attributes. Attributes are discussed in more detail in Section) s
+5 679 M
+( ``File Attributes''. The server will respond to this request with) s
+5 668 M
+( SSH_FXP_STATUS.) s
+5 646 M
+(6.10 Dealing with Symbolic links) s
+5 624 M
+( The SSH_FXP_READLINK request may be used to read the target of a) s
+5 613 M
+( symbolic link. It would have a data part as follows:) s
+5 591 M
+( uint32 id) s
+5 580 M
+( string path) s
+5 558 M
+( where `id' is the request identifier and `path' specifies the path) s
+5 547 M
+( name of the symlink to be read.) s
+5 525 M
+( The server will respond with a SSH_FXP_NAME packet containing only) s
+5 514 M
+( one name and a dummy attributes value. The name in the returned) s
+5 503 M
+( packet contains the target of the link. If an error occurs, the) s
+5 492 M
+( server may respond with SSH_FXP_STATUS.) s
+5 470 M
+( The SSH_FXP_SYMLINK request will create a symbolic link on the) s
+5 459 M
+( server. It is of the following format) s
+5 437 M
+( uint32 id) s
+5 426 M
+( string linkpath) s
+5 415 M
+( string targetpath) s
+5 393 M
+( where `id' is the request identifier, `linkpath' specifies the path) s
+5 382 M
+( name of the symlink to be created and `targetpath' specifies the) s
+5 371 M
+( target of the symlink. The server shall respond with a) s
+5 360 M
+( SSH_FXP_STATUS indicating either success \(SSH_FX_OK\) or an error) s
+5 349 M
+( condition.) s
+5 327 M
+(6.11 Canonicalizing the Server-Side Path Name) s
+5 305 M
+( The SSH_FXP_REALPATH request can be used to have the server) s
+5 294 M
+( canonicalize any given path name to an absolute path. This is useful) s
+5 283 M
+( for converting path names containing ".." components or relative) s
+5 272 M
+( pathnames without a leading slash into absolute paths. The format of) s
+5 261 M
+( the request is as follows:) s
+5 239 M
+( uint32 id) s
+5 228 M
+( string path) s
+5 206 M
+( where `id' is the request identifier and `path' specifies the path) s
+5 195 M
+( name to be canonicalized. The server will respond with a) s
+5 184 M
+( SSH_FXP_NAME packet containing only one name and a dummy attributes) s
+5 173 M
+( value. The name is the returned packet will be in canonical form.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 18]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (18,19) 10
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 19 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( If an error occurs, the server may also respond with SSH_FXP_STATUS.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 19]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 20 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(7. Responses from the Server to the Client) s
+5 668 M
+( The server responds to the client using one of a few response) s
+5 657 M
+( packets. All requests can return a SSH_FXP_STATUS response upon) s
+5 646 M
+( failure. When the operation is successful, any of the responses may) s
+5 635 M
+( be returned \(depending on the operation\). If no data needs to be) s
+5 624 M
+( returned to the client, the SSH_FXP_STATUS response with SSH_FX_OK) s
+5 613 M
+( status is appropriate. Otherwise, the SSH_FXP_HANDLE message is used) s
+5 602 M
+( to return a file handle \(for SSH_FXP_OPEN and SSH_FXP_OPENDIR) s
+5 591 M
+( requests\), SSH_FXP_DATA is used to return data from SSH_FXP_READ,) s
+5 580 M
+( SSH_FXP_NAME is used to return one or more file names from a) s
+5 569 M
+( SSH_FXP_READDIR or SSH_FXP_REALPATH request, and SSH_FXP_ATTRS is) s
+5 558 M
+( used to return file attributes from SSH_FXP_STAT, SSH_FXP_LSTAT, and) s
+5 547 M
+( SSH_FXP_FSTAT requests.) s
+5 525 M
+( Exactly one response will be returned for each request. Each) s
+5 514 M
+( response packet contains a request identifier which can be used to) s
+5 503 M
+( match each response with the corresponding request. Note that it is) s
+5 492 M
+( legal to have several requests outstanding simultaneously, and the) s
+5 481 M
+( server is allowed to send responses to them in a different order from) s
+5 470 M
+( the order in which the requests were sent \(the result of their) s
+5 459 M
+( execution, however, is guaranteed to be as if they had been processed) s
+5 448 M
+( one at a time in the order in which the requests were sent\).) s
+5 426 M
+( Response packets are of the same general format as request packets.) s
+5 415 M
+( Each response packet begins with the request identifier.) s
+5 393 M
+( The format of the data portion of the SSH_FXP_STATUS response is as) s
+5 382 M
+( follows:) s
+5 360 M
+( uint32 id) s
+5 349 M
+( uint32 error/status code) s
+5 338 M
+( string error message \(ISO-10646 UTF-8 [RFC-2279]\)) s
+5 327 M
+( string language tag \(as defined in [RFC-1766]\)) s
+5 305 M
+( where `id' is the request identifier, and `error/status code') s
+5 294 M
+( indicates the result of the requested operation. The value SSH_FX_OK) s
+5 283 M
+( indicates success, and all other values indicate failure.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 20]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (20,21) 11
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 21 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( Currently, the following values are defined \(other values may be) s
+5 679 M
+( defined by future versions of this protocol\):) s
+5 657 M
+( #define SSH_FX_OK 0) s
+5 646 M
+( #define SSH_FX_EOF 1) s
+5 635 M
+( #define SSH_FX_NO_SUCH_FILE 2) s
+5 624 M
+( #define SSH_FX_PERMISSION_DENIED 3) s
+5 613 M
+( #define SSH_FX_FAILURE 4) s
+5 602 M
+( #define SSH_FX_BAD_MESSAGE 5) s
+5 591 M
+( #define SSH_FX_NO_CONNECTION 6) s
+5 580 M
+( #define SSH_FX_CONNECTION_LOST 7) s
+5 569 M
+( #define SSH_FX_OP_UNSUPPORTED 8) s
+5 547 M
+( SSH_FX_OK) s
+5 536 M
+( Indicates successful completion of the operation.) s
+5 514 M
+( SSH_FX_EOF) s
+5 503 M
+( indicates end-of-file condition; for SSH_FX_READ it means that no) s
+5 492 M
+( more data is available in the file, and for SSH_FX_READDIR it) s
+5 481 M
+( indicates that no more files are contained in the directory.) s
+5 459 M
+( SSH_FX_NO_SUCH_FILE) s
+5 448 M
+( is returned when a reference is made to a file which should exist) s
+5 437 M
+( but doesn't.) s
+5 415 M
+( SSH_FX_PERMISSION_DENIED) s
+5 404 M
+( is returned when the authenticated user does not have sufficient) s
+5 393 M
+( permissions to perform the operation.) s
+5 371 M
+( SSH_FX_FAILURE) s
+5 360 M
+( is a generic catch-all error message; it should be returned if an) s
+5 349 M
+( error occurs for which there is no more specific error code) s
+5 338 M
+( defined.) s
+5 316 M
+( SSH_FX_BAD_MESSAGE) s
+5 305 M
+( may be returned if a badly formatted packet or protocol) s
+5 294 M
+( incompatibility is detected.) s
+5 272 M
+( SSH_FX_NO_CONNECTION) s
+5 261 M
+( is a pseudo-error which indicates that the client has no) s
+5 250 M
+( connection to the server \(it can only be generated locally by the) s
+5 239 M
+( client, and MUST NOT be returned by servers\).) s
+5 217 M
+( SSH_FX_CONNECTION_LOST) s
+5 206 M
+( is a pseudo-error which indicates that the connection to the) s
+5 195 M
+( server has been lost \(it can only be generated locally by the) s
+5 184 M
+( client, and MUST NOT be returned by servers\).) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 21]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 22 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( SSH_FX_OP_UNSUPPORTED) s
+5 679 M
+( indicates that an attempt was made to perform an operation which) s
+5 668 M
+( is not supported for the server \(it may be generated locally by) s
+5 657 M
+( the client if e.g. the version number exchange indicates that a) s
+5 646 M
+( required feature is not supported by the server, or it may be) s
+5 635 M
+( returned by the server if the server does not implement an) s
+5 624 M
+( operation\).) s
+5 602 M
+( The SSH_FXP_HANDLE response has the following format:) s
+5 580 M
+( uint32 id) s
+5 569 M
+( string handle) s
+5 547 M
+( where `id' is the request identifier, and `handle' is an arbitrary) s
+5 536 M
+( string that identifies an open file or directory on the server. The) s
+5 525 M
+( handle is opaque to the client; the client MUST NOT attempt to) s
+5 514 M
+( interpret or modify it in any way. The length of the handle string) s
+5 503 M
+( MUST NOT exceed 256 data bytes.) s
+5 481 M
+( The SSH_FXP_DATA response has the following format:) s
+5 459 M
+( uint32 id) s
+5 448 M
+( string data) s
+5 426 M
+( where `id' is the request identifier, and `data' is an arbitrary byte) s
+5 415 M
+( string containing the requested data. The data string may be at most) s
+5 404 M
+( the number of bytes requested in a SSH_FXP_READ request, but may also) s
+5 393 M
+( be shorter if end of file is reached or if the read is from something) s
+5 382 M
+( other than a regular file.) s
+5 360 M
+( The SSH_FXP_NAME response has the following format:) s
+5 338 M
+( uint32 id) s
+5 327 M
+( uint32 count) s
+5 316 M
+( repeats count times:) s
+5 305 M
+( string filename) s
+5 294 M
+( string longname) s
+5 283 M
+( ATTRS attrs) s
+5 261 M
+( where `id' is the request identifier, `count' is the number of names) s
+5 250 M
+( returned in this response, and the remaining fields repeat `count') s
+5 239 M
+( times \(so that all three fields are first included for the first) s
+5 228 M
+( file, then for the second file, etc\). In the repeated part,) s
+5 217 M
+( `filename' is a file name being returned \(for SSH_FXP_READDIR, it) s
+5 206 M
+( will be a relative name within the directory, without any path) s
+5 195 M
+( components; for SSH_FXP_REALPATH it will be an absolute path name\),) s
+5 184 M
+( `longname' is an expanded format for the file name, similar to what) s
+5 173 M
+( is returned by "ls -l" on Unix systems, and `attrs' is the attributes) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 22]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (22,23) 12
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 23 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+( of the file as described in Section ``File Attributes''.) s
+5 668 M
+( The format of the `longname' field is unspecified by this protocol.) s
+5 657 M
+( It MUST be suitable for use in the output of a directory listing) s
+5 646 M
+( command \(in fact, the recommended operation for a directory listing) s
+5 635 M
+( command is to simply display this data\). However, clients SHOULD NOT) s
+5 624 M
+( attempt to parse the longname field for file attributes; they SHOULD) s
+5 613 M
+( use the attrs field instead.) s
+5 591 M
+( The recommended format for the longname field is as follows:) s
+5 569 M
+( -rwxr-xr-x 1 mjos staff 348911 Mar 25 14:29 t-filexfer) s
+5 558 M
+( 1234567890 123 12345678 12345678 12345678 123456789012) s
+5 536 M
+( Here, the first line is sample output, and the second field indicates) s
+5 525 M
+( widths of the various fields. Fields are separated by spaces. The) s
+5 514 M
+( first field lists file permissions for user, group, and others; the) s
+5 503 M
+( second field is link count; the third field is the name of the user) s
+5 492 M
+( who owns the file; the fourth field is the name of the group that) s
+5 481 M
+( owns the file; the fifth field is the size of the file in bytes; the) s
+5 470 M
+( sixth field \(which actually may contain spaces, but is fixed to 12) s
+5 459 M
+( characters\) is the file modification time, and the seventh field is) s
+5 448 M
+( the file name. Each field is specified to be a minimum of certain) s
+5 437 M
+( number of character positions \(indicated by the second line above\),) s
+5 426 M
+( but may also be longer if the data does not fit in the specified) s
+5 415 M
+( length.) s
+5 393 M
+( The SSH_FXP_ATTRS response has the following format:) s
+5 371 M
+( uint32 id) s
+5 360 M
+( ATTRS attrs) s
+5 338 M
+( where `id' is the request identifier, and `attrs' is the returned) s
+5 327 M
+( file attributes as described in Section ``File Attributes''.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 23]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 24 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(8. Vendor-Specific Extensions) s
+5 668 M
+( The SSH_FXP_EXTENDED request provides a generic extension mechanism) s
+5 657 M
+( for adding vendor-specific commands. The request has the following) s
+5 646 M
+( format:) s
+5 624 M
+( uint32 id) s
+5 613 M
+( string extended-request) s
+5 602 M
+( ... any request-specific data ...) s
+5 580 M
+( where `id' is the request identifier, and `extended-request' is a) s
+5 569 M
+( string of the format "name@domain", where domain is an internet) s
+5 558 M
+( domain name of the vendor defining the request. The rest of the) s
+5 547 M
+( request is completely vendor-specific, and servers should only) s
+5 536 M
+( attempt to interpret it if they recognize the `extended-request') s
+5 525 M
+( name.) s
+5 503 M
+( The server may respond to such requests using any of the response) s
+5 492 M
+( packets defined in Section ``Responses from the Server to the) s
+5 481 M
+( Client''. Additionally, the server may also respond with a) s
+5 470 M
+( SSH_FXP_EXTENDED_REPLY packet, as defined below. If the server does) s
+5 459 M
+( not recognize the `extended-request' name, then the server MUST) s
+5 448 M
+( respond with SSH_FXP_STATUS with error/status set to) s
+5 437 M
+( SSH_FX_OP_UNSUPPORTED.) s
+5 415 M
+( The SSH_FXP_EXTENDED_REPLY packet can be used to carry arbitrary) s
+5 404 M
+( extension-specific data from the server to the client. It is of the) s
+5 393 M
+( following format:) s
+5 371 M
+( uint32 id) s
+5 360 M
+( ... any request-specific data ...) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 24]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (24,25) 13
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 25 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(9. Security Considerations) s
+5 668 M
+( This protocol assumes that it is run over a secure channel and that) s
+5 657 M
+( the endpoints of the channel have been authenticated. Thus, this) s
+5 646 M
+( protocol assumes that it is externally protected from network-level) s
+5 635 M
+( attacks.) s
+5 613 M
+( This protocol provides file system access to arbitrary files on the) s
+5 602 M
+( server \(only constrained by the server implementation\). It is the) s
+5 591 M
+( responsibility of the server implementation to enforce any access) s
+5 580 M
+( controls that may be required to limit the access allowed for any) s
+5 569 M
+( particular user \(the user being authenticated externally to this) s
+5 558 M
+( protocol, typically using the SSH User Authentication Protocol [6].) s
+5 536 M
+( Care must be taken in the server implementation to check the validity) s
+5 525 M
+( of received file handle strings. The server should not rely on them) s
+5 514 M
+( directly; it MUST check the validity of each handle before relying on) s
+5 503 M
+( it.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 25]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 26 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(10. Changes from previous protocol versions) s
+5 668 M
+( The SSH File Transfer Protocol has changed over time, before it's) s
+5 657 M
+( standardization. The following is a description of the incompatible) s
+5 646 M
+( changes between different versions.) s
+5 624 M
+(10.1 Changes between versions 3 and 2) s
+5 602 M
+( o The SSH_FXP_READLINK and SSH_FXP_SYMLINK messages were added.) s
+5 580 M
+( o The SSH_FXP_EXTENDED and SSH_FXP_EXTENDED_REPLY messages were) s
+5 569 M
+( added.) s
+5 547 M
+( o The SSH_FXP_STATUS message was changed to include fields `error) s
+5 536 M
+( message' and `language tag'.) s
+5 503 M
+(10.2 Changes between versions 2 and 1) s
+5 481 M
+( o The SSH_FXP_RENAME message was added.) s
+5 448 M
+(10.3 Changes between versions 1 and 0) s
+5 426 M
+( o Implementation changes, no actual protocol changes.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 26]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (26,27) 14
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 27 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(11. Trademark Issues) s
+5 668 M
+( "ssh" is a registered trademark of SSH Communications Security Corp) s
+5 657 M
+( in the United States and/or other countries.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 27]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 28 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(References) s
+5 668 M
+( [1] Dierks, T., Allen, C., Treese, W., Karlton, P., Freier, A. and) s
+5 657 M
+( P. Kocher, "The TLS Protocol Version 1.0", RFC 2246, January) s
+5 646 M
+( 1999.) s
+5 624 M
+( [2] Institute of Electrical and Electronics Engineers, "Information) s
+5 613 M
+( Technology - Portable Operating System Interface \(POSIX\) - Part) s
+5 602 M
+( 1: System Application Program Interface \(API\) [C Language]",) s
+5 591 M
+( IEEE Standard 1003.2, 1996.) s
+5 569 M
+( [3] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S.) s
+5 558 M
+( Lehtinen, "SSH Protocol Architecture", draft-ietf-secsh-) s
+5 547 M
+( architecture-09 \(work in progress\), July 2001.) s
+5 525 M
+( [4] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S.) s
+5 514 M
+( Lehtinen, "SSH Protocol Transport Protocol", draft-ietf-secsh-) s
+5 503 M
+( architecture-09 \(work in progress\), July 2001.) s
+5 481 M
+( [5] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S.) s
+5 470 M
+( Lehtinen, "SSH Connection Protocol", draft-ietf-secsh-connect-11) s
+5 459 M
+( \(work in progress\), July 2001.) s
+5 437 M
+( [6] Rinne, T., Ylonen, T., Kivinen, T., Saarinen, M. and S.) s
+5 426 M
+( Lehtinen, "SSH Authentication Protocol", draft-ietf-secsh-) s
+5 415 M
+( userauth-11 \(work in progress\), July 2001.) s
+5 382 M
+(Authors' Addresses) s
+5 360 M
+( Tatu Ylonen) s
+5 349 M
+( SSH Communications Security Corp) s
+5 338 M
+( Fredrikinkatu 42) s
+5 327 M
+( HELSINKI FIN-00100) s
+5 316 M
+( Finland) s
+5 294 M
+( EMail: [email protected]) s
+5 261 M
+( Sami Lehtinen) s
+5 250 M
+( SSH Communications Security Corp) s
+5 239 M
+( Fredrikinkatu 42) s
+5 228 M
+( HELSINKI FIN-00100) s
+5 217 M
+( Finland) s
+5 195 M
+( EMail: [email protected]) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 28]) s
+_R
+S
+PStoPSsaved restore
+%%Page: (28,29) 15
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 0.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+/showpage{}def/copypage{}def/erasepage{}def
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 29 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+5 723 M
+(Internet-Draft SSH File Transfer Protocol October 2001) s
+5 690 M
+(Full Copyright Statement) s
+5 668 M
+( Copyright \(C\) The Internet Society \(2001\). All Rights Reserved.) s
+5 646 M
+( This document and translations of it may be copied and furnished to) s
+5 635 M
+( others, and derivative works that comment on or otherwise explain it) s
+5 624 M
+( or assist in its implementation may be prepared, copied, published) s
+5 613 M
+( and distributed, in whole or in part, without restriction of any) s
+5 602 M
+( kind, provided that the above copyright notice and this paragraph are) s
+5 591 M
+( included on all such copies and derivative works. However, this) s
+5 580 M
+( document itself may not be modified in any way, such as by removing) s
+5 569 M
+( the copyright notice or references to the Internet Society or other) s
+5 558 M
+( Internet organizations, except as needed for the purpose of) s
+5 547 M
+( developing Internet standards in which case the procedures for) s
+5 536 M
+( copyrights defined in the Internet Standards process must be) s
+5 525 M
+( followed, or as required to translate it into languages other than) s
+5 514 M
+( English.) s
+5 492 M
+( The limited permissions granted above are perpetual and will not be) s
+5 481 M
+( revoked by the Internet Society or its successors or assigns.) s
+5 459 M
+( This document and the information contained herein is provided on an) s
+5 448 M
+( "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING) s
+5 437 M
+( TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING) s
+5 426 M
+( BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION) s
+5 415 M
+( HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF) s
+5 404 M
+( MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.) s
+5 382 M
+(Acknowledgement) s
+5 360 M
+( Funding for the RFC Editor function is currently provided by the) s
+5 349 M
+( Internet Society.) s
+5 129 M
+(Ylonen & Lehtinen Expires April 1, 2002 [Page 29]) s
+_R
+S
+PStoPSsaved restore
+userdict/PStoPSsaved save put
+PStoPSmatrix setmatrix
+595.000000 421.271378 translate
+90 rotate
+0.706651 dup scale
+userdict/PStoPSmatrix matrix currentmatrix put
+userdict/PStoPSclip{0 0 moveto
+ 595.000000 0 rlineto 0 842.000000 rlineto -595.000000 0 rlineto
+ closepath}put initclip
+PStoPSxform concat
+%%BeginPageSetup
+_S
+75 0 translate
+/pagenum 30 def
+/fname () def
+/fdir () def
+/ftail () def
+/user_header_p false def
+%%EndPageSetup
+_R
+S
+PStoPSsaved restore
+%%Trailer
+%%Pages: 30
+%%DocumentNeededResources: font Courier-Bold Courier
+%%EOF