Excerpts from Justin Otherguy's message of Mi Feb 03 00:33:27 +0100 2010:
> Moin,
> 
> danke für die Rückmeldung!
> 
> Christian Dietrich <stettber...@dokucode.de> schrieb:
> 
> > Excerpts from Justin Otherguy's message of Sa Jan 30 20:59:29 +0100 2010:
> >>
> >> Das hier bleibt in httplog.c übrig:
> >>
> >> ---schnipp---
> >> static const char PROGMEM get_string_head[] =
> >>      "GET /httplog/httplog.php?";
> >> static const char PROGMEM get_string_foot[] =
> >>      " HTTP/1.1\n"
> >>      "Host: " CONF_HTTPLOG_SERVICE "\n\n\n";
> >> ---
> >>      if (uip_connected() || uip_rexmit()) {
> >>          char *p = uip_appdata;
> >>          p += sprintf_P(p, get_string_head);
> >>          p += sprintf(p, httplog_tmp_buf);  // <- ..."bla"...
> >
> > Ich täte mal genau an der Stelle ein debug_printf einbauen.
> 
>          p += sprintf_P(p, get_string_head);
>          p += sprintf(p, httplog_tmp_buf);
> debug_printf("guckst Du: %s\n", p);
>          p += sprintf_P(p, get_string_foot);
> 
> ergibt:
> 
> D: guckst Du:
> D: httplog: send 1269 bytes

Das ist schonmal garnit gut, da ist dein Puffer ja schon kaputt, da
ist klar, dass das senden nit gehen kann. Du kannst ja auch mal
alles in einem sprintf machen. IIRC war %s fuer ram und %S fuer
PGMSPACE. Alternative kannste auch noch in debug_printf format
strings machen, also ungefaer so:

debug_printf("schau an: %S%s%S\n", get_string_head, httplog_tmp_buf,
                          get_string_foot);

> 
> > Und dass der Puffer groß genug ist ist auch sichergestellt.
> das war jetzt ne Frage, oder? Wie krieg ich das raus?

Also der UIP-Puffer sollte mal per definition grosz genug sein (beim
m644 sinds 1,5 kbyte).
> 
> D: p ist derzeit:
> D: httplog: got dns response, connecting

Ja gut, dass ist ein Resulatat des obigen, da muss jetzt nicht
unbedingt was kaputt sein an der Stelle.

> das könnte ich als Kompliment nehmen - liegt aber wohl eher daran,  
> dass das eben twitter.c | sed ... ist ;-)

Sed ist doch toll :-)

> 
> > Wenn das httplog mal funktioniert koenn mers gerne in ethersex
> > einbauen.
> schön :-)
> 
> Kannst Du mir erklären, wie diese Zeile hier funktioniert?
>    p += sprintf(p, buffer);

oh oh, oh, langsam daemmerts mir. ersetzt mal den ganzen wusst durch
ein einziges sprintf, weil jetzt ja keine format strings ala %s p
sind. Hier ist p ein Format string und buffer die argumente. Du
kannst auch mal versuchen strcat bzw. strcat_P zu verwenden, das
haengt einfach was an.

gruß didi
-- 
No documentation is better than bad documentation
-- Das Ausdrucken dieser Mail wird urheberrechtlich verfolgt.

_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel

Antwort per Email an