示例#1
0
void tcpinject_connectDone(error_t error) {
   if (error==E_SUCCESS) {
      tcpinject_vars.pkt = openqueue_getFreePacketBuffer(COMPONENT_TCPINJECT);
      if (tcpinject_vars.pkt==NULL) {
         openserial_printError(COMPONENT_TCPINJECT,ERR_NO_FREE_PACKET_BUFFER,
                               (errorparameter_t)0,
                               (errorparameter_t)0);
         return;
      }
      tcpinject_vars.pkt->creator                      = COMPONENT_TCPINJECT;
      tcpinject_vars.pkt->owner                        = COMPONENT_TCPINJECT;
      tcpinject_vars.pkt->l4_protocol                  = IANA_UDP;
      tcpinject_vars.pkt->l4_sourcePortORicmpv6Type    = WKP_TCP_INJECT;
      tcpinject_vars.pkt->l4_destination_port          = tcpinject_vars.hisPort;
      memcpy(&(tcpinject_vars.pkt->l3_destinationORsource),&tcpinject_vars.hisAddress,sizeof(open_addr_t));
      packetfunctions_reserveHeaderSize(tcpinject_vars.pkt,6);
      ((uint8_t*)tcpinject_vars.pkt->payload)[0] = 'p';
      ((uint8_t*)tcpinject_vars.pkt->payload)[1] = 'o';
      ((uint8_t*)tcpinject_vars.pkt->payload)[2] = 'i';
      ((uint8_t*)tcpinject_vars.pkt->payload)[3] = 'p';
      ((uint8_t*)tcpinject_vars.pkt->payload)[4] = 'o';
      ((uint8_t*)tcpinject_vars.pkt->payload)[5] = 'i';
      if (opentcp_send(tcpinject_vars.pkt)==E_FAIL) {
         openqueue_freePacketBuffer(tcpinject_vars.pkt);
      }
      return;
   }
}
示例#2
0
void ohlone_sendpkt() {
   uint8_t buffer[TCP_DEFAULT_WINDOW_SIZE];
   uint8_t buffer_len;
  
   buffer_len = ohlone_webpage(ohlone_vars.getRequest, ohlone_vars.httpChunk++, buffer);
   
   if (buffer_len == 0) {
      // No more to send
      // close TCP session, but keep listening
      ohlone_vars.getRequest[0] = '/';
      ohlone_vars.getRequest[1] = ' ';
      opentcp_close();
      return;
   }

   ohlone_vars.pkt = openqueue_getFreePacketBuffer(COMPONENT_OHLONE);
   if (ohlone_vars.pkt==NULL) {
      openserial_printError(COMPONENT_OHLONE,ERR_NO_FREE_PACKET_BUFFER,
                            (errorparameter_t)0,
                            (errorparameter_t)0);
      opentcp_close();
      return;
   }
   ohlone_vars.pkt->creator = COMPONENT_OHLONE;
   ohlone_vars.pkt->owner   = COMPONENT_OHLONE;
   
   packetfunctions_reserveHeaderSize(ohlone_vars.pkt, buffer_len);
   memcpy(ohlone_vars.pkt->payload, buffer, buffer_len);
   
   if ((opentcp_send(ohlone_vars.pkt))==E_FAIL) {
      openqueue_freePacketBuffer(ohlone_vars.pkt);
      opentcp_close();
   }

}
示例#3
0
void techo_receive(OpenMote* self, OpenQueueEntry_t* msg) {
   uint16_t temp_l4_destination_port;
   msg->owner                     = COMPONENT_TECHO;
   //reply with the same OpenQueueEntry_t
   msg->creator                   = COMPONENT_TECHO;
   msg->l4_protocol               = IANA_TCP;
   temp_l4_destination_port       = msg->l4_destination_port;
   msg->l4_destination_port       = msg->l4_sourcePortORicmpv6Type;
   msg->l4_sourcePortORicmpv6Type = temp_l4_destination_port;
   if ( opentcp_send(self, msg)==E_FAIL) {
 openqueue_freePacketBuffer(self, msg);
   }
}