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
Und dass der Puffer groß genug ist ist auch sichergestellt.
das war jetzt ne Frage, oder? Wie krieg ich das raus?
aufgerufen so:
---schnipp---
static const char PROGMEM time_string[] =
"time=";
static const char PROGMEM port_string[] =
"&port=";
static const char PROGMEM PC0_string[] =
"PC0";
int temp = 0;
char *p = uip_appdata;
p += sprintf_P(p, time_string);
p += sprintf(p, "%lu", clock_get_time());
p += sprintf_P(p, port_string);
p += sprintf_P(p, PC0_string);
uip_udp_send(p - (char *)uip_appdata);
^^^^^^^^^^^^^^^^^^^^^^^^^
Hier sendest du aber keinen vollständigen HTTP Header.
ja, stimmt - die Zeile gehört da gar nicht hin; gesendet wird ja dann
eben nicht in dieser Funktion, sondern in httplog().
Danke für den Hinweis - hab sie schon mal entfernt.
temp = httplog(p); // <- hier wird obige Funktion aufgerufen
Hier täte ich auch noch ein debug_printf einbauen.
debug_printf("p ist derzeit: %s\n", (char * )p);
ergibt:
D: p ist derzeit:
D: httplog: got dns response, connecting
Verstehst Du, wo's hapert?
Das geht wohl schon in der aufrufenden Funktion schief - erkennst Du, wieso?
Ansonsten sieht
der Code nit unbedingt schlecht aus. Sprich: so hätte ich das auch
gemacht.
das könnte ich als Kompliment nehmen - liegt aber wohl eher daran,
dass das eben twitter.c | sed ... ist ;-)
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);
Im Ergebnis wird "buffer" an den String angehängt, auf den "p" zeigt.
Und warum ist das so? Elegant schaut's ja scho aus...
Danke!
Gruss, J.
_______________________________________________
Ethersex-devel mailing list
Ethersex-devel@list.zerties.org
https://list.zerties.org/cgi-bin/mailman/listinfo/ethersex-devel