Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 8 Aug 2002 08:50:04 -0700 (PDT)
From:      Maxim Sobolev <sobomax@FreeBSD.org>
To:        gnome@FreeBSD.org
Subject:   Re: ports/41209: www/mozilla browser serializes DNS lookups
Message-ID:  <200208081550.g78Fo4jR058907@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/41209; it has been noted by GNATS.

From: Maxim Sobolev <sobomax@FreeBSD.org>
To: freebsd-gnats-submit@FreeBSD.org,
	Andriy Gapon <agapon@excite.com>
Cc:  
Subject: Re: ports/41209: www/mozilla browser serializes DNS lookups
Date: Thu, 08 Aug 2002 18:43:16 +0300

 This is a multi-part message in MIME format.
 --------------AC92BCB950830E8C721B2BF3
 Content-Type: text/plain; charset=koi8-r
 Content-Transfer-Encoding: 7bit
 
 Andriy Gapon wrote:
 > 
 > Maxim,
 > 
 > thank you for your time.
 > 
 > On Thu, 8 Aug 2002, Maxim Sobolev wrote:
 > 
 > > ones present in other unices out there (Solaris, HP-UX, BSDI), or to
 > > modify gethostbyXXX(3) functions to return pointers to a per thread
 > > storage.
 > 
 > I assumed this appoach was used in libc_r, my bad, should have checked
 > before making a suggestion.
 > 
 > > Another approach is to modify Mozilla to use getaddrinfo(3) function,
 > > which is available on BSDs and is thread-safe by design, instead of
 > > gethostbyname(3).
 > 
 > I'll look into that.
 
 Attached please find my attempt to emulate gethostbyname_r(3) using
 getaddrinfo(3). I'm currently thinking about putting it into FreeBSD
 libc, but haven't finally decided yet and it will take some time
 anyway, so that feel free to add it as a patch for Mozilla.
 
 Sincerely,
 
 Maxim
 --------------AC92BCB950830E8C721B2BF3
 Content-Type: application/x-unknown-content-type-UltraEdit.c;
  name="gethostbyname_r.c"
 Content-Transfer-Encoding: base64
 Content-Disposition: inline;
  filename="gethostbyname_r.c"
 
 LyoKICogQ29weXJpZ2h0IChjKSAyMDAyIE1heGltIFNvYm9sZXYgPHNvYm9tYXhARnJlZUJT
 RC5vcmc+CiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAqCiAqIFJlZGlzdHJpYnV0aW9uIGFu
 ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogKiBt
 b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
 IGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
 ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICogICAgbm90aWNlLCB0
 aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgog
 KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
 IGFib3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
 IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAqICAgIGRvY3VtZW50YXRp
 b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
 b24uCiAqCiAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIEFVVEhPUiBBTkQg
 Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
 QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCiAqIElNUExJ
 RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
 VElDVUxBUiBQVVJQT1NFCiAqIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
 VEhFIEFVVEhPUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFCiAqIEZPUiBBTlkgRElSRUNU
 LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
 RU5USUFMCiAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
 VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTCiAqIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
 RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKQogKiBIT1dF
 VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
 Q09OVFJBQ1QsIFNUUklDVAogKiBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
 SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCiAqIE9VVCBPRiBUSEUg
 VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
 VFkgT0YKICogU1VDSCBEQU1BR0UuCiAqLwoKI2luY2x1ZGUgPHN5cy90eXBlcy5oPgojaW5j
 bHVkZSA8c3lzL3NvY2tldC5oPgojaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgojaW5jbHVkZSA8
 ZXJybm8uaD4KI2luY2x1ZGUgPG5ldGRiLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1
 ZGUgPHN0cmluZy5oPgoKaW50CmdldGhvc3RieW5hbWVfcihjb25zdCBjaGFyICpuYW1lLCBz
 dHJ1Y3QgaG9zdGVudCAqcmVzdWx0LCBjaGFyICpidWZmZXIsCiAgICBpbnQgYnVmZmxlbiwg
 aW50ICpoZXJyKQp7CglzdHJ1Y3QgYWRkcmluZm8gaGludHMsICphaXAsICpyZXM7CglzdHJ1
 Y3Qgc29ja2FkZHJfaW4gKmFkZHI7CglpbnQgaSwgbmFkZHJzLCBydmFsOwoJY2hhciAqY3A7
 CgojZGVmaW5lIENIRUNLTUVNKGNwLCBsZW4pIHtpZiAoKGNoYXIgKiljcCArIGxlbiA+IGJ1
 ZmZlciArIGJ1ZmZsZW4pIGdvdG8gbm9tZW07fQoKCW1lbXNldCgmaGludHMsIDAsIHNpemVv
 ZihoaW50cykpOwoJaGludHMuYWlfZmxhZ3MgPSBBSV9DQU5PTk5BTUU7CgloaW50cy5haV9m
 YW1pbHkgPSBQRl9VTlNQRUM7CgloaW50cy5haV9wcm90b2NvbCA9IElQUFJPVE9fSVA7Cgkv
 KgoJICogU2V0IHRvIFNPQ0tfU1RSRUFNLCBzbyB0aGF0IHdlIGRvbid0IGdldCBkdXBsaWNh
 dGUgZW50cmllcwoJICogZmlyc3Qgb25lIGZvciBUQ1AgYW5kIHNlY29uZCBvbmUgZm9yIFVE
 UC4KCSAqLwoJaGludHMuYWlfc29ja3R5cGUgPSBTT0NLX1NUUkVBTTsKCXJ2YWwgPSBnZXRh
 ZGRyaW5mbyhuYW1lLCBOVUxMLCAmaGludHMsICZyZXMpOwoJaWYgKHJ2YWwgIT0gMCkgewoJ
 CXN3aXRjaCAocnZhbCkgewoJCWNhc2UgRUFJX0FHQUlOOgoJCQkqaGVyciA9IFRSWV9BR0FJ
 TjsKCQkJYnJlYWs7CgoJCWNhc2UgRUFJX05PREFUQToKCQkJKmhlcnIgPSBOT19EQVRBOwoJ
 CQlicmVhazsKCgkJY2FzZSBFQUlfTk9OQU1FOgoJCQkqaGVyciA9IEhPU1RfTk9UX0ZPVU5E
 OwoJCQlicmVhazsKCgkJZGVmYXVsdDoKCQkJKmhlcnIgPSBOT19SRUNPVkVSWTsKCQkJYnJl
 YWs7CgkJfQoJCXJldHVybiAoTkVUREJfSU5URVJOQUwpOwoJfQoKCWlmIChyZXMtPmFpX2Nh
 bm9ubmFtZSAhPSBOVUxMKSB7CgkJQ0hFQ0tNRU0oYnVmZmVyLCBzdHJsZW4ocmVzLT5haV9j
 YW5vbm5hbWUpICsgMSk7CgkJc3RyY3B5KGJ1ZmZlciwgcmVzLT5haV9jYW5vbm5hbWUpOwoJ
 fSBlbHNlIHsKCQlDSEVDS01FTShidWZmZXIsIHN0cmxlbihuYW1lKSArIDEpOwoJCXN0cmNw
 eShidWZmZXIsIG5hbWUpOwoJfQoKCWNwID0gYnVmZmVyICsgc3RybGVuKGJ1ZmZlcikgKyAx
 OwoJcmVzdWx0LT5oX25hbWUgPSBidWZmZXI7CgoJLyoKCSAqIFhYWDoga2x1ZGdlIHRvIGZp
 bGwgYXQgbGVhc3Qgc29tZXRoaW5nIGludG8gaF9hbGlhc2VzLgoJICogVW5saWtlIGdldGhv
 c3RieW5hbWUoMyksIGdldGFkZHJpbmZvKDMpIGRvZXNuJ3QgcmV0dXJuCgkgKiBob3N0J3Mg
 YWxpYXNlcy4KCSAqLwoJaWYgKHN0cmNtcChyZXN1bHQtPmhfbmFtZSwgbmFtZSkgIT0gMCkg
 ewoJCUNIRUNLTUVNKGNwLCBzdHJsZW4obmFtZSkgKyAxICsgc2l6ZW9mKGNoYXIgKikgKiAy
 KTsKCQlzdHJjcHkoY3AsIG5hbWUpOwoJCShjaGFyICopcmVzdWx0LT5oX2FsaWFzZXMgPSBj
 cCArIHN0cmxlbihjcCkgKyAxOwoJCXJlc3VsdC0+aF9hbGlhc2VzWzBdID0gY3A7CgkJcmVz
 dWx0LT5oX2FsaWFzZXNbMV0gPSBOVUxMOwoJCShjaGFyICoqKWNwID0gcmVzdWx0LT5oX2Fs
 aWFzZXMgKyAyOwoJfSBlbHNlIHsKCQlDSEVDS01FTShjcCwgc2l6ZW9mKGNoYXIgKikgKiAx
 KTsKCQkoY2hhciAqKXJlc3VsdC0+aF9hbGlhc2VzID0gY3A7CgkJcmVzdWx0LT5oX2FsaWFz
 ZXNbMF0gPSBOVUxMOwoJCShjaGFyICoqKWNwID0gcmVzdWx0LT5oX2FsaWFzZXMgKyAxOwoJ
 fQoKCXJlc3VsdC0+aF9hZGRydHlwZSA9IEFGX0lORVQ7CglyZXN1bHQtPmhfbGVuZ3RoID0g
 c2l6ZW9mKHVpbnQzMl90KTsKCW5hZGRycyA9IDA7Cglmb3IgKGFpcCA9IHJlczsgYWlwICE9
 IE5VTEw7IGFpcCA9IGFpcC0+YWlfbmV4dCkgewoJCSh2b2lkICopYWRkciA9IGFpcC0+YWlf
 YWRkcjsKCQlDSEVDS01FTShjcCwgcmVzdWx0LT5oX2xlbmd0aCk7CgkJKih1aW50MzJfdCAq
 KWNwID0gYWRkci0+c2luX2FkZHIuc19hZGRyOwoJCWNwICs9IHJlc3VsdC0+aF9sZW5ndGg7
 CgkJbmFkZHJzKys7Cgl9CglDSEVDS01FTShjcCwgc2l6ZW9mKGNoYXIgKikgKiAobmFkZHJz
 ICsgMSkpOwoJcmVzdWx0LT5oX2FkZHJfbGlzdCA9IChjaGFyICoqKWNwOwoJY3AgLT0gbmFk
 ZHJzICogcmVzdWx0LT5oX2xlbmd0aDsKCWZvciAoaSA9IDA7IGkgPCBuYWRkcnM7IGkrKykK
 CQlyZXN1bHQtPmhfYWRkcl9saXN0W2ldID0gY3AgKyAoaSAqIHJlc3VsdC0+aF9sZW5ndGgp
 OwoJcmVzdWx0LT5oX2FkZHJfbGlzdFtuYWRkcnNdID0gTlVMTDsKCglmcmVlYWRkcmluZm8o
 cmVzKTsKCSpoZXJyID0gTkVUREJfU1VDQ0VTUzsKCXJldHVybiAoTkVUREJfU1VDQ0VTUyk7
 Cgpub21lbToKCWZyZWVhZGRyaW5mbyhyZXMpOwoJKmhlcnIgPSBORVREQl9JTlRFUk5BTDsK
 CXJldHVybiAoRVJBTkdFKTsKfQovKgppbnQgbWFpbigpCnsKCXN0cnVjdCBob3N0ZW50IGVu
 dCwgKmVudDE7CgljaGFyIGJ1ZlsyMDQ4XTsKCWludCBoZXJyOwoKCWVudDEgPSBnZXRob3N0
 YnluYW1lKCJ3d3cueWFob28uY29tIik7CglnZXRob3N0YnluYW1lX3IoInd3dy55YWhvby5j
 b20iLCAmZW50LCBidWYsIHNpemVvZihidWYpLCAmaGVycik7Cn0qLwo=
 --------------AC92BCB950830E8C721B2BF3--
 

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-gnome" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200208081550.g78Fo4jR058907>