예제 #1
0
파일: nefarious.c 프로젝트: danopia/denora
char *nefarious_nickip(char *host)
{
    struct in_addr addr;
    int decoded;

    decoded = base64toIP(host);
    addr.s_addr = ntohl(decoded);
    return sstrdup(inet_ntoa(addr));
}
예제 #2
0
static void m_nick( char *origin, char **argv, int argc, int srv )
{
	if( argc > 2 ) {
		char IPAddress[32];
		const char *modes;
		const char *modeptr;
		const char *account = NULL;
		const char *sethost = NULL;
		int param;

		modes = ( argv[5][0] == '+' ) ? argv[5]: NULL;
		if( modes ) {
			param = 6;
			for( modeptr = modes; *modeptr; ++modeptr ) {
				switch( *modeptr ) {
				case 'r':
					account = argv[param++];
					break;
				case 'h':
					sethost = argv[param++];
					break;
				default:
					break;
				} /* switch( *modeptr ) */
			} /* for( ) */
		} /* if( modes ) */

		ircsnprintf( IPAddress, 32, "%du", base64toIP( argv[argc-3]) );

		/*       nick,    hopcount, TS,     user,    host, */       
		do_nick( argv[0], argv[1], argv[2], argv[3], argv[4], 
			/* server, ip, servicestamp, modes, */
			base64_to_server( origin ), IPAddress, NULL, modes,
			/* vhost, realname, numeric, smodes */ 
			NULL, argv[argc-1], argv[argc-2], NULL );
	} else {
		do_nickchange( base64_to_nick( origin ), argv[0], argv[1] );
	}
}