From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1ILWAl-0006Um-0U for qemu-devel@nongnu.org; Wed, 15 Aug 2007 23:37:23 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1ILWAg-0006UN-Gq for qemu-devel@nongnu.org; Wed, 15 Aug 2007 23:37:22 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1ILWAg-0006UK-Bw for qemu-devel@nongnu.org; Wed, 15 Aug 2007 23:37:18 -0400 Received: from out2.smtp.messagingengine.com ([66.111.4.26]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1ILWAg-0005Gr-0R for qemu-devel@nongnu.org; Wed, 15 Aug 2007 23:37:18 -0400 Received: from compute1.internal (compute1.internal [10.202.2.41]) by out1.messagingengine.com (Postfix) with ESMTP id 510DF129A1 for ; Wed, 15 Aug 2007 23:37:16 -0400 (EDT) Message-Id: <1187235436.20746.1205640329@webmail.messagingengine.com> From: jbrown105@speedymail.org Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1187235436207460"; charset="iso-8859-1" MIME-Version: 1.0 Date: Wed, 15 Aug 2007 23:37:16 -0400 Subject: [Qemu-devel] [PATCH] Make ping work for -net user Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org This is a multi-part message in MIME format. --_----------=_1187235436207460 Content-Disposition: inline Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="iso-8859-1" MIME-Version: 1.0 X-Mailer: MessagingEngine.com Webmail Interface Date: Thu, 16 Aug 2007 03:37:16 UT This is a very simple proof-of-concept patch that fakes ICMP well enough for ping to work. Basically, when the slirp code gets a ping request for an ip outside of the slirp network, it runs /bin/ping and reports the results back to the guest accordingly. Right now it uses vfork() and then exec() to run ping on the host, as for some reason fork() causes qemu to freeze. I'm still trying to figure out why. As a consequence I don't close ping's output or error stream so you see output from it on the terminal window that qemu is running on. Tested on a linux host and a linux guest. -- jbrown105@speedymail.org -- http://www.fastmail.fm - Does exactly what it says on the tin --_----------=_1187235436207460 Content-Disposition: attachment; filename="slirp-ping.patch" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="slirp-ping.patch" MIME-Version: 1.0 X-Mailer: MessagingEngine.com Webmail Interface Date: Thu, 16 Aug 2007 03:37:16 UT ZGlmZiAtdXIgcWVtdS9zbGlycC9pcF9pY21wLmMgcWVtdS5uZXcvc2xpcnAv aXBfaWNtcC5jCi0tLSBxZW11L3NsaXJwL2lwX2ljbXAuYwkyMDA2LTA1LTAz IDE1OjU4OjE3LjAwMDAwMDAwMCAtMDQwMAorKysgcWVtdS9zbGlycC9pcF9p Y21wLmMJMjAwNy0wOC0xNSAyMzoyMzo1MC4wMDAwMDAwMDAgLTA0MDAKQEAg LTc3LDcgKzc3LDkgQEAKICAgcmVnaXN0ZXIgc3RydWN0IGljbXAgKmljcDsK ICAgcmVnaXN0ZXIgc3RydWN0IGlwICppcD1tdG9kKG0sIHN0cnVjdCBpcCAq KTsKICAgaW50IGljbXBsZW49aXAtPmlwX2xlbjsKLSAgLyogaW50IGNvZGU7 ICovCisgIGludCBjcGlkOworICBjaGFyICogc3RyaW5nX2RzdF9pcDsKKyAg aW50IGNvZGU7CiAJCiAgIERFQlVHX0NBTEwoImljbXBfaW5wdXQiKTsKICAg REVCVUdfQVJHKCJtID0gJWx4IiwgKGxvbmcgKW0pOwpAQCAtMTE3LDQ4ICsx MTksNDMgQEAKICAgICBpZiAoaXAtPmlwX2RzdC5zX2FkZHIgPT0gYWxpYXNf YWRkci5zX2FkZHIpIHsKICAgICAgIGljbXBfcmVmbGVjdChtKTsKICAgICB9 IGVsc2UgewotICAgICAgc3RydWN0IHNvY2tldCAqc287Ci0gICAgICBzdHJ1 Y3Qgc29ja2FkZHJfaW4gYWRkcjsKLSAgICAgIGlmICgoc28gPSBzb2NyZWF0 ZSgpKSA9PSBOVUxMKSBnb3RvIGZyZWVpdDsKLSAgICAgIGlmKHVkcF9hdHRh Y2goc28pID09IC0xKSB7Ci0JREVCVUdfTUlTQygoZGZkLCJpY21wX2lucHV0 IHVkcF9hdHRhY2ggZXJybm8gPSAlZC0lc1xuIiwgCi0JCSAgICBlcnJubyxz dHJlcnJvcihlcnJubykpKTsKLQlzb2ZyZWUoc28pOwotCW1fZnJlZShtKTsK LQlnb3RvIGVuZF9lcnJvcjsKKyAgICAgIHN0cmluZ19kc3RfaXAgPSBpbmV0 X250b2EoaXAtPmlwX2RzdCk7CisgICAgICBjcGlkID0gdmZvcmsoKTsKKyAg ICAgIGlmIChjcGlkID09IDApCisgICAgICB7CisgICAgICAJZXhlY2woIi9i aW4vcGluZyIsICJwaW5nIiwgIi1jIiwgIjEiLCBzdHJpbmdfZHN0X2lwLCBO VUxMKTsKKwlfZXhpdCgyKTsKICAgICAgIH0KLSAgICAgIHNvLT5zb19tID0g bTsKLSAgICAgIHNvLT5zb19mYWRkciA9IGlwLT5pcF9kc3Q7Ci0gICAgICBz by0+c29fZnBvcnQgPSBodG9ucyg3KTsKLSAgICAgIHNvLT5zb19sYWRkciA9 IGlwLT5pcF9zcmM7Ci0gICAgICBzby0+c29fbHBvcnQgPSBodG9ucyg5KTsK LSAgICAgIHNvLT5zb19pcHRvcyA9IGlwLT5pcF90b3M7Ci0gICAgICBzby0+ c29fdHlwZSA9IElQUFJPVE9fSUNNUDsKLSAgICAgIHNvLT5zb19zdGF0ZSA9 IFNTX0lTRkNPTk5FQ1RFRDsKLSAgICAgIAotICAgICAgLyogU2VuZCB0aGUg cGFja2V0ICovCi0gICAgICBhZGRyLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwot ICAgICAgaWYgKChzby0+c29fZmFkZHIuc19hZGRyICYgaHRvbmwoMHhmZmZm ZmYwMCkpID09IHNwZWNpYWxfYWRkci5zX2FkZHIpIHsKLQkvKiBJdCdzIGFu IGFsaWFzICovCi0Jc3dpdGNoKG50b2hsKHNvLT5zb19mYWRkci5zX2FkZHIp ICYgMHhmZikgewotCWNhc2UgQ1RMX0ROUzoKLQkgIGFkZHIuc2luX2FkZHIg PSBkbnNfYWRkcjsKLQkgIGJyZWFrOwotCWNhc2UgQ1RMX0FMSUFTOgotCWRl ZmF1bHQ6Ci0JICBhZGRyLnNpbl9hZGRyID0gbG9vcGJhY2tfYWRkcjsKLQkg IGJyZWFrOwotCX0KLSAgICAgIH0gZWxzZSB7Ci0JYWRkci5zaW5fYWRkciA9 IHNvLT5zb19mYWRkcjsKKyAgICAgIGVsc2UgaWYgKGNwaWQgPT0gLTEpCisg ICAgICB7CisJaWNtcF9lcnJvcihtLCBJQ01QX1VOUkVBQ0gsSUNNUF9VTlJF QUNIX05FVCwgMCwiZXhlYyBmYWlsZWQiKTsgCiAgICAgICB9Ci0gICAgICBh ZGRyLnNpbl9wb3J0ID0gc28tPnNvX2Zwb3J0OwotICAgICAgaWYoc2VuZHRv KHNvLT5zLCBpY21wX3BpbmdfbXNnLCBzdHJsZW4oaWNtcF9waW5nX21zZyks IDAsCi0JCShzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkciwgc2l6ZW9mKGFkZHIp KSA9PSAtMSkgewotCURFQlVHX01JU0MoKGRmZCwiaWNtcF9pbnB1dCB1ZHAg c2VuZHRvIHR4IGVycm5vID0gJWQtJXNcbiIsCi0JCSAgICBlcnJubyxzdHJl cnJvcihlcnJubykpKTsKLQlpY21wX2Vycm9yKG0sIElDTVBfVU5SRUFDSCxJ Q01QX1VOUkVBQ0hfTkVULCAwLHN0cmVycm9yKGVycm5vKSk7IAotCXVkcF9k ZXRhY2goc28pOworICAgICAgZWxzZQorICAgICAgeworCWludCB4OworCXdo aWxlICgoeCA9IHdhaXRwaWQoY3BpZCwgJmNvZGUsIFdOT0hBTkcpKSAhPSBj cGlkKQorCXsKKwkJaWYgKHggIT0gMCkKKwkJeworCQlicmVhazsKKwkJfQor CX0KKworCWludCBpMSwgaTI7CisJaTEgPSBXSUZFWElURUQoY29kZSk7CisJ aWYgKGkxKQorCSAgaTIgPSBXRVhJVFNUQVRVUyhjb2RlKTsKKwllbHNlCisJ ICBpMiA9IDE7CisKKwlpZiAoaTEgJiYgKGkyID09IDApKQorCXsKKyAgICAg ICAgICAgaWNtcF9yZWZsZWN0KG0pOworCX0KKwllbHNlCisJeworCSAgIGlj bXBfZXJyb3IobSwgSUNNUF9VTlJFQUNILElDTVBfVU5SRUFDSF9ORVQsIDAs InBpbmcgZmFpbGVkIik7IAorCX0KICAgICAgIH0KICAgICB9IC8qIGlmIGlw LT5pcF9kc3Quc19hZGRyID09IGFsaWFzX2FkZHIuc19hZGRyICovCiAgICAg YnJlYWs7CmRpZmYgLXVyIHFlbXUvc2xpcnAvaXBfaWNtcC5oIHFlbXUubmV3 L3NsaXJwL2lwX2ljbXAuaAotLS0gcWVtdS9zbGlycC9pcF9pY21wLmgJMjAw NS0wNi0wNSAxMzoxMTo0Mi4wMDAwMDAwMDAgLTA0MDAKKysrIHFlbXUubmV3 L3NsaXJwL2lwX2ljbXAuaAkyMDA3LTA4LTE1IDIxOjQyOjE3LjAwMDAwMDAw MCAtMDQwMApAQCAtMTYxLDQgKzE2MSw3IEBACiB2b2lkIGljbXBfZXJyb3Ig X1AoKHN0cnVjdCBtYnVmICosIHVfY2hhciwgdV9jaGFyLCBpbnQsIGNoYXIg KikpOwogdm9pZCBpY21wX3JlZmxlY3QgX1AoKHN0cnVjdCBtYnVmICopKTsK IAorI2luY2x1ZGUgPHN5cy93YWl0Lmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+ CisKICNlbmRpZgo= --_----------=_1187235436207460--