Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:27630 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 63540 invoked by uid 1010); 24 Jan 2007 11:00:37 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 63525 invoked from network); 24 Jan 2007 11:00:37 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 24 Jan 2007 11:00:37 -0000 Received: from [127.0.0.1] ([127.0.0.1:23994]) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ECSTREAM id 94/65-13376-45C37B54 for ; Wed, 24 Jan 2007 06:00:36 -0500 X-Host-Fingerprint: 147.229.212.212 a03-0106a.kn.vutbr.cz Received: from [147.229.212.212] ([147.229.212.212:23780] helo=localhost.localdomain) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id DF/E4-13376-D9737B54 for ; Wed, 24 Jan 2007 05:40:29 -0500 Message-ID: To: internals@lists.php.net Date: Wed, 24 Jan 2007 11:40:24 +0100 User-Agent: Thunderbird 1.5.0.9 (X11/20061222) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------000705010406050104010304" X-Posted-By: 147.229.212.212 Subject: [PATCH] multicast support (ext/sockets) From: daniel@rozsnyo.com (Daniel Rozsnyo) --------------000705010406050104010304 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Hello, Last year I've made a patch for full multicast support and I think it might be useful for others. Can somebody check if the implementation is correct (especially handling of params/args) and then include it to official source code? Patch attached (written for 5.1.4), more information could be found here: http://diary.rozsnyo.com/2006/06/16/php-multicast/ I have no idea however how and if it does compile on Win32 or BSD, maybe some IFDEF will be needed. I use only gentoo linux where it does work. Daniel --------------000705010406050104010304 Content-Type: text/plain; name="php5-ext-sockets-multicast.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="php5-ext-sockets-multicast.patch" LS0tIHBocC01LjEuNC9leHQvc29ja2V0cy9zb2NrZXRzLmMJMjAwNi0wNC0wNyAxNjowNDoz Ni4wMDAwMDAwMDAgKzAyMDAKKysrIHBocC01LjEuNC1tYy9leHQvc29ja2V0cy9zb2NrZXRz LmMJMjAwNi0wNi0xNiAxOToyMjowNS4wMDAwMDAwMDAgKzAyMDAKQEAgLTE2LDYgKzE2LDcg QEAKICAgIHwgICAgICAgICAgU3RlcmxpbmcgSHVnaGVzICA8c3RlcmxpbmdAcGhwLm5ldD4g ICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgfCAgICAgICAgICBKYXNvbiBHcmVlbmUg ICAgIDxqYXNvbkBwaHAubmV0PiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8CiAgICB8 IFdpblNvY2s6IERhbmllbCBCZXVsc2hhdXNlbiA8ZGFuaWVsQHBocDR3aW4uZGU+ICAgICAg ICAgICAgICAgICAgICAgIHwKKyAgIHwgTUNBU1Q6ICAgRGFuaWVsIFJvenNueW8gPGRhbmll bEByb3pzbnlvLmNvbT4gICAgICAgICAgICAgICAgICAgICAgICAgfAogICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rCiAgKi8KIApAQCAtNDgyLDYgKzQ4MywxNCBAQAogCVJFR0lTVEVSX0xPTkdf Q09OU1RBTlQoIlBIUF9OT1JNQUxfUkVBRCIsIFBIUF9OT1JNQUxfUkVBRCwgQ09OU1RfQ1Mg fCBDT05TVF9QRVJTSVNURU5UKTsKIAlSRUdJU1RFUl9MT05HX0NPTlNUQU5UKCJQSFBfQklO QVJZX1JFQUQiLCBQSFBfQklOQVJZX1JFQUQsIENPTlNUX0NTIHwgQ09OU1RfUEVSU0lTVEVO VCk7CiAKKwkvKiBNdWx0aWNhc3QgKi8KKwlSRUdJU1RFUl9MT05HX0NPTlNUQU5UKCJJUFBS T1RPX0lQIiwJCQlJUFBST1RPX0lQLAkJCUNPTlNUX0NTIHwgQ09OU1RfUEVSU0lTVEVOVCk7 CisJUkVHSVNURVJfTE9OR19DT05TVEFOVCgiSVBfTVVMVElDQVNUX0xPT1AiLAkJSVBfTVVM VElDQVNUX0xPT1AsCUNPTlNUX0NTIHwgQ09OU1RfUEVSU0lTVEVOVCk7CisJUkVHSVNURVJf TE9OR19DT05TVEFOVCgiSVBfTVVMVElDQVNUX1RUTCIsCQlJUF9NVUxUSUNBU1RfVFRMLAlD T05TVF9DUyB8IENPTlNUX1BFUlNJU1RFTlQpOworCVJFR0lTVEVSX0xPTkdfQ09OU1RBTlQo IklQX01VTFRJQ0FTVF9JRiIsCQlJUF9NVUxUSUNBU1RfSUYsCUNPTlNUX0NTIHwgQ09OU1Rf UEVSU0lTVEVOVCk7CisJUkVHSVNURVJfTE9OR19DT05TVEFOVCgiSVBfQUREX01FTUJFUlNI SVAiLAkJSVBfQUREX01FTUJFUlNISVAsCUNPTlNUX0NTIHwgQ09OU1RfUEVSU0lTVEVOVCk7 CisJUkVHSVNURVJfTE9OR19DT05TVEFOVCgiSVBfRFJPUF9NRU1CRVJTSElQIiwJSVBfRFJP UF9NRU1CRVJTSElQLAlDT05TVF9DUyB8IENPTlNUX1BFUlNJU1RFTlQpOworCiAjaWZuZGVm IFdJTjMyCiAjIGluY2x1ZGUgInVuaXhfc29ja2V0X2NvbnN0YW50cy5oIgogI2Vsc2UKQEAg LTE1MjQsNiArMTUzMyw5IEBACiAJc29ja2xlbl90CQlvcHRsZW47CiAJcGhwX3NvY2tldAkJ KnBocF9zb2NrOwogCWludAkJCQlvdGhlcl92YWw7CisJdV9jaGFyCQkJb3RoZXJfdmFsX3Vf Y2hhcjsKKwlzdHJ1Y3QgaW5fYWRkcglvdGhlcl92YWxfaW5fYWRkcjsKKwljaGFyKgkJCW90 aGVyX3ZhbF9zdHJpbmc7CiAJbG9uZwkJCQlsZXZlbCwgb3B0bmFtZTsKIAogCWlmICh6ZW5k X3BhcnNlX3BhcmFtZXRlcnMoWkVORF9OVU1fQVJHUygpIFRTUk1MU19DQywgInJsbCIsICZh cmcxLCAmbGV2ZWwsICZvcHRuYW1lKSA9PSBGQUlMVVJFKQpAQCAtMTU3Myw2ICsxNTg1LDMx IEBACiAJCQlhZGRfYXNzb2NfbG9uZyhyZXR1cm5fdmFsdWUsICJ1c2VjIiwgdHYudHZfdXNl Yyk7CiAJCQkKIAkJCWJyZWFrOworCisJCS8qIE11bHRpY2FzdCAqLworCQljYXNlIElQX01V TFRJQ0FTVF9MT09QOgorCQljYXNlIElQX01VTFRJQ0FTVF9UVEw6CisJCQlvcHRsZW4gPSBz aXplb2Yob3RoZXJfdmFsX3VfY2hhcik7CisJCQkKKwkJCWlmIChnZXRzb2Nrb3B0KHBocF9z b2NrLT5ic2Rfc29ja2V0LCBsZXZlbCwgb3B0bmFtZSwgKGNoYXIqKSZvdGhlcl92YWxfdV9j aGFyLCAmb3B0bGVuKSAhPSAwKSB7CisJCQkJUEhQX1NPQ0tFVF9FUlJPUihwaHBfc29jaywg InVuYWJsZSB0byByZXRyaWV2ZSBzb2NrZXQgb3B0aW9uIiwgZXJybm8pOworCQkJCVJFVFVS Tl9GQUxTRTsKKwkJCX0KKworCQkJUkVUVVJOX0xPTkcob3RoZXJfdmFsX3VfY2hhcik7CisK KwkJY2FzZSBJUF9NVUxUSUNBU1RfSUY6CisJCQlvcHRsZW4gPSBzaXplb2Yob3RoZXJfdmFs X2luX2FkZHIpOworCQkJCisJCQlpZiAoZ2V0c29ja29wdChwaHBfc29jay0+YnNkX3NvY2tl dCwgbGV2ZWwsIG9wdG5hbWUsIChjaGFyKikmb3RoZXJfdmFsX2luX2FkZHIsICZvcHRsZW4p ICE9IDApIHsKKwkJCQlQSFBfU09DS0VUX0VSUk9SKHBocF9zb2NrLCAidW5hYmxlIHRvIHJl dHJpZXZlIHNvY2tldCBvcHRpb24iLCBlcnJubyk7CisJCQkJUkVUVVJOX0ZBTFNFOworCQkJ fQorCQkJCisJCQlvdGhlcl92YWxfc3RyaW5nID0gaW5ldF9udG9hKG90aGVyX3ZhbF9pbl9h ZGRyKTsKKworCQkJUkVUVVJOX1NUUklORyhvdGhlcl92YWxfc3RyaW5nLDEpOworCiAJCWRl ZmF1bHQ6CiAJCQlvcHRsZW4gPSBzaXplb2Yob3RoZXJfdmFsKTsKIAkJCQpAQCAtMTU4Nyw3 ICsxNjI0LDcgQEAKIH0KIC8qIH19fSAqLwogCi0vKiB7e3sgcHJvdG8gYm9vbCBzb2NrZXRf c2V0X29wdGlvbihyZXNvdXJjZSBzb2NrZXQsIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGlu dHxhcnJheSBvcHR2YWwpCisvKiB7e3sgcHJvdG8gYm9vbCBzb2NrZXRfc2V0X29wdGlvbihy ZXNvdXJjZSBzb2NrZXQsIGludCBsZXZlbCwgaW50IG9wdG5hbWUsIGludHxzdHJpbmd8YXJy YXkgb3B0dmFsKQogICAgU2V0cyBzb2NrZXQgb3B0aW9ucyBmb3IgdGhlIHNvY2tldCAqLwog UEhQX0ZVTkNUSU9OKHNvY2tldF9zZXRfb3B0aW9uKQogewpAQCAtMTU5NSw3ICsxNjMyLDEw IEBACiAJc3RydWN0IGxpbmdlcglsdjsKIAlzdHJ1Y3QgdGltZXZhbCB0djsKIAlwaHBfc29j a2V0CQkqcGhwX3NvY2s7Ci0JaW50CQkJCW92LCBvcHRsZW4sIHJldHZhbDsgCisJaW50CQkJ CW92LCBvcHRsZW4sIHJldHZhbDsKKwl1X2NoYXIJCQlvdl91X2NoYXI7IAorICAgIHN0cnVj dAkJCWluX2FkZHIgb3ZfaW5fYWRkcjsKKyAgICBzdHJ1Y3QJCQlpcF9tcmVxIG92X2lwX21y ZXE7CiAjaWZkZWYgUEhQX1dJTjMyCiAJaW50CQkJCXRpbWVvdXQ7CiAjZW5kaWYKQEAgLTE2 MDUsMTIgKzE2NDUsMTUgQEAKIAlIYXNoVGFibGUgCQkqb3B0X2h0OwogCXp2YWwgCQkJKips X29ub2ZmLCAqKmxfbGluZ2VyOwogCXp2YWwgCQkJKipzZWMsICoqdXNlYzsKKwl6dmFsIAkJ CSoqbXVsdGlhZGRyLCAqKmludGVyZmFjZTsKIAkKIAkvKiBrZXkgbmFtZSBjb25zdGFudHMg Ki8gICAgIAogCWNoYXIJCQkqbF9vbm9mZl9rZXkgPSAibF9vbm9mZiI7CiAJY2hhcgkJCSps X2xpbmdlcl9rZXkgPSAibF9saW5nZXIiOwogCWNoYXIJCQkqc2VjX2tleSA9ICJzZWMiOwog CWNoYXIJCQkqdXNlY19rZXkgPSAidXNlYyI7CisJY2hhcgkJCSptdWx0aWFkZHJfa2V5ID0g Im11bHRpYWRkciI7CisJY2hhcgkJCSppbnRlcmZhY2Vfa2V5ID0gImludGVyZmFjZSI7CiAK IAlpZiAoemVuZF9wYXJzZV9wYXJhbWV0ZXJzKFpFTkRfTlVNX0FSR1MoKSBUU1JNTFNfQ0Ms ICJybGx6IiwgJmFyZzEsICZsZXZlbCwgJm9wdG5hbWUsICZhcmc0KSA9PSBGQUlMVVJFKQog CQlyZXR1cm47CkBAIC0xNjY5LDYgKzE3MTIsNjcgQEAKIAkJCW9wdF9wdHIgPSAmdGltZW91 dDsKICNlbmRpZgogCQkJYnJlYWs7CisKKwkJLyogTXVsdGljYXN0ICovCisJCWNhc2UgSVBf TVVMVElDQVNUX0xPT1A6CisJCQljb252ZXJ0X3RvX2xvbmdfZXgoJmFyZzQpOworCQkJb3Zf dV9jaGFyID0gWl9MVkFMX1AoYXJnNCkgIT0gMDsKKworCQkJb3B0bGVuID0gc2l6ZW9mKG92 X3VfY2hhcik7CisJCQlvcHRfcHRyID0gJm92X3VfY2hhcjsKKwkJCWJyZWFrOworCQljYXNl IElQX01VTFRJQ0FTVF9UVEw6CisJCQljb252ZXJ0X3RvX2xvbmdfZXgoJmFyZzQpOworCQkJ b3YgPSBaX0xWQUxfUChhcmc0KTsKKwkJCWlmIChvdjwwKSBvdj0wOworCQkJaWYgKG92PjI1 NSkgb3Y9MjU1OworCQkJb3ZfdV9jaGFyID0gb3YgJiAweEZGOworCisJCQlvcHRsZW4gPSBz aXplb2Yob3ZfdV9jaGFyKTsKKwkJCW9wdF9wdHIgPSAmb3ZfdV9jaGFyOworCQkJYnJlYWs7 CisJCWNhc2UgSVBfTVVMVElDQVNUX0lGOgorCQkJY29udmVydF90b19zdHJpbmdfZXgoJmFy ZzQpOworCQkJaWYgKCFpbmV0X2F0b24oWl9TVFJWQUxfUFAoJmFyZzQpLCAmb3ZfaW5fYWRk cikpIHsKKwkJCQlwaHBfZXJyb3JfZG9jcmVmKE5VTEwgVFNSTUxTX0NDLCBFX1dBUk5JTkcs ICJjb3VsZCBub3QgY29udmVydCBvcHR2YWwgdG8gaW5ldF9hZGRyIiApOworCQkJCVJFVFVS Tl9GQUxTRTsKKwkJCX0KKworCQkJb3B0bGVuID0gc2l6ZW9mKG92X2luX2FkZHIpOworCQkJ b3B0X3B0ciA9ICZvdl9pbl9hZGRyOworCQkJYnJlYWs7CisJCWNhc2UgSVBfQUREX01FTUJF UlNISVA6CisJCWNhc2UgSVBfRFJPUF9NRU1CRVJTSElQOgorCQkJY29udmVydF90b19hcnJh eV9leCgmYXJnNCk7CisJCQlvcHRfaHQgPSBIQVNIX09GKGFyZzQpOworCisJCQlpZiAoemVu ZF9oYXNoX2ZpbmQob3B0X2h0LCBtdWx0aWFkZHJfa2V5LCBzdHJsZW4obXVsdGlhZGRyX2tl eSkgKyAxLCAodm9pZCAqKikmbXVsdGlhZGRyKSA9PSBGQUlMVVJFKSB7CisJCQkJcGhwX2Vy cm9yX2RvY3JlZihOVUxMIFRTUk1MU19DQywgRV9XQVJOSU5HLCAibm8ga2V5IFwiJXNcIiBw YXNzZWQgaW4gb3B0dmFsIiwgbXVsdGlhZGRyX2tleSk7CisJCQkJUkVUVVJOX0ZBTFNFOwor CQkJfQorCQkJCisJCQljb252ZXJ0X3RvX3N0cmluZ19leChtdWx0aWFkZHIpOworCQkJCQor CSAgICAJaWYgKCFpbmV0X2F0b24oWl9TVFJWQUxfUFAobXVsdGlhZGRyKSwgJihvdl9pcF9t cmVxLmltcl9tdWx0aWFkZHIpKSkgeworCQkJCXBocF9lcnJvcl9kb2NyZWYoTlVMTCBUU1JN TFNfQ0MsIEVfV0FSTklORywgImNvdWxkIG5vdCBjb252ZXJ0IG9wdHZhbFttdWx0aWFkZHJd IHRvIGluZXRfYWRkciIgKTsKKwkJCQlSRVRVUk5fRkFMU0U7CisJCQl9CisJCQkKKwkJCWlm ICh6ZW5kX2hhc2hfZmluZChvcHRfaHQsIGludGVyZmFjZV9rZXksIHN0cmxlbihpbnRlcmZh Y2Vfa2V5KSArIDEsICh2b2lkICoqKSZpbnRlcmZhY2UpID09IEZBSUxVUkUpIHsKKwkJCQlv dl9pcF9tcmVxLmltcl9pbnRlcmZhY2Uuc19hZGRyID0gaHRvbmwoSU5BRERSX0FOWSk7CisJ CQl9IGVsc2UgeworCQkJCWNvbnZlcnRfdG9fc3RyaW5nX2V4KGludGVyZmFjZSk7CisKKyAg ICAJCQlpZiAoIWluZXRfYXRvbihaX1NUUlZBTF9QUChpbnRlcmZhY2UpLCAmKG92X2lwX21y ZXEuaW1yX2ludGVyZmFjZSkpKSB7CisJCQkJCXBocF9lcnJvcl9kb2NyZWYoTlVMTCBUU1JN TFNfQ0MsIEVfV0FSTklORywgImNvdWxkIG5vdCBjb252ZXJ0IG9wdHZhbFtpbnRlcmZhY2Vd IHRvIGluZXRfYWRkciIgKTsKKwkJCQkJUkVUVVJOX0ZBTFNFOworCQkJCX0KKwkJCX0KKwor CQkJb3B0bGVuID0gc2l6ZW9mKG92X2lwX21yZXEpOworCQkJb3B0X3B0ciA9ICZvdl9pcF9t cmVxOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWNvbnZlcnRfdG9fbG9uZ19leCgm YXJnNCk7CiAJCQlvdiA9IFpfTFZBTF9QKGFyZzQpOwo= --------------000705010406050104010304--