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

Reply via email to