'From Squeak 1.22 of September 21, 1997 on 1 October 1997 at 9:29:06 am'! WebRequest subclass: #FullWebServer instanceVariableNames: 'url ' classVariableNames: '' poolDictionaries: '' category: 'Web Server'! !FullWebServer methodsFor: 'as yet unclassified' stamp: 'MJG 9/5/97 15:14'! getReply "Generate the reply." | serverDirectory fileName rec msg | serverDirectory := 'Guz 7600:WebSTAR 2.0:'. peerName = 'proxy.tuwien.ac.at' ifTrue: [^ self noProxy]. message = #('robots' 'txt' ) ifTrue: [^ self robots]. fileName := serverDirectory , (url allButFirst copyReplaceAll: '/' with: ':'). Transcript show: ('Now serving:' , fileName printString, ' from ', peerName) ; cr. (StandardFileStream isAFileNamed: fileName) ifTrue: [self reply: (FileStream fileNamed: fileName) contentsOfEntireFile] ifFalse: [rec _ self objectFromString: (message at: 1). msg _ ((message at: 2) , ':') asSymbol. 'HTML Reply' = ((rec class whichClassIncludesSelector: msg) whichCategoryIncludesSelector: msg) ifFalse: [self error: 'Illegal message.']. rec perform: msg with: self. self reply: '
Erzeugt vom Squeak WebServer am '; reply: Date today asString; reply: ' um '; reply: Time now asString; reply: '.
'].! ! !FullWebServer methodsFor: 'as yet unclassified' stamp: 'mjg 10/1/97 09:28'! initializeFrom: aSocket "Initialize me from aSocket." | request header idx | log _ WriteStream on: ''. connection _ aSocket. request _ self readRequest. header _ request first substrings. url _ header at: 2. ((idx _ header indexOf: 'Authorization:') ~= 0 and: [(header at: idx + 1) = 'Basic']) ifTrue: [userId _ header at: idx + 2]. peerName _ connection peerName. log nextPutAll: Time totalSeconds asString; tab; nextPutAll: peerName asString; tab; nextPutAll: userId asString; tab; nextPutAll: (header at: 2); tab; nextPutAll: request last asString; tab. message := (self unEscape: (header at: 2)) findTokens: '/.'. request last notNil ifTrue: [ fields := self decodeFields: request last ] ! !