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 ); }
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; }
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); }
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; }
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 ); } }
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; }
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); }
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*/