Exemple #1
0
static unsigned short
make_neighbor(void *arg)
{
  struct httpd_state *s = (struct httpd_state *)arg;
  struct collect_neighbor *n = collect_neighbor_get(s->u.count);

  if(n == NULL) {
    return 0;
  }

#if !UIP_CONF_IPV6
  return snprintf((char *)uip_appdata, uip_mss(),
		  "<li><a href=\"http://172.16.%d.%d/\">%d.%d</a>\r\n",
		  n->addr.u8[0], n->addr.u8[1],
		  n->addr.u8[0], n->addr.u8[1]);
#else
#if 0
  uip_ipaddr_t ipaddr;
  char ipaddr_str[41];
  
  uip_ip6addr(&ipaddr, NET_ADDR_A, NET_ADDR_B, NET_ADDR_C, NET_ADDR_D,
              (uint16_t)(((uint16_t)(n->addr.u8[0]^0x02))<<8 | (uint16_t)n->addr.u8[1]),
              ((uint16_t)(n->addr.u8[2]))<<8 | (uint16_t)n->addr.u8[3],
              (uint16_t)(n->addr.u8[4])<<8 | n->addr.u8[5],
              (uint16_t)(n->addr.u8[6])<<8 | n->addr.u8[7]);
  httpd_sprint_ip6(ipaddr, ipaddr_str);
  
  return snprintf((char *)uip_appdata, uip_mss(),
		  "<li><a href=\"http://%s/\">%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X</a>\r\n",
		  ipaddr_str,
          n->addr.u8[0],
          n->addr.u8[1],
          n->addr.u8[2],
          n->addr.u8[3],
          n->addr.u8[4],
          n->addr.u8[5],
          n->addr.u8[6],
          n->addr.u8[7]);
#endif
  /* Automatic generation of node address. Javascript funcion required.
   * Client-side generation is simpler than server-side, as parsing http header
   * would be requied.
   */
  return snprintf((char *)uip_appdata, uip_mss(),
                  "<li><a id=node name='%x:%x:%x:%x'>%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X</a>\r\n",
                  (uint16_t)(((uint16_t)(n->addr.u8[0]^0x02))<<8 | (uint16_t)n->addr.u8[1]),
                  ((uint16_t)(n->addr.u8[2]))<<8 | (uint16_t)n->addr.u8[3],
                  (uint16_t)(n->addr.u8[4])<<8 | n->addr.u8[5],
                  (uint16_t)(n->addr.u8[6])<<8 | n->addr.u8[7],
                  n->addr.u8[0],
                  n->addr.u8[1],
                  n->addr.u8[2],
                  n->addr.u8[3],
                  n->addr.u8[4],
                  n->addr.u8[5],
                  n->addr.u8[6],
                  n->addr.u8[7]);
  
#endif /* UIP_CONF_IPV6 */
}
Exemple #2
0
/*---------------------------------------------------------------------------*/
void
webserver_log_file(uip_ipaddr_t *requester, char *file)
{
#if LOG_CONF_ENABLED
  /* Print out IP address of requesting host. */

#if UIP_CONF_IPV6
  char buf[48];
  uint8_t j;
  j=httpd_sprint_ip6((uip_ip6addr_t)*requester, buf);
  buf[j]=':';buf[j+1]=' ';buf[j+2]=0;
#else
  char buf[20];
  sprintf(buf, "%d.%d.%d.%d: ", requester->u8[0], requester->u8[1],
                                requester->u8[2], requester->u8[3]);
#endif /* UIP_CONF_IPV6 */

  log_message(buf, file);
#endif /* LOG_CONF_ENABLED */
}
Exemple #3
0
/*---------------------------------------------------------------------------*/
static unsigned short
make_tcp_stats(void *arg)
{
  struct uip_conn *conn;
  struct httpd_state *s = (struct httpd_state *)arg;

  conn = &uip_conns[s->u.count];

#if UIP_CONF_IPV6
  char buf[48];

  httpd_sprint_ip6(&conn->ripaddr, buf);
  return snprintf((char *)uip_appdata, uip_mss(),
                  "<tr><td>%d</td><td>%s:%u</td><td>%s</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",
                  uip_htons(conn->lport),
                  buf,
                  uip_htons(conn->rport),
                  states[conn->tcpstateflags & UIP_TS_MASK],
                  conn->nrtx,
                  conn->timer,
                  (uip_outstanding(conn)) ? '*' : ' ',
                  (uip_stopped(conn)) ? '!' : ' ');
#else
  return snprintf((char *)uip_appdata, uip_mss(),
                  "<tr><td>%d</td><td>%u.%u.%u.%u:%u</td><td>%s</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",
                  uip_htons(conn->lport),
                  conn->ripaddr.u8[0],
                  conn->ripaddr.u8[1],
                  conn->ripaddr.u8[2],
                  conn->ripaddr.u8[3],
                  uip_htons(conn->rport),
                  states[conn->tcpstateflags & UIP_TS_MASK],
                  conn->nrtx,
                  conn->timer,
                  (uip_outstanding(conn)) ? '*' : ' ',
                  (uip_stopped(conn)) ? '!' : ' ');
#endif /* UIP_CONF_IPV6 */
}