{"id":437,"date":"2008-10-25T17:00:36","date_gmt":"2008-10-25T15:00:36","guid":{"rendered":"http:\/\/www.alphak.net\/news\/?p=437"},"modified":"2013-11-06T01:57:19","modified_gmt":"2013-11-06T00:57:19","slug":"bouygues-telecom-je-te-hais","status":"publish","type":"post","link":"https:\/\/www.alphak.net\/news\/2008\/10\/bouygues-telecom-je-te-hais\/","title":{"rendered":"Bouygues Telecom, je te hais !"},"content":{"rendered":"<p>A la base, une id\u00e9e pas particuli\u00e8rement r\u00e9volutionnaire mais pratique quand m\u00eame.<\/p>\n<p>Chez Bouygtel la consultation du suivi conso est gratuite depuis internet mais pas depuis un appel du mobile (c&rsquo;est d\u00e9compt\u00e9 du forfait). En revanche, la r\u00e9ception des mails est gratuite sur mon mobile. J&rsquo;ai donc imagin\u00e9 un petit script qui se connecterait r\u00e9guli\u00e8rement \u00e0 mon espace client, qui v\u00e9rifierait que ma conso ne d\u00e9passe pas le seuil fatidique du hors forfait, et qu&rsquo;en m&rsquo;enverrait un joli mail dans le cas contraire. Le tout \u00e0 planifier environ 2 fois par jour par crontab.<\/p>\n<p>J&rsquo;ai d\u00e9cid\u00e9 que j&rsquo;allais r\u00e9aliser ce petit projet (3 heures \u00e0 tout casser) avec le package <a href=\"http:\/\/fr2.php.net\/manual\/fr\/book.http.php\" target=\"_blank\">HTTP de Pear<\/a>. Seulement voila : 9 fois sur 10 l&rsquo;appel \u00e0 l&rsquo;URL de connexion au service client remonte une exception <em>&lsquo;HttpMalformedHeadersException&rsquo; with message &lsquo;Failed to parse message headers&rsquo; <\/em>dans mon script. Apr\u00e8s arrachage de cheveux, je d\u00e9cide d&#8217;employer les grands moyens et de voir pourquoi le header serait soi-disant malform\u00e9.<\/p>\n<p>A grand coup de TCPdump, je sniffe le contenu exact des headers renvoy\u00e9s par les serveurs de Bouygues :<\/p>\n<pre lang=\"bash\">tcpdump -vvv -XXX -p -A -s 800 -t tcp port 80<\/pre>\n<p>Le message qui fait planter le script est le suivant (attention \u00e7a pique les yeux) :<\/p>\n<pre lang=\"ini\" extra=\"13\">0x0000:  0004 76cd ff4e 0007 cb96 622a 0800 4500  ..v..N....b*..E.\r\n0x0010:  031a 065e 4000 3706 d7c8 58dd 4931 c0a8  ...^@.7...X.I1..\r\n0x0020:  0001 0050 e429 81a3 92ea ccfb b8dc 8018  ...P.)..........\r\n0x0030:  0c90 be02 0000 0101 080a 80a5 94be 0084  ................\r\n0x0040:  ed1f 4854 5450 2f31 2e31 2033 3032 204d  ..HTTP\/1.1.302.M\r\n0x0050:  6f76 6564 2054 656d 706f 7261 7269 6c79  oved.Temporarily\r\n0x0060:  0d0a 4c6f 6361 7469 6f6e 3a20 6874 7470  ..Location:.http\r\n0x0070:  733a 2f2f 7777 772e 6573 7061 6365 636c  s:\/\/www.espacecl\r\n0x0080:  6965 6e74 2e62 6f75 7967 7565 7374 656c  ient.bouyguestel\r\n0x0090:  6563 6f6d 2e66 722f 4543 462f 6a73 662f  ecom.fr\/ECF\/jsf\/\r\n0x00a0:  7375 626d 6974 4c6f 6769 6e2e 6a73 660d  submitLogin.jsf.\r\n0x00b0:  0a43 6f6e 7465 6e74 2d4c 656e 6774 683a  .Content-Length:\r\n0x00c0:  2032 3531 0d0a 436f 6e74 656e 742d 5479  .251..Content-Ty\r\n0x00d0:  7065 3a20 7465 7874 2f68 746d 6c3b 2063  pe:.text\/html;.c\r\n0x00e0:  6861 7273 6574 3d69 736f 2d38 3835 392d  harset=iso-8859-\r\n0x00f0:  310d 0a44 6174 653a 2053 6174 2c20 3235  1..Date:.Sat,.25\r\n0x0100:  204f 6374 2032 3030 3820 3130 3a32 373a  .Oct.2008.10:27:\r\n0x0110:  3136 2047 4d54 0d0a 436f 6e6e 6563 7469  16.GMT..Connecti\r\n0x0120:  6f6e 3a20 6b65 6570 2d61 6c69 7665 0d0a  on:.keep-alive..\r\n0x0130:  0d0a 3c21 444f 4354 5950 4520 4854 4d4c  ..&lt;!DOCTYPE.HTML\r\n0x0140:  2050 5542 4c49 4320 222d 2f2f 4945 5446  .PUBLIC.\"-\/\/IETF\r\n0x0150:  2f2f 4454 4420 4854 4d4c 2032 2e30 2f2f  \/\/DTD.HTML.2.0\/\/\r\n0x0160:  454e 223e 0a3c 6874 6d6c 3e3c 6865 6164  EN\"&gt;.&lt;html&gt;&lt;head\r\n0x0170:  3e0a 3c74 6974 6c65 3e33 3032 2046 6f75  &gt;.&lt;title&gt;302.Fou\r\n0x0180:  6e64 3c2f 7469 746c 653e 0a3c 2f68 6561  nd&lt;\/title&gt;.&lt;\/hea\r\n0x0190:  643e 3c62 6f64 793e 0a3c 6831 3e46 6f75  d&gt;&lt;body&gt;.&lt;h1&gt;Fou\r\n0x01a0:  6e64 3c2f 6831 3e0a 3c70 3e54 6865 2064  nd&lt;\/h1&gt;.&lt;p&gt;The.d\r\n0x01b0:  6f63 756d 656e 7420 6861 7320 6d6f 7665  ocument.has.move\r\n0x01c0:  6420 3c61 2068 7265 663d 2268 7474 7073  d.&lt;a.href=\"https\r\n0x01d0:  3a2f 2f77 7777 2e65 7370 6163 6563 6c69  :\/\/www.espacecli\r\n0x01e0:  656e 742e 626f 7579 6775 6573 7465 6c65  ent.bouyguestele\r\n0x01f0:  636f 6d2e 6672 2f45 4346 2f6a 7366 2f73  com.fr\/ECF\/jsf\/s\r\n0x0200:  7562 6d69 744c 6f67 696e 2e6a 7366 223e  ubmitLogin.jsf\"&gt;\r\n0x0210:  6865 7265 3c2f 613e 2e3c 2f70 3e0a 3c2f  here&lt;\/a&gt;.&lt;\/p&gt;.&lt;\/\r\n0x0220:  626f 6479 3e3c 2f68 746d 6c3e 0a3c 2144  body&gt;&lt;\/html&gt;.&lt;!D\r\n0x0230:  4f43 5459 5045 2048 544d 4c20 5055 424c  OCTYPE.HTML.PUBL\r\n0x0240:  4943 2022 2d2f 2f49 4554 462f 2f44 5444  IC.\"-\/\/IETF\/\/DTD\r\n0x0250:  2048 544d 4c20 322e 302f 2f45 4e22 3e0a  .HTML.2.0\/\/EN\"&gt;.\r\n0x0260:  3c68 746d 6c3e 3c68 6561 643e 0a3c 7469  &lt;html&gt;&lt;head&gt;.&lt;ti\r\n0x0270:  746c 653e 3330 3220 466f 756e 643c 2f74  tle&gt;302.Found&lt;\/t\r\n0x0280:  6974 6c65 3e0a 3c2f 6865 6164 3e3c 626f  itle&gt;.&lt;\/head&gt;&lt;bo\r\n0x0290:  6479 3e0a 3c68 313e 466f 756e 643c 2f68  dy&gt;.&lt;h1&gt;Found&lt;\/h\r\n0x02a0:  313e 0a3c 703e 5468 6520 646f 6375 6d65  1&gt;.&lt;p&gt;The.docume\r\n0x02b0:  6e74 2068 6173 206d 6f76 6564 203c 6120  nt.has.moved.&lt;a.\r\n0x02c0:  6872 6566 3d22 6874 7470 733a 2f2f 7777  href=\"https:\/\/ww\r\n0x02d0:  772e 6573 7061 6365 636c 6965 6e74 2e62  w.espaceclient.b\r\n0x02e0:  6f75 7967 7565 7374 656c 6563 6f6d 2e66  ouyguestelecom.f\r\n0x02f0:  722f 4543 462f 6a73 662f 7375 626d 6974  r\/ECF\/jsf\/submit\r\n0x0300:  4c6f 6769 6e2e 6a73 6622 3e68 6572 653c  Login.jsf\"&gt;here&lt;\r\n0x0310:  2f61 3e2e 3c2f 703e 0a3c 2f62 6f64 793e  \/a&gt;.&lt;\/p&gt;.&lt;\/body&gt;<\/pre>\n<p>Le probl\u00e8me ? La longueur du message fait 494 octets (0x320 &#8211; 0x132 = 0x1EE soit 494), mais le header soutient mordicus que le message ne fait que 251 octets. R\u00e9sultat, la classe HTTP de Pear rejette le tout en bloc sans me donner la possibilit\u00e9 de bidouiller le message retour.<\/p>\n<p>A l&rsquo;inverse, en ce qui concerne les rares r\u00e9ponses qui ne font pas planter le script, le content-length est correct \u00e0 chaque fois.<\/p>\n<p>J&rsquo;ai donc l&rsquo;impression qu&rsquo;il y a un bug sur les serveurs de Bouygtel et surtout que je vais devoir trouver une solution de contournement en r\u00e9inventant la roue, <strong>ce qui m&rsquo;\u00e9nerve<\/strong>. En attendant, j&rsquo;invite les administrateurs des serveurs Web de Bouygtel \u00e0 lire cette <a href=\"http:\/\/www.w3.org\/Protocols\/rfc2616\/rfc2616-sec14.html\" target=\"_blank\">page passionnante<\/a> et \u00e0 en appliquer les directives.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A la base, une id\u00e9e pas particuli\u00e8rement r\u00e9volutionnaire mais pratique quand m\u00eame.<\/p>\n<p>Chez Bouygtel la consultation du suivi conso est gratuite depuis internet mais pas depuis un appel du mobile (c&rsquo;est d\u00e9compt\u00e9 du forfait). En revanche, la r\u00e9ception des mails est gratuite sur mon mobile. J&rsquo;ai donc imagin\u00e9 un petit script qui se connecterait r\u00e9guli\u00e8rement \u00e0 mon espace client, qui v\u00e9rifierait que ma conso ne d\u00e9passe pas le seuil fatidique du hors forfait, et qu&rsquo;en m&rsquo;enverrait un joli mail dans le cas contraire. Le tout \u00e0 planifier environ 2 fois par jour par crontab.<\/p>\n\t<div class=\"post-teaser-block\">\r\n\t\t<div class=\"teaserHellip\">\r\n\t\t\t<span class=\"teaserLeft\">[<\/span><span class=\"teaserCenter\">&hellip;<\/span><span class=\"teaserRight\">]<\/span>\r\n\t\t<\/div>\r\n\t\t<div class=\"teaserText\">\r\n\t\t\t<a href=\"https:\/\/www.alphak.net\/news\/2008\/10\/bouygues-telecom-je-te-hais\/\" title=\"Bouygues Telecom, je te hais !\" rel=\"bookmark\"><span class=\"teaserlink\">Lire la suite de l'article&nbsp;<i class=\"fa fa-chevron-right\"><\/i><\/span><\/a>\r\n\t\t<\/div>\r\n\t\t<a class=\"teaserLink\" href=\"https:\/\/www.alphak.net\/news\/2008\/10\/bouygues-telecom-je-te-hais\/\" title=\"Bouygues Telecom, je te hais !\" rel=\"bookmark\"><\/a>\r\n\t<\/div>\r\n","protected":false},"author":1,"featured_media":2378,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[20],"tags":[61,62,66,63,65,64,67],"class_list":["post-437","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projet-serveur","tag-bouygues-telecom","tag-crontab","tag-http","tag-job","tag-pear","tag-php","tag-tcpdump"],"_links":{"self":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts\/437"}],"collection":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/comments?post=437"}],"version-history":[{"count":6,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts\/437\/revisions"}],"predecessor-version":[{"id":2757,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/posts\/437\/revisions\/2757"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/media\/2378"}],"wp:attachment":[{"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/media?parent=437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/categories?post=437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.alphak.net\/news\/wp-json\/wp\/v2\/tags?post=437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}