Re: browsehost in new version
[email protected] Fri, 14 May 2010 07:18:26 +0000 (UTC)
| Newsgroups | gmane.network.gnutella.devel |
|---|---|
| Organization | Home, Grenoble, France |
| Message-ID | <[email protected]> |
--Co1aw8S6WUPpbugksK44LY1FeqvStWCofXndWcL Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Quoting josephversaceca <[email protected]> from ml.gnutella.dev-forum: : :I have read about push-proxies, the message protocol to recieve a file from a :firewalled peer (after the gnutella header) seems to be: : :Byte Pos Name Notes :23 - 38 ClientID128 The ClientID128 GUID of the server the client wishes the push from. :39 - 42 File Index Index of file requested. See query_response_rec for more info :43 - 46 Requester IP IP Address of the host requesting the push. Network byte order :47 - 48 Requester Port Port number of the host requesting the push. : : :What I am wondering is, is this the same request for a browse? What should I use :for the file index? Woa here! You're confusing things and this may be a sign you do not grasp fully how things work or how Gnutella is architected. For instance, there is no such thing as a Gnutella header to receive a file from a firewalled peer! Instead, there is a special protocol called "push" that is handled at the Gnutella level so that firewalled servents may initiate the connection to an unfirewalled servent. Once the connection is initiated through this protocol, it does not matter any more how the connection was created but the downloader can sent HTTP requests to the uploader (the firewalled servent). When a PUSH is received (either through Gnutella routing or via a push-proxy precisely), a servent will initiate the connection to the host as specified in the PUSH message (which is a Gnutella message). When making the connection, and to signal to the remote Gnutella servent that this is an answer to a PUSH, the firewalled servent sends the following string: GIV index:GUID/file where "index" comes from an older design where files were indexed by numbers. Since nowadays files are identified by their urn:sha1, it is no longer useful and in this particular context it is completely useless anyway. Send "0" (zero, ASCII code 0x30). "GUID" is the GUID of the firewalled servent (the one initiating the connection). For instance, the string "e64c33394f9f8405b398e923b9cd7a00". "file" used to be the file name corresponding to the file mentionned in the PUSH message, but again this is an old design. Just send "file" as a verbatim string. So for instance a valid GIV string would be: GIV 0:e64c33394f9f8405b398e923b9cd7a00/file The string must end with "\n\n", that is two new-line characters (code 0xa in ASCII). The recipient needs simply to extract the GUID of the servent from the GIV string and see whether it has some files to request from this servent. If it has, it can just request it through HTTP. And that can be ANY file. If it has nothing, it simply ignores the connection by closing it. That's all there is to PUSH processing, really. There is no byte position to consider in the GIV string, it has to be parsed as an ASCII string. Routing of PUSH messages, the format of the PUSH message itself can be the subject of other postings if there is a need. Raphael --Co1aw8S6WUPpbugksK44LY1FeqvStWCofXndWcL Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> </head> <body style="background-color: #fff;"> <span style="display:none"> </span> <!--~-|**|PrettyHtmlStartT|**|-~--> <div id="ygrp-mlmsg" style="position:relative;"> <div id="ygrp-msg" style="z-index: 1;"> <!--~-|**|PrettyHtmlEndT|**|-~--> <div id="ygrp-text" > <p>Quoting josephversaceca <<a href="mailto:josephversaceca%40yahoo.ca">[email protected]</a>> from ml.gnutella.dev-forum:<br> :<br> :I have read about push-proxies, the message protocol to recieve a file from a<br> :firewalled peer (after the gnutella header) seems to be:<br> :<br> :Byte Pos Name Notes <br> :23 - 38 ClientID128 The ClientID128 GUID of the server the client wishes the push from. <br> :39 - 42 File Index Index of file requested. See query_response_rec for more info <br> :43 - 46 Requester IP IP Address of the host requesting the push. Network byte order <br> :47 - 48 Requester Port Port number of the host requesting the push. <br> :<br> :<br> :What I am wondering is, is this the same request for a browse? What should I use<br> :for the file index?<br> <br> Woa here!<br> <br> You're confusing things and this may be a sign you do not grasp fully<br> how things work or how Gnutella is architected.<br> <br> For instance, there is no such thing as a Gnutella header to receive a<br> file from a firewalled peer!<br> <br> Instead, there is a special protocol called "push" that is handled<br> at the Gnutella level so that firewalled servents may initiate the<br> connection to an unfirewalled servent. Once the connection is initiated<br> through this protocol, it does not matter any more how the connection<br> was created but the downloader can sent HTTP requests to the uploader<br> (the firewalled servent).<br> <br> When a PUSH is received (either through Gnutella routing or via a<br> push-proxy precisely), a servent will initiate the connection to the<br> host as specified in the PUSH message (which is a Gnutella message).<br> <br> When making the connection, and to signal to the remote Gnutella<br> servent that this is an answer to a PUSH, the firewalled servent sends<br> the following string:<br> <br> GIV index:GUID/file<br> <br> where "index" comes from an older design where files were indexed<br> by numbers. Since nowadays files are identified by their urn:sha1,<br> it is no longer useful and in this particular context it is completely<br> useless anyway. Send "0" (zero, ASCII code 0x30).<br> <br> "GUID" is the GUID of the firewalled servent (the one initiating the<br> connection). For instance, the string "e64c33394f9f8405b398e923b9cd7a00".<br> <br> "file" used to be the file name corresponding to the file mentionned<br> in the PUSH message, but again this is an old design. Just send "file"<br> as a verbatim string.<br> <br> So for instance a valid GIV string would be:<br> <br> GIV 0:e64c33394f9f8405b398e923b9cd7a00/file<br> <br> The string must end with "\n\n", that is two new-line characters (code 0xa<br> in ASCII).<br> <br> The recipient needs simply to extract the GUID of the servent from the<br> GIV string and see whether it has some files to request from this servent.<br> If it has, it can just request it through HTTP. And that can be ANY file.<br> If it has nothing, it simply ignores the connection by closing it.<br> <br> That's all there is to PUSH processing, really. There is no byte position<br> to consider in the GIV string, it has to be parsed as an ASCII string.<br> <br> Routing of PUSH messages, the format of the PUSH message itself can be the<br> subject of other postings if there is a need.<br> <br> Raphael<br> </p> </div> <!--~-|**|PrettyHtmlStart|**|-~--> <div style="color: #fff; height: 0;">__._,_.___</div> <div id="ygrp-actbar" style="clear: both; margin-bottom: 10px; white-space: nowrap; color: #666; padding-top: 15px;"> <div> <a href="mailto:[email protected]?subject=Re: browsehost in new version" style="margin-right: 0; padding-right: 0;"> Reply to <span style="font-weight: 700;">sender</span></a> | <a href="mailto:[email protected]?subject=Re: browsehost in new version"> Reply to <span style="font-weight: 700;">group</span></a> | <a href="http://groups.yahoo.com/group/the_gdf/post;_ylc=X3oDMTJxOWdnZ3V0BF9TAzk3MzU5NzE0BGdycElkAzI2ODQyNTMEZ3Jwc3BJZAMxNzA1MDE2MDYxBG1zZ0lkAzIzNzMwBHNlYwNmdHIEc2xrA3JwbHkEc3RpbWUDMTI3MzgyMTUyMQ--?act=reply&messageNum=23730">Reply <span style="font-weight: 700;">via web post</span></a> | <a href="http://groups.yahoo.com/group/the_gdf/post;_ylc=X3oDMTJlMnZ1czhiBF9TAzk3MzU5NzE0BGdycElkAzI2ODQyNTMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTI3MzgyMTUyMQ--" style="font-weight: 700;">Start a New Topic</a> </div> <a href="http://groups.yahoo.com/group/the_gdf/message/23723;_ylc=X3oDMTM2ajY2ZWtlBF9TAzk3MzU5NzE0BGdycElkAzI2ODQyNTMEZ3Jwc3BJZAMxNzA1MDE2MDYxBG1zZ0lkAzIzNzMwBHNlYwNmdHIEc2xrA3Z0cGMEc3RpbWUDMTI3MzgyMTUyMQR0cGNJZAMyMzcyMw--">Messages in this topic</a> (<span style="font-weight: 700;">4</span>) </div> <!------- Start Nav Bar ------> <!-- |**|begin egp html banner|**| --> <div id="ygrp-vital" style="background-color: #e0ecee; font-family: Verdana; font-size: 10px; margin-bottom: 10px; padding: 10px;"> <span id="vithd" style="font-weight: bold; color: #333; text-transform: uppercase; ">Recent Activity:</span> <ul style="list-style-type: none; margin: 0; padding: 0; display: inline;"> <li style="border-right: 1px solid #000; font-weight: 700; display: inline; padding: 0 5px; margin-left: 0;"> <span class="cat"><a href="http://groups.yahoo.com/group/the_gdf/members;_ylc=X3oDMTJmczM2cWNhBF9TAzk3MzU5NzE0BGdycElkAzI2ODQyNTMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwN2dGwEc2xrA3ZtYnJzBHN0aW1lAzEyNzM4MjE1MjE-?o=6" style="text-decoration: none;">New Members</a></span> <span class="ct" style="color: #ff7900;">1</span> </li> </ul> <div style="clear: both; padding-top: 2px; color: #1e66ae;"> <a href="http://groups.yahoo.com/group/the_gdf;_ylc=X3oDMTJlZjhkMmU4BF9TAzk3MzU5NzE0BGdycElkAzI2ODQyNTMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTI3MzgyMTUyMQ--" style="text-decoration: none;">Visit Your Group</a> </div> </div> <div id="ygrp-mkp" style="border: 1px solid #d8d8d8; clear: both; float: left; font-family: Arial; margin: 5px 0 10px 0; padding: 0 10px;"> <div id="hd" style="color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0;">MARKETPLACE</div> <div id="ads" style="margin-bottom: 10px;"> <div class="ad" style="color: #628C2A; font-family: Arial; font-weight: 700; padding: 0 0;"> <p><a href="http://us.ard.yahoo.com/SIG=15o9i5ad0/M=493064.13983314.14041046.13298430/D=groups/S=1705016061:MKP1/Y=YAHOO/EXP=1273828721/L=ec6620a6-5f28-11df-a179-6fa58007da28/B=Lg2zN2KJiTg-/J=1273821521391943/K=YK9Iv90RRWeM4P1z5RyiQQ/A=6060255/R=0/SIG=1194m4keh/*http://us.toolbar.yahoo.com/?.cpdl=grpj">Stay on top of your group activity without leaving the page you're on - Get the Yahoo! Toolbar now.</a></p> <script language=javascript> if(window.yzq_d==null)window.yzq_d=new Object(); window.yzq_d['Lg2zN2KJiTg-']='&U=13cngr808%2fN%3dLg2zN2KJiTg-%2fC%3d493064.13983314.14041046.13298430%2fD%3dMKP1%2fB%3d6060255%2fV%3d1'; </script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=ec6620a6-5f28-11df-a179-6fa58007da28&T=1d9jq0aj7%2fX%3d1273821521%2fE%3d1705016061%2fR%3dgroups%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO%2fF%3d3103279654%2fH%3dY29udGVudD0iR3JvdXBzO1dlYnNpdGVfU2VydmljZXM7UG9sbHM7QnJpZWZjYXNlO0ZsaWNrcjtHZW9jaXRpZXM7UGhvdG9zO1lhaG9vX1RlY2g7TWVtYmVyX0RpcmVjdG9yeTtQb2RjYXN0czsiIGRpc2FibGVzaHVmZmxpbmc9IjEiIHNlcnZlSWQ9ImVjNjYyMGE2LTVmMjgtMTFkZi1hMTc5LTZmYTU4MDA3ZGEyOCIgc2l0ZUlkPSIyNzk2MDUxIiB0U3RtcD0iMTI3MzgyMTUyMTM4NTMyNyIg%2fQ%3d-1%2fS%3d1%2fJ%3d27228962&U=13cngr808%2fN%3dLg2zN2KJiTg-%2fC%3d493064.13983314.14041046.13298430%2fD%3dMKP1%2fB%3d6060255%2fV%3d1"></noscript> </div> <div class="ad" style="color: #628C2A; font-family: Arial; font-weight: 700; padding: 0 0;"> <hr style="border: 1px solid #d8d8d8;"> <p><a href="http://us.ard.yahoo.com/SIG=15ocm6q28/M=493064.13814537.14041040.10835568/D=groups/S=1705016061:MKP1/Y=YAHOO/EXP=1273828721/L=ec6620a6-5f28-11df-a179-6fa58007da28/B=Lw2zN2KJiTg-/J=1273821521391943/K=YK9Iv90RRWeM4P1z5RyiQQ/A=6078812/R=0/SIG=114ae4ln1/*http://dogandcatanswers.yahoo.com/">Get great advice about dogs and cats. Visit the Dog & Cat Answers Center.</a></p><script language=javascript> if(window.yzq_d==null)window.yzq_d=new Object(); window.yzq_d['Lw2zN2KJiTg-']='&U=13cfu3bda%2fN%3dLw2zN2KJiTg-%2fC%3d493064.13814537.14041040.10835568%2fD%3dMKP1%2fB%3d6078812%2fV%3d1'; </script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=ec6620a6-5f28-11df-a179-6fa58007da28&T=1d9cjr4h9%2fX%3d1273821521%2fE%3d1705016061%2fR%3dgroups%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO%2fF%3d1820020545%2fH%3dY29udGVudD0iR3JvdXBzO1dlYnNpdGVfU2VydmljZXM7UG9sbHM7QnJpZWZjYXNlO0ZsaWNrcjtHZW9jaXRpZXM7UGhvdG9zO1lhaG9vX1RlY2g7TWVtYmVyX0RpcmVjdG9yeTtQb2RjYXN0czsiIGRpc2FibGVzaHVmZmxpbmc9IjEiIHNlcnZlSWQ9ImVjNjYyMGE2LTVmMjgtMTFkZi1hMTc5LTZmYTU4MDA3ZGEyOCIgc2l0ZUlkPSIyNzk2MDUxIiB0U3RtcD0iMTI3MzgyMTUyMTM4NTMyNyIg%2fQ%3d-1%2fS%3d1%2fJ%3d27228962&U=13cfu3bda%2fN%3dLw2zN2KJiTg-%2fC%3d493064.13814537.14041040.10835568%2fD%3dMKP1%2fB%3d6078812%2fV%3d1"></noscript> </div> <div class="ad" style="color: #628C2A; font-family: Arial; font-weight: 700; padding: 0 0;"> <hr style="border: 1px solid #d8d8d8;"> <p><a href="http://us.ard.yahoo.com/SIG=15o9r0oij/M=493064.14012770.13963757.13298430/D=groups/S=1705016061:MKP1/Y=YAHOO/EXP=1273828721/L=ec6620a6-5f28-11df-a179-6fa58007da28/B=MA2zN2KJiTg-/J=1273821521391943/K=YK9Iv90RRWeM4P1z5RyiQQ/A=6015306/R=0/SIG=11vlkvigg/*http://advision.webevents.yahoo.com/hobbiesandactivitieszone/">Hobbies & Activities Zone: Find others who share your passions! Explore new interests.</a></p><script language=javascript> if(window.yzq_d==null)window.yzq_d=new Object(); window.yzq_d['MA2zN2KJiTg-']='&U=13ccibe3g%2fN%3dMA2zN2KJiTg-%2fC%3d493064.14012770.13963757.13298430%2fD%3dMKP1%2fB%3d6015306%2fV%3d1'; </script><noscript><img width=1 height=1 alt="" src="http://us.bc.yahoo.com/b?P=ec6620a6-5f28-11df-a179-6fa58007da28&T=1d9s3tfv7%2fX%3d1273821521%2fE%3d1705016061%2fR%3dgroups%2fK%3d5%2fV%3d2.1%2fW%3dH%2fY%3dYAHOO%2fF%3d1374755612%2fH%3dY29udGVudD0iR3JvdXBzO1dlYnNpdGVfU2VydmljZXM7UG9sbHM7QnJpZWZjYXNlO0ZsaWNrcjtHZW9jaXRpZXM7UGhvdG9zO1lhaG9vX1RlY2g7TWVtYmVyX0RpcmVjdG9yeTtQb2RjYXN0czsiIGRpc2FibGVzaHVmZmxpbmc9IjEiIHNlcnZlSWQ9ImVjNjYyMGE2LTVmMjgtMTFkZi1hMTc5LTZmYTU4MDA3ZGEyOCIgc2l0ZUlkPSIyNzk2MDUxIiB0U3RtcD0iMTI3MzgyMTUyMTM4NTMyNyIg%2fQ%3d-1%2fS%3d1%2fJ%3d27228962&U=13ccibe3g%2fN%3dMA2zN2KJiTg-%2fC%3d493064.14012770.13963757.13298430%2fD%3dMKP1%2fB%3d6015306%2fV%3d1"></noscript> </div> </div> </div> <div id="ft" style="font-family: Arial; font-size: 11px; margin-top: 5px; padding: 0 2px 0 0; clear: both;"> <a href="http://groups.yahoo.com/;_ylc=X3oDMTJkZWRpb2poBF9TAzk3MzU5NzE0BGdycElkAzI2ODQyNTMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMjczODIxNTIx" style="float: left;"><img src="http://l.yimg.com/a/i/us/yg/logo/us.gif" height="15" width="137" alt="Yahoo! Groups" style="border: 0;"/></a> <div style="color: #747575; float: right;">Switch to: <a href="mailto:[email protected]?subject=Change Delivery Format: Traditional" style="text-decoration: none;">Text-Only</a>, <a href="mailto:[email protected]?subject=Email Delivery: Digest" class="margin-rt" style="text-decoration: none;">Daily Digest</a> • <a href="mailto:[email protected]?subject=Unsubscribe" style="text-decoration: none;">Unsubscribe</a> • <a href="http://docs.yahoo.com/info/terms/" style="text-decoration: none;">Terms of Use</a></div> </div> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id="ygrp-sponsor" style="width:160px; float:right; clear:none; margin:0 0 25px 0; background: #fff;"> <!-- Start Recommendations --> <div id="ygrp-reco"> </div> <!-- End Recommendations --> </div> <!-- |**|end egp html banner|**| --> <div style="clear:both; color: #FFF; font-size:1px;">.</div> </div> <img src="http://geo.yahoo.com/serv?s=97359714/grpId=2684253/grpspId=1705016061/msgId=23730/stime=1273821521/nc1=6083913/nc2=5741392/nc3=5733767" width="1" height="1"> <br> <div style="color: #fff; height: 0;">__,_._,___</div> <!--~-|**|PrettyHtmlEnd|**|-~--> </body> <!--~-|**|PrettyHtmlStart|**|-~--> <head> <style type="text/css"> <!-- #ygrp-mkp { border: 1px solid #d8d8d8; font-family: Arial; margin: 10px 0; padding: 0 10px; } #ygrp-mkp hr { border: 1px solid #d8d8d8; } #ygrp-mkp #hd { color: #628c2a; font-size: 85%; font-weight: 700; line-height: 122%; margin: 10px 0; } #ygrp-mkp #ads { margin-bottom: 10px; } #ygrp-mkp .ad { padding: 0 0; } #ygrp-mkp .ad a { color: #0000ff; text-decoration: none; } #ygrp-sponsor #ygrp-lc { font-family: Arial; } #ygrp-sponsor #ygrp-lc #hd { margin: 10px 0px; font-weight: 700; font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad { margin-bottom: 10px; padding: 0 0; } a { color: #1e66ae; } #actions { font-family: Verdana; font-size: 11px; padding: 10px 0; } #activity { background-color: #e0ecee; float: left; font-family: Verdana; font-size: 10px; padding: 10px; } #activity span { font-weight: 700; } #activity span:first-child { text-transform: uppercase; } #activity span a { color: #5085b6; text-decoration: none; } #activity span span { color: #ff7900; } #activity span .underline { text-decoration: underline; } .attach { clear: both; display: table; font-family: Arial; font-size: 12px; padding: 10px 0; width: 400px; } .attach div a { text-decoration: none; } .attach img { border: none; padding-right: 5px; } .attach label { display: block; margin-bottom: 5px; } .attach label a { text-decoration: none; } blockquote { margin: 0 0 0 4px; } .bold { font-family: Arial; font-size: 13px; font-weight: 700; } .bold a { text-decoration: none; } dd.last p a { font-family: Verdana; font-weight: 700; } dd.last p span { margin-right: 10px; font-family: Verdana; font-weight: 700; } dd.last p span.yshortcuts { margin-right: 0; } div.attach-table div div a { text-decoration: none; } div.attach-table { width: 400px; } div.file-title a, div.file-title a:active, div.file-title a:hover, div.file-title a:visited { text-decoration: none; } div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div.photo-title a:visited { text-decoration: none; } div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts { font-family: Verdana; font-size: 10px; font-weight: normal; } .green { color: #628c2a; } .MsoNormal { margin: 0 0 0 0; } o { font-size: 0; } #photos div { float: left; width: 72px; } #photos div div { border: 1px solid #666666; height: 62px; overflow: hidden; width: 62px; } #photos div label { color: #666666; font-size: 10px; overflow: hidden; text-align: center; white-space: nowrap; width: 64px; } #reco-category { font-size: 77%; } #reco-desc { font-size: 77%; } .replbq { margin: 4px; } #ygrp-actbar div a:first-child { /* border-right: 0px solid #000;*/ margin-right: 2px; padding-right: 5px; } #ygrp-mlmsg { font-size: 13px; font-family: Arial, helvetica,clean, sans-serif; *font-size: small; *font: x-small; } #ygrp-mlmsg table { font-size: inherit; font: 100%; } #ygrp-mlmsg select, input, textarea { font: 99% Arial, Helvetica, clean, sans-serif; } #ygrp-mlmsg pre, code { font:115% monospace; *font-size:100%; } #ygrp-mlmsg * { line-height: 1.22em; } #ygrp-mlmsg #logo { padding-bottom: 10px; } #ygrp-mlmsg a { color: #1E66AE; } #ygrp-msg p a { font-family: Verdana; } #ygrp-msg p#attach-count span { color: #1E66AE; font-weight: 700; } #ygrp-reco #reco-head { color: #ff7900; font-weight: 700; } #ygrp-reco { margin-bottom: 20px; padding: 0px; } #ygrp-sponsor #ov li a { font-size: 130%; text-decoration: none; } #ygrp-sponsor #ov li { font-size: 77%; list-style-type: square; padding: 6px 0; } #ygrp-sponsor #ov ul { margin: 0; padding: 0 0 0 8px; } #ygrp-text { font-family: Georgia; } #ygrp-text p { margin: 0 0 1em 0; } #ygrp-text tt { font-size: 120%; } #ygrp-vital ul li:last-child { border-right: none !important; } --> </style> </head> <!--~-|**|PrettyHtmlEnd|**|-~--> </html> <!-- end group email --> --Co1aw8S6WUPpbugksK44LY1FeqvStWCofXndWcL--