>Well there is nothing in Glib that limits data to 998, it just keeps >reading and extending the buffer until it gets EOF. Better look at >the PHP side some more and how you are transferring the data. Can't be this because I have substitute my script for a echo with thousands of letters and just 998 have been read by g_io_channel_read_line and g_io_channel_read_end. Anyone have one more idea? >Cheers >Lex 2010/5/28 frederico schardong <frede.sch@xxxxxxxxx>: > I resolved part of the problem. The encoding problem was resolved with > base64 encoding between PHP and C. Now the problem is the same of the > first mail, the received string just have 998 characters. The > g_io_channel_read_to_end( channel, &string, &size, &erro ); don't show > any errors. I also have tried the g_io_channel_read_line but the > limit of 998 characters happen again. > > So, why I have this limit? > > Here is a log of the received contend: > > received in base64: > bG9naW4gVFJVRXw=Mjc=fDM3MzY=fFRyZWluYW1lbnRvL1F1YWxpZmljYcOnw6NvIE1pb2xvfERpdmVyc29zIC0gRGV2ZWw=fEJhbmNvfDEwMDY=fDc0NjowNzowMA==fDExNzE=fDQxMTU=fFRyYWJhbGhhciBTb2xpcyAtIEFwcmVuZGl6YWdlbQ==fERpdmVyc29zIC0gRGV2ZWw=fDE1MDA6MDA6MDA=fDEwMDY=fDEwMDc6NTE6MDA=fDExNzE=fDM4NDQ=fEVzdHVkbyBGZXJyYW1lbnRhcyBNaW9sbw==fERpdmVyc29zIC0gRGV2ZWw=fEJhbmNvfDEwMDY=fDEzOTY6NDY6MDA=fDExNzE=fDM3MzE=fFRyYWJhbGhhciBuYSBTb2xpcyAtIERldmVsfERpdmVyc29zIC0gRGV2ZWw=fDEwMDA6MDA6MDAuMDAwMDAyfDEwMDY=fDMyMDo1NzowMA==fDExNzE=fDM1OTQ=fE1hbnV0ZW7Dp8OjbyBTaXN0ZW1hcyBJbnRlcm5vcw==fERpdmVyc29zIC0gU09MSVM=fEJhbmNvfDEwMDY=fDE4NTU6NTk6MDA=fDkyNg==fDQxNzI=fFRlc3Rlcw==fE1hcmF0b25hIDIwMDk=fDQwOjAwOjAwfDEwNDU=fDE1OjMwOjAwfDEyNDk=fDQxNzQ=fERpc3BvbmliaWxpemHDp8OjbyBkb3MgRm9ybXVsw6FyaW9zfEF2YWxpYcOnw6NvIEluc3RpdHVjaW9uYWwgMjAwOUE=fDUwOjAwOjAwfDEwNDU=fDMyOjA1OjAwfDEyNDg=fDQxNzY=fERlc2Vudm9sdmltZW50byBlIFJlZXN0cnV0dXJhw6fDo28gZG9zIEZvcm11bMOhcmlvcw==fEF2YWxpYcOnw6NvIEluc3RpdHVjaW9uYWwgMjAwOUE=fDEwMDowMDowMA==fDEwNDU=fDkyOjQwOjAwfDEyNDg=fD > size: 998 > > > translated to utf8: login TRUE|27|3736|Treinamento/Qualificação > Miolo|Diversos - Devel|Banco|1006|746:07:00|1171|4115|Trabalhar Solis > - Aprendizagem|Diversos - > Devel|1500:00:00|1006|1007:51:00|1171|3844|Estudo Ferramentas > Miolo|Diversos - Devel|Banco|1006|1396:46:00|1171|3731|Trabalhar na > Solis - Devel|Diversos - > Devel|1000:00:00.000002|1006|320:57:00|1171|3594|Manutenção Sistemas > Internos|Diversos - > SOLIS|Banco|1006|1855:59:00|926|4172|Testes|Maratona > 2009|40:00:00|1045|15:30:00|1249|4174|Disponibilização dos > Formulários|Avaliação Institucional > 2009A|50:00:00|1045|32:05:00|1248|4176|Desenvolvimento e > Reestruturação dos Formulários|Avaliação Institucional > 2009A|100:00:00|1045|92:40:00|1248 > size: 692 > > 2010/5/28 frederico schardong <frede.sch@xxxxxxxxx>: >> As I talked later, my channel receives the output of a php script, in >> those script I have: >> >> echo "|" . utf8_encode($r) . ""; >> >> I have changed the utf8_encode to base64_encode and my channel don't >> crash. What's the matter with utf8? >> >> 2010/5/28 frederico schardong <frede.sch@xxxxxxxxx>: >>> This is very strange. Yesterday I have got 998 characters from the >>> g_io_channel_read_to_end, but today I have compiled with and without >>> the if to show the error, but every time I'm getting 0 characters from >>> the channel! I don't know what can cause it, because nothing has been >>> changed unless the if. >>> >>> 2010/5/28 frederico schardong <frede.sch@xxxxxxxxx>: >>>> The error is: >>>> >>>> error: Canal termina num caractere parcial >>>> >>>> This means "Channel ending in a partial character". >>>> >>>> 2010/5/27 Robert Pearce <rob@xxxxxxxxxxxxxxxxxxxx>: >>>>> Hi frederico, >>>>> >>>>> On Thu, 27 May 2010 11:02:47 -0300 you wrote: >>>>>> > Why don't you test the error returns? >>>>>> GError *b = NULL; >>>>>> >>>>>> g_io_channel_read_to_end( channel, &string, &size, &b); >>>>>> >>>>>> g_print("returned: %s\nsize: %d\nerror: %s", string, size, b->message); >>>>>> >>>>>> It causes segmentation fault. What I'm doing wrong here? >>>>> >>>>> You're not testing the error return. If the g_io_channel_read_to_end completes without error, then it doesn't change 'b', so the printf is doing a de-reference of a NULL pointer. You should change it to : >>>>> >>>>> GError *b = NULL; >>>>> >>>>> g_io_channel_read_to_end( channel, &string, &size, &b); >>>>> >>>>> g_print("returned: %s\nsize: %d\n", string, size ); >>>>> if ( b ) >>>>> g_print("error: %s\n", b->message); >>>>> _______________________________________________ >>>>> gtk-list mailing list >>>>> gtk-list@xxxxxxxxx >>>>> http://mail.gnome.org/mailman/listinfo/gtk-list >>>>> >>>> >>>> >>>> >>>> -- >>>> Thanks, >>>> Frederico Schardong, >>>> SOLIS - Open source solutions >>>> www.solis.coop.br >>>> Linux registered user #500582 >>>> >>> >>> >>> >>> -- >>> Thanks, >>> Frederico Schardong, >>> SOLIS - Open source solutions >>> www.solis.coop.br >>> Linux registered user #500582 >>> >> >> >> >> -- >> Thanks, >> Frederico Schardong, >> SOLIS - Open source solutions >> www.solis.coop.br >> Linux registered user #500582 >> > > > > -- > Thanks, > Frederico Schardong, > SOLIS - Open source solutions > www.solis.coop.br > Linux registered user #500582 > -- Thanks, Frederico Schardong, SOLIS - Open source solutions www.solis.coop.br Linux registered user #500582 _______________________________________________ gtk-list mailing list gtk-list@xxxxxxxxx http://mail.gnome.org/mailman/listinfo/gtk-list