From owner-freebsd-hackers Mon Jun 29 19:40:49 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id TAA08188 for freebsd-hackers-outgoing; Mon, 29 Jun 1998 19:40:49 -0700 (PDT) (envelope-from owner-freebsd-hackers@FreeBSD.ORG) Received: from shivam.eecs.umich.edu (shivam.eecs.umich.edu [141.213.10.226]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id TAA08173 for ; Mon, 29 Jun 1998 19:40:36 -0700 (PDT) (envelope-from ymc@eecs.umich.edu) Received: from localhost by shivam.eecs.umich.edu (8.9.0/8.9.0) with SMTP id WAA01467 for ; Mon, 29 Jun 1998 22:40:20 -0400 (EDT) Date: Mon, 29 Jun 1998 22:40:20 -0400 (EDT) From: Yee Man Chan Reply-To: Yee Man Chan To: freebsd-hackers@FreeBSD.ORG Subject: client-server problem Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-851401618-899173587=:1437" Content-ID: Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. Send mail to mime@docserver.cac.washington.edu for more info. ---559023410-851401618-899173587=:1437 Content-Type: TEXT/PLAIN; CHARSET=US-ASCII Content-ID: Hi, I wrote a simple client-server program (attached). What it does is: 1. Client sends a string of n (n is a parameter) bytes 2. Server receives the string and sends the bytes it received back to the client. Usage: Run server -n 100 in one shell and client -n 100 in the other shell. Then the n mentioned above will be set to 100. The program assumes both client and server are on the same machine, so nothing should go to the network. Here is how the program performs under FreeBSD 3.0-CURRENT with different n: 1-100 Very fast 101-207 Very Slow (This range is the strangest I've ever seen) 208-1024 Very fast (just like 1-100) >1024 strange errors like unknown host or connection timedout Any clue? Yee Man ---559023410-851401618-899173587=:1437 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="client.c" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RkbGliLmg+DQojaW5j bHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8bmV0ZGIuaD4NCiNpbmNsdWRl IDxlcnJuby5oPg0KI2luY2x1ZGUgPHN5cy90aW1lLmg+DQojaW5jbHVkZSA8 c3lzL3R5cGVzLmg+DQojaW5jbHVkZSA8c3lzL3NvY2tldC5oPg0KI2luY2x1 ZGUgPG5ldGluZXQvaW4uaD4NCiNpbmNsdWRlIDxuZXRpbmV0L3RjcC5oPg0K DQoNCiNpZm5kZWYgQlVGU0laDQojZGVmaW5lIEJVRlNJWiA0MDk2DQojZW5k aWYNCg0KI2lmbmRlZiBUUlVFIA0KI2RlZmluZSBUUlVFIDENCiNlbmRpZg0K DQojaWZuZGVmIEZBTFNFDQojZGVmaW5lIEZBTFNFIDANCiNlbmRpZg0KDQoj ZGVmaW5lIFNNQUxMQlVGIDgwDQoNCiNkZWZpbmUgREVGQVVMVF9QT1JUIDQ4 OTgNCiNkZWZpbmUgTkFTQV9GT1JNQVQgIiVbXiBdIC0gLSBcWyVbXl1dXSBc IiVzICVzICVbXlwiXVwiICVkICVkIiANCiNkZWZpbmUgTkFTQV9USU1FX0ZP Uk1BVCAiJVteL10vJVteL10vJVteOl06JVteOl06JVteOl06JVteIF0gJXMi IA0KY29uc3QgY2hhciAqIFR3ZWx2ZU1vbnRoW10gPSANCnsNCiAgIkphbiIs DQogICJGZWIiLA0KICAiTWFyIiwNCiAgIkFwciIsDQogICJNYXkiLA0KICAi SnVuIiwNCiAgIkp1bCIsDQogICJBdWciLA0KICAiU2VwIiwNCiAgIk9jdCIs DQogICJOb3YiLA0KICAiRGVjIg0KfTsNCg0KaW50IGVycm5vOw0KDQovKiBM b2NhbCBmdW5jdGlvbnMgKi8NCnN0YXRpYyBpbnQgY2xpZW50X2NvbW1fY29u bmVjdChpbnQgc29jaywgY2hhciAqZGVzdF9ob3N0LCB1X3Nob3J0IGRlc3Rf cG9ydCk7DQpzdGF0aWMgaW50IHR2U3ViVXNlYyhzdHJ1Y3QgdGltZXZhbCB0 MSwgc3RydWN0IHRpbWV2YWwgdDIpOw0Kc3RhdGljIHZvaWQgdXNhZ2UoY29u c3QgY2hhciAqcHJvZ25hbWUpOw0KDQpzdGF0aWMgdm9pZA0KdXNhZ2UoY29u c3QgY2hhciAqcHJvZ25hbWUpDQp7DQogIGZwcmludGYoc3RkZXJyLA0KCSAg IlVzYWdlOiAlcyBbLWVkXSBbLWkgSXRlcl0gWy1oIGhvc3RdIFstcCBwb3J0 XVxuIg0KCSAgIk9wdGlvbnM6XG4iDQoJICAiICAgIC1lICAgICAgICAgcHJp bnQgcmVwbGllcyBmcm9tIHNlcnZlciAoZGVmYXVsdD1vbikuXG4iDQoJICAi ICAgIC1kICAgICAgICAgc2V0c29ja29wdCguLi4sIFRDUF9OT0RFTEFZICwu Li4pLlxuIg0KCSAgIiAgICAtaSBJdGVyICAgICMgb2YgcmVxdWVzdHMgaXNz dWVkIChkZWZhdWx0ID0gMTAwMCkuXG4iDQoJICAiICAgIC1oIGhvc3QgICAg UmV0cmlldmUgVVJMIGZyb20gY2FjaGUgb24gaG9zdG5hbWUuICBEZWZhdWx0 IGlzIGxvY2FsaG9zdC5cbiINCgkgICIgICAgLXAgcG9ydCAgICBQb3J0IG51 bWJlciBvZiBjYWNoZS4gIERlZmF1bHQgaXMgJWQuXG4iLA0KCSAgcHJvZ25h bWUsIERFRkFVTFRfUE9SVCk7DQogIGV4aXQoMSk7DQp9DQoNCmludA0KbWFp bihpbnQgYXJnYywgY2hhciAqYXJndltdKQ0Kew0KICBjaGFyIGhvc3RuYW1l W1NNQUxMQlVGXSA9ICJsb2NhbGhvc3QiOyANCiAgY2hhciBidWZbQlVGU0la XTsNCiAgY2hhciBtc2dbMl09ImEiOyAvKiBtc2dbMF0gPSBjUmVxdWVzdHMg JSAyNTYgaXMgdGhlIGNoYXJhY3RlciB0byBiZSBzZW50ICovDQogIGNoYXIg YzsNCg0KICBpbnQgcG9ydCA9IERFRkFVTFRfUE9SVDsNCiAgaW50IGl0ciA9 IDEwMDA7IC8qICMgb2YgcmVxdWVzdHMgcGVyIHRyaWFsICovDQogIGludCBj b25uOyAvKiBjbGllbnQgc29ja2V0IGlkICovDQogIGludCB0b19zdGRvdXQg PSAxOyAvKiBwcmludCByZXBsaWVzIGZyb20gc2VydmVyICovDQogIGludCBp LGo7DQogIGludCBjUmVxdWVzdHM7DQogIGludCB1c1RvdGFsUmVzcG9uc2VU aW1lOw0KICBzdHJ1Y3QgdGltZXZhbCB0dlJlcXVlc3RUaW1lLCB0dlJlcGx5 VGltZTsNCiAgaW50IGJ5dGVzV3JpdHRlbjsNCiAgaW50IGNjaDsNCiAgaW50 IHRjcF9ub2RlbGF5ID0gMDsgLyogZW5hYmxlIE5hZ2xlJ3MgYWxnb3JpdGht IGJ5IGRlZmF1bHQgKi8NCiAgaW50IGJ5dGVzVG9TZW5kOw0KDQogIC8qIHBh cnNlIGFsbCBvcHRpb25zICovDQogIHdoaWxlICgoYyA9IGdldG9wdChhcmdj LCBhcmd2LCAiZGk6aDpuOnAiKSkgIT0gLTEpDQogICAgc3dpdGNoIChjKSB7 DQogICAgY2FzZSAnaCc6CQkvKiBob3N0OmFyZyAqLw0KICAgICAgaWYgKG9w dGFyZyAhPSBOVUxMKQ0KCXN0cmNweShob3N0bmFtZSwgb3B0YXJnKTsNCiAg ICAgIGJyZWFrOw0KICAgIGNhc2UgJ2QnOiAgICAvKiBkaXNhYmxlIE5hZ2xl J3MgYWxnb3JpdGhtICovDQogICAgICB0Y3Bfbm9kZWxheSA9IDE7DQogICAg ICBicmVhazsNCiAgICBjYXNlICduJzoNCiAgICAgIGJ5dGVzVG9TZW5kID0g YXRvaShvcHRhcmcpOw0KICAgICAgYnJlYWs7DQogICAgY2FzZSAncCc6CQkv KiBjYWNoZSBwb3J0IG51bWJlciAqLw0KICAgICAgc3NjYW5mKG9wdGFyZywg IiVkIiwgJnBvcnQpOw0KICAgICAgaWYgKHBvcnQgPCAxKQ0KCXBvcnQgPSBE RUZBVUxUX1BPUlQ7CS8qIGRlZmF1bHQgKi8NCiAgICAgIGJyZWFrOw0KICAg IGNhc2UgJ2knOgkJLyogIyBvZiByZXF1ZXN0cyB0byBiZSBzZW50ICovDQog ICAgICBpdHIgPSBhdG9pKG9wdGFyZyk7DQogICAgICBicmVhazsNCiAgICBj YXNlICc/JzoJCS8qIHVzYWdlICovDQogICAgZGVmYXVsdDoNCiAgICAgIHVz YWdlKGFyZ3ZbMF0pOw0KICAgICAgYnJlYWs7DQogICAgfQ0KDQogIAljUmVx dWVzdHMgPSAwOw0KDQoNCg0KCXVzVG90YWxSZXNwb25zZVRpbWUgPSAwOw0K CWZvciAoaSA9IDA7IGkgPCBpdHI7IGkrKykgew0KDQoJICAvKiBDb25uZWN0 IHRvIHRoZSBjYWNoZSBzZXJ2ZXIgKi8NCgkgIGlmICgoY29ubiA9IHNvY2tl dChQRl9JTkVULCBTT0NLX1NUUkVBTSwgMCkpIDwgMCkgew0KCSAgICBwZXJy b3IoImNsaWVudDogc29ja2V0Iik7DQoJICAgIGV4aXQoMSk7DQoJICB9DQoN CgkgIGlmICh0Y3Bfbm9kZWxheSkgDQoJICAgIGlmIChzZXRzb2Nrb3B0KGNv bm4sIElQUFJPVE9fVENQLCBUQ1BfTk9ERUxBWSwgKGNoYXIgKikgJnRjcF9u b2RlbGF5LCBzaXplb2YodGNwX25vZGVsYXkpKSA8IDApIHsNCgkgICAgICBw ZXJyb3IobXNnKTsNCgkgICAgICBleGl0KDEpOw0KCSAgICB9DQogIA0KCSAg d2hpbGUgKGNsaWVudF9jb21tX2Nvbm5lY3QoY29ubiwgaG9zdG5hbWUsIHBv cnQpIDwgMCkgew0KCSAgICBwZXJyb3IoImNvbm5lY3QgZXJyb3IiKTsNCgkg ICAgaWYgKGVycm5vID09IDApIHsNCgkgICAgICBmcHJpbnRmKHN0ZGVyciwg ImNsaWVudDogRVJST1I6IENhbm5vdCBjb25uZWN0IHRvICVzOiVkOiBIb3N0 IHVua25vd24uXG4iLCBob3N0bmFtZSwgcG9ydCk7DQoJICAgICAgLyoNCgkg ICAgfSBlbHNlIHsNCgkgICAgICBzcHJpbnRmKG1zZywgImNsaWVudDogRVJS T1I6IENhbm5vdCBjb25uZWN0IHRvICVzOiVkIiwNCgkJICAgICAgaG9zdG5h bWUsIHBvcnQpOw0KCSAgICAgIHBlcnJvcihtc2cpOw0KCSAgICAgICovCSAg ICANCg0KCSAgICBleGl0KDEpOw0KCSAgICB9DQoJICAgIGVsc2UgaWYgKGVy cm5vID09IEVDT05OUkVGVVNFRCkgew0KCSAgICAgIGNsb3NlKGNvbm4pOw0K CSAgICAgIGlmICgoY29ubiA9IHNvY2tldChQRl9JTkVULCBTT0NLX1NUUkVB TSwgMCkpIDwgMCkgew0KCQlwZXJyb3IoImNsaWVudDogc29ja2V0Iik7DQoJ CWV4aXQoMSk7DQoJICAgICAgfQ0KCSAgICB9DQoJICB9DQoJICANCiAgaWYg KGJ5dGVzVG9TZW5kIDw9IDApIHsNCiAgICBwcmludGYoIlBsZWFzZSBzdXBw bHkgdGhlICMgb2YgYnl0ZXMgeW91IGV4cGVjdCB0byBzZW5kIHBlciB0cmlh bC5cbiIpOw0KICAgIGV4aXQoMSk7DQogIH0NCiAgZm9yIChqID0gMDsgaiA8 IGJ5dGVzVG9TZW5kOyArK2opDQogICAgbXNnW2pdID0gJzAnICsgKGogJSAx MCk7DQoNCiAgbXNnW2J5dGVzVG9TZW5kXSA9IE5VTEw7DQoNCgkgIC8qIHNl dCBSZXF1ZXN0VGltZXIpICovDQoJICBnZXR0aW1lb2ZkYXkoJnR2UmVxdWVz dFRpbWUsIE5VTEwpOw0KCSAgDQoJICAvKiBTZW5kIHRoZSBIVFRQIHJlcXVl c3QgdG8gdGhlIGNhY2hlIHNlcnZlciAqLw0KCSAgYnl0ZXNXcml0dGVuID0g d3JpdGUoY29ubiwgbXNnLCBzdHJsZW4obXNnKSk7DQoJICAgIA0KCSAgaWYg KGJ5dGVzV3JpdHRlbiA8IDApIHsNCgkgICAgcGVycm9yKCJjbGllbnQ6IEVS Uk9SOiB3cml0ZSIpOw0KCSAgICBleGl0KDEpOw0KCSAgfSBlbHNlIGlmIChi eXRlc1dyaXR0ZW4gIT0gc3RybGVuKG1zZykpIHsNCgkgICAgZnByaW50Zihz dGRlcnIsICJjbGllbnQ6IEVSUk9SOiBDYW5ub3Qgc2VuZCByZXF1ZXN0Pzog JXNcbiIsIG1zZyk7DQoJICAgIGV4aXQoMSk7DQoJICB9DQoNCgkgIC8qIFJl YWQgdGhlIGRhdGEgKi8NCgkgIHdoaWxlICgoY2NoID0gcmVhZChjb25uLCBi dWYsIHN0cmxlbihtc2cpKSkgPiAwKTsNCgkgIHByaW50ZigiJXMgZnJvbSBz ZXJ2ZXJcbiIsIGJ1Zik7DQoJICANCgkgIC8qIHNldCBSZXBseVRpbWVyKSAq Lw0KCSAgZ2V0dGltZW9mZGF5KCZ0dlJlcGx5VGltZSwgTlVMTCk7DQoJICBj UmVxdWVzdHMgPSB0dlN1YlVzZWModHZSZXF1ZXN0VGltZSwgdHZSZXBseVRp bWUpOw0KCSAgdXNUb3RhbFJlc3BvbnNlVGltZSArPSBjUmVxdWVzdHM7DQoJ ICANCgkgICh2b2lkKSBjbG9zZShjb25uKTsJCS8qIGRvbmUgd2l0aCBzb2Nr ZXQgKi8NCgkNCglmcHJpbnRmKHN0ZGVyciwgIiU4LjVmXG4iLCAoZmxvYXQp IGNSZXF1ZXN0cy8xZTYpOw0KCX0NCg0KICBmcHJpbnRmKHN0ZGVyciwgIkF2 ZXJhZ2UgUmVzcG9uc2UgVGltZSAlOC41ZiBzZWNvbmRzXG4iLCANCgkgIChm bG9hdCkgdXNUb3RhbFJlc3BvbnNlVGltZS8oaXRyICogMWU2KSk7DQogIGlm ICh0Y3Bfbm9kZWxheSkNCiAgICAgIHByaW50ZigiRGlzYWJsZWQgTmFnbGUn cyBhbGdvcml0aG0uXG4iKTsNCiAgZXhpdCgwKTsNCiAgcmV0dXJuIDA7DQp9 DQoNCg0KLyoNCiAgLSBjbGllbnRfY29tbV9jb25uZWN0DQogIC0NCiAgKiBD b25uZWN0cyB0byB0aGUgY2FjaGUgc2VydmVyDQogICoNCiAgKiBzb2NrICAg c29ja2V0IG9wZW5lZCBieSBjbGllbnQNCiAgKiBkZXN0X2hvc3QgICBob3N0 bmFtZSBvZiB0aGUgZGVzdGluYXRpb24gY2FjaGUgc2VydmVyIA0KICAqIGRl c3RfcG9ydCAgIHBvcnQgb2YgdGhlIGRlc3RfaG9zdCB0byB3aGljaCB0byBj b25uZWN0IA0KICAqDQogICogcmV0dXJucyAtMSBpZiBhbiBlcnJvciBvY2N1 cnMgMCBvdGhlcndpc2UNCiAgKiBjb25uZWN0IHJldHVybnMgMCBvbiBubyBl cnJvciANCiAgKi8gDQpzdGF0aWMgaW50DQpjbGllbnRfY29tbV9jb25uZWN0 KGludCBzb2NrLCBjaGFyICpkZXN0X2hvc3QsIHVfc2hvcnQgZGVzdF9wb3J0 KQ0Kew0KICBjb25zdCBzdHJ1Y3QgaG9zdGVudCAqaHA7DQogIHN0YXRpYyBz dHJ1Y3Qgc29ja2FkZHJfaW4gdG9fYWRkcjsNCiAgDQogIC8qIFNldCB1cCB0 aGUgZGVzdGluYXRpb24gc29ja2V0IGFkZHJlc3MgZm9yIG1lc3NhZ2UgdG8g c2VuZCB0by4gKi8NCiAgdG9fYWRkci5zaW5fZmFtaWx5ID0gQUZfSU5FVDsN CiAgDQogIGlmICgoaHAgPSBnZXRob3N0YnluYW1lKGRlc3RfaG9zdCkpID09 IDApIHsNCiAgICByZXR1cm4gKC0xKTsNCiAgfQ0KICBtZW1jcHkoJnRvX2Fk ZHIuc2luX2FkZHIsIGhwLT5oX2FkZHIsIGhwLT5oX2xlbmd0aCk7DQogIHRv X2FkZHIuc2luX3BvcnQgPSBodG9ucyhkZXN0X3BvcnQpOw0KICByZXR1cm4g Y29ubmVjdChzb2NrLCAoc3RydWN0IHNvY2thZGRyICopICZ0b19hZGRyLCBz aXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSk7DQp9DQoNCnN0YXRpYyBpbnQN CnR2U3ViVXNlYyhzdHJ1Y3QgdGltZXZhbCB0MSwgc3RydWN0IHRpbWV2YWwg dDIpDQp7DQogICAgcmV0dXJuICh0Mi50dl9zZWMgLSB0MS50dl9zZWMpICog MTAwMDAwMCArDQogICAgICAgICh0Mi50dl91c2VjIC0gdDEudHZfdXNlYyk7 DQp9DQo= ---559023410-851401618-899173587=:1437 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="server.c" Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8ZXJybm8uaD4NCiNpbmNs dWRlIDxzdHJpbmcuaD4NCiNpbmNsdWRlIDxzaWduYWwuaD4NCiNpbmNsdWRl IDxmY250bC5oPg0KI2luY2x1ZGUgPGN0eXBlLmg+DQojaW5jbHVkZSA8dW5p c3RkLmg+DQojaW5jbHVkZSA8bGltaXRzLmg+DQojaW5jbHVkZSA8c3lzL3R5 cGVzLmg+DQojaW5jbHVkZSA8c3lzL3N0YXQuaD4NCiNpbmNsdWRlIDxzeXMv c29ja2V0Lmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pbi5oPg0KI2luY2x1ZGUg PGFycGEvaW5ldC5oPg0KI2luY2x1ZGUgPG5ldGRiLmg+DQoNCiNkZWZpbmUg VElOX1BPUlQgNDg5OA0KDQppbnQgdGluZF9hcmdzKGludCBhcmdjLCBjaGFy ICphcmd2W10sIGludCAqcG9ydCwgaW50ICogYnl0ZXMpOw0KY2hhciAqIHNl bGVjdEFORHJlYWQoaW50IHRkLCBjaGFyICpidWYsIGludCBibGVuKTsNCnZv aWQgdGluZF91c2FnZShjaGFyICpwcm9nbmFtZSk7DQoNCmludCBlcnJubzsN Cg0KaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiBhcmd2W10pIHsNCg0KICBp bnQgcmQsIGNvbm4sIHJldXNlLCBsZW4sIHBvcnQ7DQogIHN0cnVjdCBzb2Nr YWRkcl9pbiBzZWxmLCBjbGllbnQ7DQogIGNoYXIgYnVmWzIwNDhdOw0KICBp bnQgZmxhZ3M7DQogIGludCBieXRlc1RvUmVjZWl2ZSA9IDA7DQoNCiAgLyog b3B0aW9uIHBhcnNpbmcgKi8NCiAgaWYgKHRpbmRfYXJncyhhcmdjLCBhcmd2 LCAmcG9ydCwgJmJ5dGVzVG9SZWNlaXZlKSkgew0KICAgIHRpbmRfdXNhZ2Uo YXJndlswXSk7DQogIH0NCg0KICBpZiAoYnl0ZXNUb1JlY2VpdmUgPD0gMCkg ew0KICAgIHByaW50ZigiUGxlYXNlIHN1cHBseSB0aGUgIyBvZiBieXRlcyB5 b3UgZXhwZWN0IHRvIHJlY2VpdmUgcGVyIHRyaWFsLlxuIik7DQogICAgZXhp dCgxKTsNCiAgfQ0KDQoNCiAgd2hpbGUgKDEpIHsNCiAgICBjb25uID0gc29j a2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKTsNCiAgICBpZiAoY29ubiA8 IDApIHsNCiAgICAgIHBlcnJvcigiU29ja2V0IEVycm9yISEhXG4iKTsNCiAg ICAgIGV4aXQoMSk7DQogICAgfQ0KDQogICAgbWVtc2V0KChjaGFyICopICZz ZWxmLCAwLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSk7DQogICAgc2Vs Zi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsNCiAgICBzZWxmLnNpbl9hZGRyLnNf YWRkciA9IElOQUREUl9BTlk7DQogICAgc2VsZi5zaW5fcG9ydCA9IGh0b25z KCh1X3Nob3J0KSBwb3J0KTsNCiAgICByZXVzZSA9IDE7DQogICAgaWYgKHNl dHNvY2tvcHQoY29ubiwgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAoY2hh ciAqKSAmcmV1c2UsIHNpemVvZihpbnQpKSA8IDApIHsNCiAgICAgIHBlcnJv cigic2V0c29ja29wdCBlcnJvciEhISIpOw0KICAgICAgZXhpdCgxKTsNCiAg ICB9DQoNCiAgICBpZiAoYmluZChjb25uLCAoc3RydWN0IHNvY2thZGRyICop ICZzZWxmLCBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luKSkgPCAwKSB7DQog ICAgICBwZXJyb3IoImJpbmQgZXJyb3IhISEiKTsNCiAgICAgIGV4aXQoMSk7 DQogICAgfQ0KDQogICAgaWYgKGxpc3Rlbihjb25uLCA1KSA8IDApIHsNCiAg ICAgIHBlcnJvcigibGlzdGVuIGVycm9yISEhIik7DQogICAgICBleGl0KDEp Ow0KICAgIH0NCg0Kdg0KICAgIGxlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2Fk ZHJfaW4pOw0KDQogICAgcmQgPSBhY2NlcHQoY29ubiwgKHN0cnVjdCBzb2Nr YWRkciAqKSAmY2xpZW50LCAmbGVuKTsNCg0KICAgIGlmIChyZCA8IDApIHsN CiAgICAgIHBlcnJvcigiYWNjZXB0IGVycm9yISEhIik7DQogICAgICBleGl0 KDEpOw0KICAgIH0NCg0KICAgIG1lbXNldChidWYsIDAsIDIwNDgpOyANCiAg ICBzZWxlY3RBTkRyZWFkKHJkLCBidWYsIGJ5dGVzVG9SZWNlaXZlKTsNCiAg ICBwcmludGYoIiVzIGZyb20gY2xpZW50XG4iLCBidWYpOw0KICAgIHNlbmQo cmQsIGJ1ZiwgYnl0ZXNUb1JlY2VpdmUsIDApOw0KICAgIGNsb3NlKGNvbm4p Ow0KICAgIGNsb3NlKHJkKTsNCiAgfQ0KfSAgDQoNCmNoYXIgKg0Kc2VsZWN0 QU5EcmVhZChpbnQgdGQsIGNoYXIgKmJ1ZiwgaW50IGJsZW4pDQp7DQogIGlu dCBpOw0KICBpbnQgZXJyOw0KICBjaGFyICpicDsNCiAgaW50IGxlbiwgbGVm dDsNCiAgY2hhciAqZXJybXNnOw0KICBmZF9zZXQgZmRzZXQ7DQogIHN0cnVj dCB0aW1ldmFsIHRpbWVvdXQ7DQogIA0KICBGRF9aRVJPKCZmZHNldCk7DQog IEZEX1NFVCh0ZCwgJmZkc2V0KTsNCiAgDQogIHRpbWVvdXQudHZfc2VjID0g MDsNCiAgdGltZW91dC50dl91c2VjID0gNTAwOw0KICANCg0KICAvKiBpbml0 aWFsaXplIHZhcmlhYmxlcyAqLw0KICBpID0gMDsNCiAgZXJybm8gPSAwOw0K ICBicCA9IGJ1ZjsNCiAgbGVmdCA9IGJsZW47DQogIGVycm1zZyA9IChjaGFy ICopIDA7DQoNCiAgLyogcG9sbCBzb2NrZXQgZm9yIGRhdGEgZXZlcnkgVElO RF9TTEVFUFVTRUMNCiAgICAgaW4gY2FzZSBjbGllbnQgb3IgY29ubmVjdGlv biBpcyBzbG93IGFuZA0KICAgICBkYXRhIGhhc24ndCBhcnJpdmVkLiAgQnV0 IGRvIHRoaXMgb25seQ0KICAgICBUSU5EX01BWFRSSUVTIHRpbWVzIHNvIHRo YXQgYnVnZ3kgY2xpZW50DQogICAgIHdvbid0IHB1dCB1cyBpbiBhbiBpbmZp bml0ZSBsb29wLg0KICAgICBCZXR0ZXIgaW1wbGVtZW50ZWQgd2l0aCBzZWxl Y3QoKS4gKi8NCiAgZG8gew0KICAgIGxlbiA9IHJlYWQodGQsIGJwLCBsZWZ0 KTsNCiAgICANCiAgICBpZiAobGVuIDwgMCAmJiBlcnJubyA9PSBFV09VTERC TE9DSykgew0KICAgICAgaSsrOw0KICAgICAgbGVuID0gMTsNCiAgICAgIGVy cm5vID0gMDsNCiAgICAgIGlmIChzZWxlY3QodGQrMSwgJmZkc2V0LCBOVUxM LCBOVUxMLCAmdGltZW91dCkgPCAwKSB7DQogICAgICAgIHByaW50ZigiRXJy b3IgaW4gZmlsZSAlcyBsaW5lICVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18p Ow0KICAgICAgICBleGl0KDEpOw0KICAgICAgfQ0KICAgIH0gZWxzZSB7DQog ICAgICBpID0gMDsNCiAgICAgIGJwICs9IGxlbjsNCiAgICAgIGxlZnQgLT0g bGVuOw0KICAgIH0NCiAgfSB3aGlsZSAobGVuID4gMCAmJiBsZWZ0ID4gMCAm JiBpIDwgMTApOw0KfQ0KICANCnZvaWQNCnRpbmRfdXNhZ2UoY2hhciAqcHJv Z25hbWUpDQp7DQogIGZwcmludGYoc3RkZXJyLCAiVXNhZ2U6ICVzIC1wIDxw b3J0bnVtPlxuIiwgcHJvZ25hbWUpOw0KICBleGl0KGVycm5vKTsNCn0NCg0K LyoNCiAqIHRpbmRfYXJnczogUGFyc2UgYXJncy4NCiAqDQogKiBSZXR1cm4g MCBvbiBzdWNjZXNzIG9yIGVycm5vIG9uIGZhaWx1cmUuDQogKiBPbiBzdWNj ZXNzZnVsIHJldHVybiwgInBvcnQiIGNvbnRhaW5zIHRoZQ0KICogcG9ydCMg dG8gdXNlLCBpbiBob3N0IGJ5dGUgb3JkZXIuDQoqLw0KaW50DQp0aW5kX2Fy Z3MoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSwgaW50ICpwb3J0LCBpbnQgKiBi eXRlcykNCnsNCiAgY2hhciBjOw0KICBleHRlcm4gaW50IG9wdGluZDsNCiAg ZXh0ZXJuIGNoYXIgKm9wdGFyZzsNCg0KICBlcnJubyA9IDA7DQogICpwb3J0 ID0gVElOX1BPUlQ7DQogIHdoaWxlICgoYyA9IGdldG9wdChhcmdjLCBhcmd2 LCAicDpuOmw6IikpICE9IEVPRikgew0KICAgIHN3aXRjaCAoYykgew0KICAg IGNhc2UgJ3AnOg0KICAgICAgKnBvcnQgPSBhdG9pKG9wdGFyZyk7DQogICAg ICBicmVhazsNCiAgICBjYXNlICduJzoNCiAgICAgICpieXRlcyA9IGF0b2ko b3B0YXJnKTsNCiAgICAgIHJldHVybiAwOw0KICAgIGRlZmF1bHQ6DQogICAg ICBlcnJubyA9IEVJTlZBTDsNCiAgICAgIGJyZWFrOw0KICAgIH0NCiAgfQ0K DQogIHJldHVybihlcnJubyk7DQp9DQoNCg== ---559023410-851401618-899173587=:1437-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message