Exemplo n.º 1
0
int main(int argc, char **argv){
	int pipeflag = 0;
	char filename[200];
	if(argc<3) {
					pipeflag = 1;
	}
	if(argc<2) {
					printf("mygrep takes atleast 2 arguments\n"); 
					return 1;
	}
	int argvpos = handleoptions(argc, argv);
	//printf("optind : %d %s\n", argvpos, argv[optind]);
	if(argvpos) {
		//if(invflag) printf("Invert flag set\n");
		//if(maxcount>0) printf("Max flag set\n");
	}
	if(!pipeflag) strcpy(filename, argv[optind+1]);
	else strcpy(filename, "stdin");
	processfile((const char*)argv[optind], filename, pipeflag);
	if(argvpos == 0) perror("mygrep");
	return 0;
}
Exemplo n.º 2
0
int main(int argc, char *argv[])
{
#ifndef JNI_SUPPORT
	signal(SIGINT,handlesignal);
	signal(SIGTERM,handlesignal);
#endif

	int loglevel=LogFile::LOGLEVEL_DEBUG;
	Option option;
	global::db.Open(global::basepath+"flip.db3");
	global::daemon=false;
	global::shutdown=false;
	bool startup=true;

	SetupDB(&global::db);
	SetupDefaultOptions(&global::db);

	creatersakeypairs(&global::db);

	if(argc>1)
	{
		std::vector<std::string> options;

		for(int i=1; i<argc; i++)
		{
			if(argv[i])
			{
				options.push_back(std::string(argv[i]));
			}
		}

		handleoptions(options,startup);
	}

	IRCServer irc;
	FreenetConnection fn;

	global::log.SetFileName(global::basepath+"flip.log");
	global::log.OpenFile();
	global::log.Rotate("flip","log");
	global::log.SetWriteDate(true);
	global::log.SetWriteLogLevel(true);
	global::log.SetWriteNewLine(true);
	option.GetInt("LogLevel",loglevel);
	global::log.SetLogLevel((LogFile::LogLevel)loglevel);

	if(startup==true)
	{
		global::log.Info("FLIP startup v"FLIP_VERSION);

		irc.Start();
		do
		{
			irc.Update(50);
			fn.Update(50);
		}while(global::shutdown==false);

		irc.Shutdown();
	}

	if(global::daemon)
	{
		Undaemonize();
	}

	global::log.Info("FLIP shudown complete");

	return 0;
}
Exemplo n.º 3
0
int main(int argc,char**argv)
{
        struct sigaction sa;

        handleoptions(argc,argv);

        /*init signals*/
        sa.sa_sigaction=0;
        sa.sa_handler=bagdsighandler;
        sa.sa_flags=SA_NOMASK|SA_RESTART;
        sigaction(SIGHUP,&sa,0);
        sigaction(SIGTERM,&sa,0);
        sigaction(SIGQUIT,&sa,0);
        sigaction(SIGCHLD,&sa,0);
        sigaction(SIGPIPE,&sa,0);
        sigaction(SIGINT,&sa,0);

        readconfig();


        /*init socket*/
        if(ipv6){
                /*tcp6*/
                struct sockaddr_in6 si;
                int sopt;
                sock=socket(PF_INET6,SOCK_STREAM,0);
                if(sock==-1){
                        log(LOG_ERR,"Unable to allocate TCPv6 socket: %s",strerror(errno));
                        exit(1);
               }
               if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&sopt,sizeof(sopt))==-1)
                       log(LOG_ERR,"Unable to set reuse socket option on.");
               si.sin6_family=AF_INET6;
               si.sin6_addr=in6addr_any;
               si.sin6_port=htons(port);
               if(bind(sock,&si,sizeof(si))==-1){
                       log(LOG_ERR,"Unable to bind TCPv6 socket: %s",strerror(errno));
                       close(sock);
                       exit(1);
               }
        }else{
                /*tcp*/
                struct sockaddr_in si;
                int sopt;
                sock=socket(PF_INET,SOCK_STREAM,0);
                if(sock==-1){
                        log(LOG_ERR,"Unable to allocate TCP socket: %s",strerror(errno));
                        exit(1);
                }
                sopt=1;
                if(setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,&sopt,sizeof(sopt))==-1)
                        log(LOG_ERR,"Unable to set reuse socket option.");
                si.sin_family=AF_INET;
                si.sin_addr.s_addr=htonl(INADDR_ANY);
                si.sin_port=htons(port);
                if(bind(sock,&si,sizeof(si))==-1){
                        log(LOG_ERR,"Unable to bind TCP socket: %s",strerror(errno));
                        close(sock);
                        exit(1);
                }
        }
        if(listen(sock,5)==-1){
                log(LOG_WARNING,"Unable to set TCP socket to listen mode: %s",strerror(errno));
                close(sock);
                exit(1);
        }
        log(LOG_INFO,"Successfully initialized TCP socket. Port=%i FD=%i.",port,sock);


        /*go daemons go...*/
        if(godaemon)daemonize();


        for(;;){
                int fd;
                fd=accept(sock,0,0);
                if(fd>-1)vhostchild(fd);
        }

        return 0;
}