void user_init()
{
    struct station_config conf;

    // This is used to setup the serial communication
    uart_div_modify(0, UART_CLK_FREQ / 115200);

    wifi_set_opmode(STATION_MODE);

    // os_bzero ( &conf, sizeof(struct station_config) );
    os_memset ( &conf, 0, sizeof(struct station_config) );
    os_memcpy (&conf.ssid, ssid, 32);
    os_memcpy (&conf.password, pass, 64 );
    wifi_station_set_config (&conf);

    // And this is used to print some information
    os_printf("\n");
    os_printf("SDK version:%s\n", system_get_sdk_version());
    system_print_meminfo();
    os_delay_us ( 1 );
    os_printf ( "CPU Hz = %d\n", system_get_cpu_freq() );

    show_mac ();
    show_ip ();

    /* set a callback for wifi events */
    wifi_set_event_handler_cb ( wifi_event );
}
Exemple #2
0
int main(int argc, char* argv[])
{
    signal(SIGINT,  signal_term);
    signal(SIGTERM, signal_term);

    int daemon_mode = (argc > 1 && strcmp(argv[1], "-d") == 0) ? 1 : 0;
    if (daemon_mode) {
        if (file_exists(file_pid)) {
            perror("already running");
            exit(1);
        }

        pid_t pid = fork();

        // fork failed
        if (pid < 0) {
            return -1;
        } else if (pid != 0) {
            // fork successed, parent exit
            return 0;
        }

        write_pid();
        setsid();
        chdir("/");
        umask(0755);
        close(0);
        close(1);
        close(2);
    }

    lcd_connect();
    lcd_reset();
    lcd_clear();
    lcd_toggle_backlight();
    sleep(1);

    do {

        show_hostname();
        show_time();

        show_uptime();
        show_mems();
        show_loads();

        show_diskspace(DEFAULT_DISKSPACE_DIR);
        show_ip(DEFAULT_NETWORK_INTERFACE);
        show_traffic(DEFAULT_NETWORK_INTERFACE);

        sleep(10);
    } while (!signal_term_received);

    lcd_clear();
    lcd_reset();
    lcd_disconnect();
    unlink(file_pid);

    return 0;
}
Exemple #3
0
static void
h_gcn_new_remote_user(struct Client *source_p)
{

	if (!HasSentEob(source_p->servptr))
		return;
	sendto_realops_snomask_from(snomask_modes['F'], L_ALL, source_p->servptr,
			"Client connecting: %s (%s@%s) [%s] {%s} [%s]",
			source_p->name, source_p->username, source_p->orighost,
			show_ip(NULL, source_p) ? source_p->sockhost : "255.255.255.255",
			"?", source_p->info);
}
Exemple #4
0
void
add_history(struct Client *client_p, int online)
{
	struct Whowas *who = &WHOWAS[whowas_next];

	s_assert(NULL != client_p);

	if(client_p == NULL)
		return;

	if(who->hashv != -1)
	{
		if(who->online)
			del_whowas_from_clist(&(who->online->whowas), who);
		del_whowas_from_list(&WHOWASHASH[who->hashv], who);
	}
	who->hashv = hash_whowas_name(client_p->name);
	who->logoff = rb_current_time();
	/*
	 * NOTE: strcpy ok here, the sizes in the client struct MUST
	 * match the sizes in the whowas struct
	 */
	rb_strlcpy(who->name, client_p->name, sizeof(who->name));
	strcpy(who->username, client_p->username);
	strcpy(who->hostname, client_p->host);
	strcpy(who->realname, client_p->info);
	strcpy(who->suser, client_p->user->suser);
	if(!EmptyString(client_p->sockhost) && strcmp(client_p->sockhost, "0")
	   && show_ip(NULL, client_p))
		strcpy(who->sockhost, client_p->sockhost);
	else
		who->sockhost[0] = '\0';

	who->servername = scache_get_name(client_p->servptr->serv->nameinfo);

	if(online)
	{
		who->online = client_p;
		add_whowas_to_clist(&(client_p->whowas), who);
	}
	else
		who->online = NULL;
	add_whowas_to_list(&WHOWASHASH[who->hashv], who);
	whowas_next++;
	if(whowas_next == NICKNAMEHISTORYLENGTH)
		whowas_next = 0;
}
Exemple #5
0
static void
h_gcn_client_exit(hook_data_client_exit *hdata)
{
	struct Client *source_p;

	source_p = hdata->target;

	if (MyConnect(source_p) || !IsClient(source_p))
		return;
	if (!HasSentEob(source_p->servptr))
		return;
	sendto_realops_snomask_from(snomask_modes['F'], L_ALL, source_p->servptr,
			     "Client exiting: %s (%s@%s) [%s] [%s]",
			     source_p->name,
			     source_p->username, source_p->host, hdata->comment,
                             show_ip(NULL, source_p) ? source_p->sockhost : "255.255.255.255");
}
void
wifi_event ( System_Event_t *e )
{
    int event = e->event;

    if ( event == EVENT_STAMODE_GOT_IP ) {
	os_printf ( "WIFI Event, got IP\n" );
	show_ip ();
	setup_server ();
    } else if ( event == EVENT_STAMODE_CONNECTED ) {
	os_printf ( "WIFI Event, connected\n" );
    } else if ( event == EVENT_STAMODE_DISCONNECTED ) {
	os_printf ( "WIFI Event, disconnected\n" );
    } else {
	os_printf ( "Unknown event %d !\n", event );
    }
}
Exemple #7
0
int main(void)
{
    int fd;

    fd = open("/dev/ttyS1",O_RDWR |O_NONBLOCK);
    if(fd < 0){
        exit(1);
    }
    set_opt_str(fd,9600,8,'N',1);

    while(1){
        show_ip(fd,1);
        show_rate(fd,1);
        show_temperature(fd,1);
    }
    close(fd);
    
    return 0;
}
Exemple #8
0
void got_packet(u_char *args, const struct pcap_pkthdr *header,
	    const u_char *packet)
{

    int size_ip = 0, size_tcp = 0;
    int i = 0, pos = 0;

    struct sniff_ip *ip = NULL;
    struct sniff_tcp *tcp = NULL;
    char *payload = NULL;

/*
    IS_VALID();
    IS_IP();
*/


    printf("\n\n-------------------------------------\n");
    printf("Got a packet: %d\n\n", t++);    

    show_ethernet( packet );
    show_ip( packet );


/*
	ip = (struct sniff_ip*)(packet + SIZE_ETHERNET);
	size_ip = IP_HL(ip)*4;
	if (size_ip < 20) {
		printf("   * Invalid IP header length: %u bytes\n", size_ip);
		return;
	}
	tcp = (struct sniff_tcp*)(packet + SIZE_ETHERNET + size_ip);
	size_tcp = TH_OFF(tcp)*4;
	if (size_tcp < 20) {
		printf("   * Invalid TCP header length: %u bytes\n", size_tcp);
		return;
	}
	payload = (u_char *)(packet + SIZE_ETHERNET + size_ip + size_tcp);
*/

    printf("-------------------------------------\n");
}
int rpc_execute_handshake (struct connection *c, struct copyexec_rpc_handshake *P, int len) {
  int sz = sizeof (struct copyexec_rpc_handshake);
  if (len < sz) {
    return -__LINE__;
  }
  int l = P->hostname_length;
  sz += l;
  sz = (sz + 3) & -4;
  if (len != sz) {
    return -__LINE__;
  }

  host_t *H;
  char ch = P->hostname[l];
  P->hostname[l] = 0; /* possibly broke packet crc32 */
  int r = do_connect (c, P->volume_id, P->random_tag, P->hostname, P->pid, &H);
  P->hostname[l] = ch; /* restore packet crc32 */

  if (r < 0) {
    kprintf ("rpc_execute_handshake: do_connect (c->remote_ip: %s, volume_id: 0x%llx, random_tag: 0x%llx, hostname: %.*s) returns %s.\n",
      show_ip (c->remote_ip), P->volume_id, P->random_tag, P->hostname_length, P->hostname, copyexec_strerror (r));
    struct copyexec_rpc_handshake_error *E = rpc_create_query (Q, sizeof (*E), c, COPYEXEC_RPC_TYPE_ERR_HANDSHAKE);
    if (E == NULL) {
      return -__LINE__;
    }
    E->error_code = r;
    return rpc_send_query (Q, c);
  }

  struct copyexec_rpc_pos *E = rpc_create_query (Q, sizeof (*E), c, COPYEXEC_RPC_TYPE_VALUE_POS);
  if (E == NULL) {
    return -__LINE__;
  }
  E->binlog_pos = H->binlog_pos;

  return rpc_send_query (Q, c);
}
Exemple #10
0
int sock_init( char *_interface, char *_startIP, char *_endIP)
{
  int rv;
  uchar *pb;
  uchar val;
 
#ifdef WIN32
  DWORD rvl;
  rvl = WSAStartup(0x0101,&lan_ws);
  if (rvl != 0) {
      printerr("init: WSAStartup(1.1) error %ld\n", rvl);
      return((int)rvl);
  }
#else
  char findif;
#endif

  if ((g_sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) == SockInvalid) {
    printerr("socket: %s\n", showlasterr());
    return(-1);
  }

  memset(&_srcaddr, 0, sizeof(_srcaddr));
  _srcaddr.sin_family = AF_INET;
  _srcaddr.sin_port = htons(0);
  _srcaddr.sin_addr.s_addr = htonl(INADDR_ANY);
 
#ifdef WIN32
  {
     int ret;
     uchar osip[4];
     uchar osmac[6];
     uchar osname[64];
     char ipstr[20];
     char *temp_start;
     if (fBroadcastOk && (g_startDest[0] == 0)) {
	  ret = GetFirstIP(osip,osmac,osname,fdebug);  /*ilan.c*/
	  if (ret == 0) {
		 // osip[3] = 0xFF;  /*255 for broadcast*/
		 sprintf(ipstr,"%d.%d.%d.255",osip[0],osip[1],osip[2]);
	         temp_start = ipstr;
		 strcpy(g_startDest,temp_start);
		 strcpy(g_endDest,temp_start);
	  } else {  /*use some defaults*/
		 strcpy(g_startDest,"255.255.255.255");
		 strcpy(g_endDest,"255.255.255.255");
	  }
     }
  }
#elif defined(HPUX)
  {  /*find the OS eth interface to use*/
   char devname[INET_ADDRSTRLEN+1];
   int i, n;
   n = 0;
   sprintf(devname,"lan%d",n);
  }
#else
  {  /*find the OS eth interface to use*/
   struct sockaddr_in temp_sockaddr;
   char *temp_start;
   struct ifreq ifr;
   char devname[INET_ADDRSTRLEN+1];
   int i, n;
   if (_interface == NULL) findif = 1;
   else if (_interface[0] == 0) findif = 1;
   else findif = 0;
   if (findif) {
      n = find_ifname(devname);
      if (n >= 0) {
         _interface = devname;
         findif = 0;
      }
   }
   if (findif)
   {   /* try again to find the first active ethN interface */
      n = -1;
      for (i = 0; (i < 16) && (n == -1); i++) {
#ifdef SOLARIS
          sprintf(devname,"e1000g%d",i);
#elif  BSD
          sprintf(devname,"em%d",i);
#else
          sprintf(devname,"eth%d",i);
#endif
          strcpy(ifr.ifr_name, devname);
          ifr.ifr_addr.sa_family = AF_INET;
          if (ioctl(g_sockfd, SIOCGIFADDR, &ifr) >= 0) {
	     /* valid IP address, so active interface, use it */
             temp_sockaddr = *((struct sockaddr_in *)&ifr.ifr_addr);
             memcpy(&_srcaddr.sin_addr.s_addr, &temp_sockaddr.sin_addr.s_addr,
                 sizeof(_srcaddr.sin_addr.s_addr));
             strcpy(g_interface, devname);  
	     temp_start = inet_ntoa(temp_sockaddr.sin_addr);
	     if (temp_start == NULL) temp_start = "";
	     else if (fBroadcastOk && (g_startDest[0] == 0)) {
		 pb = (uchar *)&temp_sockaddr.sin_addr.s_addr;
		 pb[3] = 0xFF;  /*255 for broadcast*/
	         temp_start = inet_ntoa(temp_sockaddr.sin_addr);
		 strcpy(g_startDest,temp_start);
		 strcpy(g_endDest,temp_start);
	     }
	     printf("sock_init: found %s with %s\n",devname,temp_start);
	     n = i;
	     break;
          }
      }
      if (n < 0) rv = LAN_ERR_OTHER; /*-13*/
   } else { /* valid _interface string */
      if (strchr(_interface, '.') != NULL)
        {   /* assume it is an IP address*/
          if ((rv = inet_pton(AF_INET, _interface, &_srcaddr.sin_addr)) < 0)
            printerr("inet_pton: %s\n", showlasterr());
          if (rv == 0) 
            printerr("invalid interface address\n");
          return(rv);
        }
      else
        {   /* assume interface name, like eth0 */
          strncpy(ifr.ifr_name, _interface, IFNAMSIZ);
          ifr.ifr_addr.sa_family = AF_INET;
          if (ioctl(g_sockfd, SIOCGIFADDR, &ifr) < 0) {
             printerr("ioctl(%s): %s\n", _interface, showlasterr());
             return(-1);
          }
 
          temp_sockaddr = *((struct sockaddr_in *)&ifr.ifr_addr);
          memcpy(&_srcaddr.sin_addr.s_addr, &temp_sockaddr.sin_addr.s_addr,
                 sizeof(_srcaddr.sin_addr.s_addr));
	  if (fBroadcastOk && (g_startDest[0] == 0)) {
		 pb = (uchar *)&temp_sockaddr.sin_addr.s_addr;
		 pb[3] = 0xFF;  /*255 for broadcast*/
	         temp_start = inet_ntoa(temp_sockaddr.sin_addr);
		 strcpy(g_startDest,temp_start);
		 strcpy(g_endDest,temp_start);
	  }
        }
    }
   }
#endif

   if (fBroadcastOk) {
        rv = setsockopt(g_sockfd, SOL_SOCKET, SO_BROADCAST,
                       (char *)&broadcast_pings, sizeof(broadcast_pings));
	if (rv) {
	   printerr("setsockopt: %s\n", showlasterr());
	   return(-1);
	}
   }
 
   if (bind(g_sockfd, (struct sockaddr *)&_srcaddr, sizeof(_srcaddr)) < 0) {
      printerr("bind: %s\n", showlasterr());
      return(-1);
   }
 
   rv = inet_aton(_startIP, &_startAddr);
   if (rv ) {
        _startAddr.s_addr = ntohl(_startAddr.s_addr);
        if (fdebug) show_ip(_startAddr.s_addr);
	pb = (unsigned char*)&_startAddr.s_addr;
        if (pb[0]  < 1)
                printerr("Malformed begin IP: %s\n", _startIP);
        else if (!fBroadcastOk && (pb[0] >254) )
                printerr("Malformed begin IP: %s\n", _startIP);
        else if (fBroadcastOk) {
		val = pb[0] & 0x0f;
		if (val == 0x0f) rv = 0;
                else printerr("Malformed begin broadcast IP: %s\n", _startIP);
        } else rv = 0;
   } else {
        printerr("Invalid begin IP: %s\n", _startIP);
   }
   if (rv) return(rv);
 
   rv = inet_aton(_endIP, &_endAddr);
   if (rv ) {
        _endAddr.s_addr = ntohl(_endAddr.s_addr);
        if (fdebug) show_ip(_endAddr.s_addr);
	pb = (unsigned char*)&_endAddr.s_addr;
        if (pb[0]  < 1)
              printerr("Malformed end IP: %s\n", _endIP);
        else if (!fBroadcastOk && (pb[0] >254) )
              printerr("Malformed end IP: %s\n", _endIP);
        else rv = 0;
   } else {
        printerr("Invalid end IP: %s\n", _endIP);
   }

   /* calculate g_num_packets */
   g_num_packets = ntoi(_endAddr.s_addr) - ntoi(_startAddr.s_addr) + 1;
   if (fdebug) printerr("g_num_packets = %d\n",g_num_packets);
   if (g_num_packets < 1) g_num_packets = 0;

   return(rv);
}  /*end sock_init*/