int main(int argc, char **argv) { (void)argc; (void)argv; /* open connection with the server */ nil_.con = xcb_connect(0, 0); if (xcb_connection_has_error(nil_.con)) { NIL_ERR("xcb_connect %p", (void *)nil_.con); exit(1); } /* 1st stage */ if ((init_screen() != 0) || (init_key() != 0) || (init_mouse() != 0)) { xcb_disconnect(nil_.con); exit(1); } /* 2nd stage */ if ((init_cursor() != 0) || (init_color() != 0) != (init_font() != 0) || (init_bar() != 0) || (init_wm() != 0)) { cleanup(); exit(1); } xcb_flush(nil_.con); recv_events(); cleanup(); return 0; }
/* * main function */ int main(int argc, char *argv[]) { int sock = -1, ret; unsigned groups; /* set option */ ret = set_options(argc, argv); if(ret < 0) close_exit(sock, 0, ret); /* open log file */ ret = open_log(log_file); if(ret < 0) close_exit(sock, 0, ret); /* open debug file */ if(log_opts & L_DEBUG) { ret = open_dbg(dbg_file); if(ret < 0) close_exit(sock, 0, ret); } /* create lock file */ ret = open_lock(); if(ret < 0) close_exit(sock, 0, ret); /* set signal handlers */ ret = set_signal_handlers(); if(ret < 0) close_exit(sock, 0, ret); /* initizlize daemon */ ret = init_daemon(); if(ret < 0) close_exit(sock, 0, ret); rec_log("info: nield %s started(PID: %ld)", VERSION, (long)getpid()); /* write pid to lock file */ ret = write_lock(); if(ret < 0) close_exit(sock, 0, ret); /* open netlink socket to create list */ groups = 0; sock = open_netlink_socket(groups, NETLINK_ROUTE); if(sock < 0) close_exit(sock, 1, ret); /* request interface list */ ret = send_request(sock, RTM_GETLINK, AF_UNSPEC); if(ret < 0) close_exit(sock, 1, ret); /* receive interface list */ ret = recv_reply(sock, RTM_GETLINK); if(ret != 0) close_exit(sock, 1, ret); /* request bridge interface list */ ret = send_request(sock, RTM_GETLINK, AF_BRIDGE); if(ret < 0) close_exit(sock, 1, ret); /* receive bridge interface list */ ret = recv_reply(sock, RTM_GETLINK); if(ret != 0) close_exit(sock, 1, ret); /* request neighbor cache list */ ret = send_request(sock, RTM_GETNEIGH, AF_UNSPEC); if(ret < 0) close_exit(sock, 1, ret); /* receive & create interface list */ ret = recv_reply(sock, RTM_GETNEIGH); if(ret != 0) close_exit(sock, 1, ret); /* close socket */ close(sock); /* set rtnetlink multicast groups */ groups = set_rtnetlink_groups(); sock = open_netlink_socket(groups, NETLINK_ROUTE); if(sock < 0) close_exit(sock, 1, ret); /* recevie events */ ret = recv_events(sock); close_exit(sock, 1, ret); return(0); }
int main(int argc , char *argv[]) { int c; int argvidx = 0 ; int ret = 0 ; int opt_events = 0 ; int opt_events_nonblock = 0 ; int opt_disp_param = 0 ; char *opt_disp_param_arg = NULL; char *opt_event_arg = NULL; int opt_wps_event = 0; acfg_dl_init(); appname = basename(argv[0]); while( (c = getopt(argc , argv , option_args)) != -1 ) { switch (c) { case 'e': opt_events = 1 ; opt_event_arg = optarg ; break; case 'n': opt_events_nonblock = 1 ; break; case 'p': opt_disp_param = 1 ; opt_disp_param_arg = optarg ; break; case 'w': opt_wps_event = 1 ; break; case '?': /* getopt returns error */ usage(); exit(0); break; default: usage(); exit(0); break; } //end switch }//end while argvidx = optind ; if(opt_disp_param) { ret = display_params(opt_disp_param_arg) ; } else if(opt_events) { ret = recv_events(opt_event_arg,opt_events_nonblock); } else if (opt_wps_event) { recv_wps_events(); } else if (argv[argvidx] != NULL) ret = doapitest( &argv[argvidx] ); if(ret != 0) { printf("\n<<<<<<<<<< Dumping LOG >>>>>>>>>>>>>\n"); printf("%s", acfg_get_errstr()); printf("\n<<<<<<<<<<<<<< End >>>>>>>>>>>>>>>>>\n"); } return ret ; }