[squeak-dev] The Trunk: Network-cmm.161.mcz
Bert Freudenberg
bert at freudenbergs.de
Thu Jul 2 20:20:02 UTC 2015
> On 01.07.2015, at 14:55, Chris Muller <asqueaker at gmail.com> wrote:
>
> Do MC overrides actually somehow "reload" the code that was overridden
> when you unload the overriding code?
Yes. It goes through the method history in the changes/sources file and loads the overridden definition.
> If so, that is kind of amazing.
Indeed. Although scary, too. Overrides are still evil, and should not be used unless really necessary.
> My purpose of doing this is to avoid having dirty packages in the release.
The overridden package shouldn’t actually be dirty. Did you do “changes” on it?
- Bert -
>
> I can no longer even use the old HTTPSocket code in my apps. Is it
> still usable? WebClient works a lot better. Is there a solution that
> addresses all concerns?
>
> On Wed, Jul 1, 2015 at 4:10 PM, Levente Uzonyi <leves at elte.hu> wrote:
>> Hi Chris,
>>
>> This change is a bit against modularity, because the HTTP protocol will no
>> longer work once you unload the WebClient package.
>>
>> Levente
>>
>>
>> On Wed, 1 Jul 2015, commits at source.squeak.org wrote:
>>
>>> Chris Muller uploaded a new version of Network to project The Trunk:
>>> http://source.squeak.org/trunk/Network-cmm.161.mcz
>>>
>>> ==================== Summary ====================
>>>
>>> Name: Network-cmm.161
>>> Author: cmm
>>> Time: 1 July 2015, 3:26:03.655 pm
>>> UUID: af917aa1-ce76-460b-ba1a-7fb49700f44a
>>> Ancestors: Network-ul.160
>>>
>>> Remove the methods overridden by WebClient, since that has now been folded
>>> into base Squeak.
>>>
>>> =============== Diff against Network-ul.160 ===============
>>>
>>> Item was removed:
>>> - ----- Method: HTTPSocket class>>httpGet:args:user:passwd: (in category
>>> 'get the page') -----
>>> - httpGet: url args: args user: user passwd: passwd
>>> - "Upload the contents of the stream to a file on the server.
>>> -
>>> - WARNING: This method will send a basic auth header proactively.
>>> - This is necessary to avoid breaking MC and SqueakSource since SS
>>> does not
>>> - return a 401 when accessing a private (global no access)
>>> repository."
>>> -
>>> - | authorization result |
>>> - authorization := (user , ':' , passwd) base64Encoded.
>>> - result := self
>>> - httpGet: url args: args accept: '*/*'
>>> - request: 'Authorization: Basic ' , authorization , String
>>> crlf.
>>> - ^result
>>> - !
>>>
>>> Item was removed:
>>> - ----- Method: HTTPSocket class>>httpGetDocument:args:accept:request: (in
>>> category 'get the page') -----
>>> - httpGetDocument: url args: args accept: mimeType request: requestString
>>> - "Return the exact contents of a web object. Asks for the given
>>> MIME type. If mimeType is nil, use 'text/html'. An extra requestString may
>>> be submitted and must end with crlf. The parsed header is saved. Use a
>>> proxy server if one has been registered. tk 7/23/97 17:12"
>>> -
>>> - "Note: To fetch raw data, you can use the MIME type
>>> 'application/octet-stream'."
>>> -
>>> - | urlString |
>>> - "Normalize the url"
>>> - urlString := (Url absoluteFromText: url) asString.
>>> -
>>> - args ifNotNil: [
>>> - urlString := urlString, (self argString: args)
>>> - ].
>>> -
>>> - ^(self httpRequestHandler)
>>> - httpRequest: 'GET' url: urlString headers:(
>>> - (mimeType ifNil:[''] ifNotNil:['Accept: ',
>>> mimeType, String crlf]),
>>> - 'Accept: text/html', String crlf,
>>> - HTTPProxyCredentials,
>>> - HTTPBlabEmail,
>>> - requestString
>>> - ) content: nil response: nil.!
>>>
>>> Item was removed:
>>> - ----- Method: HTTPSocket class>>httpPost:args:user:passwd: (in category
>>> 'get the page') -----
>>> - httpPost: url args: args user: user passwd: passwd
>>> -
>>> - "WARNING: This method will send a basic auth header proactively.
>>> - This is necessary to avoid breaking MC and SqueakSource since SS
>>> does not
>>> - return a 401 when accessing a private (global no access)
>>> repository."
>>> -
>>> - | authorization |
>>> - authorization := (user , ':' , passwd) base64Encoded.
>>> - ^self
>>> - httpPostDocument: url args: args accept: '*/*'
>>> - request: 'Authorization: Basic ' , authorization , String
>>> crlf
>>> - !
>>>
>>> Item was removed:
>>> - ----- Method: HTTPSocket class>>httpPost:content:type:accept:request:
>>> (in category 'get the page') -----
>>> - httpPost: url content: postData type: contentType accept: mimeType
>>> request: requestString
>>> - "like httpGET, except it does a POST instead of a GET. POST
>>> allows data to be uploaded"
>>> -
>>> - | urlString |
>>> - "Normalize the url"
>>> - urlString := (Url absoluteFromText: url) asString.
>>> -
>>> - ^(self httpRequestHandler)
>>> - httpRequest: 'POST' url: urlString headers:(
>>> - 'Accept: ', mimeType, String crlf,
>>> - 'Accept: text/html', String crlf,
>>> - 'Content-Type: ', contentType, String crlf,
>>> - 'Content-Length: ', (postData ifNil:['']) size,
>>> String crlf,
>>> - HTTPProxyCredentials,
>>> - HTTPBlabEmail,
>>> - requestString "extra user request. Authorization"
>>> - ) content: (postData ifNil:['']) response: nil!
>>>
>>> Item was removed:
>>> - ----- Method: HTTPSocket class>>httpPostDocument:args:accept:request:
>>> (in category 'get the page') -----
>>> - httpPostDocument: url args: args accept: mimeType request:
>>> requestString
>>> - "like httpGET, except it does a POST instead of a GET. POST
>>> allows data to be uploaded"
>>> -
>>> - | argString |
>>> - args ifNotNil: [
>>> - argString := self argString: args.
>>> - argString first = $? ifTrue: [argString := argString
>>> allButFirst].
>>> - ].
>>> -
>>> - ^self httpPost: url
>>> - content: argString
>>> - type: 'application/x-www-form-urlencoded'
>>> - accept: mimeType
>>> - request: requestString!
>>>
>>> Item was removed:
>>> - ----- Method: HTTPSocket class>>httpPostMultipart:args:accept:request:
>>> (in category 'get the page') -----
>>> - httpPostMultipart: url args: argsDict accept: mimeType request:
>>> requestString
>>> - " do multipart/form-data encoding rather than x-www-urlencoded "
>>> -
>>> - | mimeBorder argsStream |
>>> - mimeBorder := '----squeak-georgia-tech-', Time
>>> millisecondClockValue printString, '-csl-cool-stuff-----'.
>>> - "encode the arguments dictionary"
>>> - argsStream := WriteStream on: String new.
>>> - argsDict associationsDo: [:assoc |
>>> - assoc value do: [ :value | | fieldValue |
>>> - "print the boundary"
>>> - argsStream nextPutAll: '--', mimeBorder, String crlf.
>>> - " check if it's a non-text field "
>>> - argsStream nextPutAll: 'Content-disposition:
>>> multipart/form-data; name="', assoc key, '"'.
>>> - (value isKindOf: MIMEDocument)
>>> - ifFalse: [fieldValue := value]
>>> - ifTrue: [argsStream nextPutAll: ' filename="',
>>> value url pathForFile, '"', String crlf, 'Content-Type: ', value
>>> contentType.
>>> - fieldValue := (value content
>>> - ifNil: [(FileStream fileNamed:
>>> value url pathForFile) contentsOfEntireFile]
>>> - ifNotNil: [value content])
>>> asString].
>>> - " Transcript show: 'field=', key, '; value=', fieldValue; cr. "
>>> - argsStream nextPutAll: String crlf, String crlf,
>>> fieldValue, String crlf.
>>> - ]].
>>> - argsStream nextPutAll: '--', mimeBorder, '--'.
>>> -
>>> - ^self httpPost: url
>>> - content: argsStream contents
>>> - type: 'multipart/form-data; boundary=',
>>> mimeBorder
>>> - accept: mimeType
>>> - request: requestString
>>> - !
>>>
>>> Item was removed:
>>> - ----- Method: HTTPSocket
>>> class>>httpPostToSuperSwiki:args:accept:request: (in category 'get the
>>> page') -----
>>> - httpPostToSuperSwiki: url args: argsDict accept: mimeType request:
>>> requestString
>>> -
>>> - | mimeBorder argString |
>>> - mimeBorder := '---------SuperSwiki',Time millisecondClockValue
>>> printString,'-----'.
>>> - argString := String streamContents: [ :strm |
>>> - strm nextPutAll: mimeBorder, String crlf.
>>> - argsDict associationsDo: [:assoc |
>>> - assoc value do: [ :value |
>>> - strm
>>> - nextPutAll: 'Content-disposition:
>>> form-data; name="', assoc key, '"';
>>> - nextPutAll: String crlf;
>>> - nextPutAll: String crlf;
>>> - nextPutAll: value;
>>> - nextPutAll: String crlf;
>>> - nextPutAll: String crlf;
>>> - nextPutAll: mimeBorder;
>>> - nextPutAll: String crlf.
>>> - ]
>>> - ].
>>> - ].
>>> -
>>> - ^self httpPost: url
>>> - content: argString
>>> - type: 'multipart/form-data; boundary=',
>>> mimeBorder
>>> - accept: mimeType
>>> - request: requestString
>>> - !
>>>
>>> Item was removed:
>>> - ----- Method: HTTPSocket class>>httpPut:to:user:passwd: (in category
>>> 'get the page') -----
>>> - httpPut: contents to: url user: user passwd: passwd
>>> - "Upload the contents of the stream to a file on the server
>>> -
>>> - WARNING: This method will send a basic auth header proactively.
>>> - This is necessary to avoid breaking MC and SqueakSource since SS
>>> does not
>>> - return a 401 when accessing a private (global no access)
>>> repository."
>>> -
>>> - | urlString resp header |
>>> -
>>> - "Normalize the url"
>>> - urlString := (Url absoluteFromText: url) asString.
>>> -
>>> - resp := (self httpRequestHandler)
>>> - httpRequest: 'PUT' url: urlString headers:(
>>> - 'Authorization: Basic ', (user, ':', passwd)
>>> base64Encoded, String crlf,
>>> - 'Accept: */*', String crlf,
>>> - 'Content-Type: application/octet-stream', String
>>> crlf,
>>> - 'Content-Length: ', (contents ifNil:['']) size,
>>> String crlf,
>>> - HTTPProxyCredentials,
>>> - HTTPBlabEmail
>>> - ) content: contents response:[:rr| header := rr].
>>> - ^resp isString ifTrue:[header, resp] ifFalse:[header, resp
>>> content]!
>>>
>>>
>>>
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4115 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20150702/b28248b0/smime.bin
More information about the Squeak-dev
mailing list
|