コード例 #1
0
ファイル: terminal.c プロジェクト: surki/hipl
/** Connect to server. */
void cmd_connect(char *x)
{
	/* Variables. */
	char *server, *nick;

	if (strlen(x) < 1)
	{
		term_print("* No server address specified\n");
		return;
	}
	
	server = x;
	nick = strpbrk(x, " ");
	if (nick)
	{
		while (strlen(nick) > 0 && nick[0] == ' ')
		{
			nick[0] = '\0';
			nick = &nick[1];
		}
		if (strlen(nick) > 0) set_nick(nick);
	}
	
	term_mode = TERM_MODE_CLIENT;
	term_set_server_addr(server);
	term_client_init();
}
コード例 #2
0
ファイル: main.c プロジェクト: charkost/irc-bot
int main(int argc, char *argv[]) {

	Irc freenode;
	struct pollfd pfd[4];
	int i, ready, murm_listenfd = -1;

	initialize(argc, argv);

	for (i = 0; i < SIZE(pfd); i++) {
		pfd[i].fd = -1;
		pfd[i].events = POLLIN;
	}
	if (add_murmur_callbacks(cfg.murmur_port))
		pfd[MURM_LISTEN].fd = murm_listenfd = sock_listen(LOCALHOST, CB_LISTEN_PORT_S);
	else
		fprintf(stderr, "Could not connect to Murmur\n");

	if ((pfd[MPD].fd = mpdfd = mpd_connect(cfg.mpd_port)) < 0)
		fprintf(stderr, "Could not connect to MPD\n");

	// Connect to server and set IRC details
	if (!(freenode = irc_connect(cfg.server, cfg.port)))
		exit_msg("Irc connection failed");

	pfd[IRC].fd = get_socket(freenode);
	set_nick(freenode, cfg.nick);
	set_user(freenode, cfg.user);
	for (i = 0; i < cfg.channels_set; i++)
		join_channel(freenode, cfg.channels[i]);

	while ((ready = poll(pfd, SIZE(pfd), TIMEOUT)) > 0) {
		// Keep reading & parsing lines as long the connection is active and act on any registered actions found
		if (pfd[IRC].revents & POLLIN)
			while (parse_irc_line(freenode) > 0);

		if (pfd[MURM_LISTEN].revents & POLLIN)
			if ((pfd[MURM_ACCEPT].fd = accept_murmur_connection(murm_listenfd)) > 0)
				pfd[MURM_LISTEN].fd = -1; // Stop listening for connections

		if (pfd[MURM_ACCEPT].revents & POLLIN) {
			if (!listen_murmur_callbacks(freenode, pfd[MURM_ACCEPT].fd)) {
				pfd[MURM_ACCEPT].fd = -1;
				pfd[MURM_LISTEN].fd = murm_listenfd; // Start listening again for Murmur connections
			}
		}
		if (pfd[MPD].revents & POLLIN)
			if (!print_song(freenode, default_channel(freenode)))
				pfd[MPD].fd = mpdfd = mpd_connect(cfg.mpd_port);
	}
	// If we reach here, it means we got disconnected from server. Exit with error (1)
	if (ready == -1)
		perror("poll");
	else
		fprintf(stderr, "%d minutes passed without getting a message, exiting...\n", TIMEOUT / 1000 / 60);

	quit_server(freenode, cfg.quit_msg);
	cleanup();
	return 1;
}
コード例 #3
0
ファイル: irc_session.cpp プロジェクト: rombust/CarambolaChat
void IRCSession::on_err_nicknameinuse(const IRCNumericReply &message)
{
	if (connect_status == status_connecting)
	{
		if (!(our_nickname == IRCNick::from_text(alt_connect_nick)))
			set_nick(alt_connect_nick);
	}
}
コード例 #4
0
ファイル: RceLogin.pb.cpp プロジェクト: CrazyPro/ape
void RceLogin::MergeFrom(const RceLogin& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from._has_bit(0)) {
      set_pass(from.pass());
    }
    if (from._has_bit(1)) {
      set_nick(from.nick());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}
コード例 #5
0
// ---------------------------------------------------------
// CContextbookView::HandleCommandL(TInt aCommand)
// ?implementation_description
// ---------------------------------------------------------
//
void CContextbookView::HandleCommandL(TInt aCommand)
{   
	CALLSTACKITEM(_L("CContextbookView::HandleCommandL"));

	switch ( aCommand )
        {
        case EAknSoftkeyBack:
		{
			AppUi()->HandleCommandL(EAknSoftkeyBack);
			break;
		}
	case EcontextbookCmdSMS:
		{
			iContainer->sms_current();
			//iLog->write_time();
			//iLog->write_to_output(_L("Cmd SendSMS"));
			//iLog->write_nl();
			break;
		}
	case EcontextbookCmdNick:
		{
			if (iLog) {
				iLog->write_time();
				iLog->write_to_output(_L("Cmd SetNick"));
				iLog->write_nl();
			}
			set_nick();
			break;
		}
	case EcontextbookCmdCall:
		{
			//iLog->write_time();
			//iLog->write_to_output(_L("Cmd Call"));
			//iLog->write_nl();
			iContainer->call_current();
			break;
		}
	case EcontextbookCmdPresenceDetails:
		{
			iContainer->show_presence_details_current();
		}
		break;

        default:
		{
			AppUi()->HandleCommandL( aCommand );
			break;
		}
    }
}
コード例 #6
0
ファイル: terminal.c プロジェクト: surki/hipl
/** Create server. */
void cmd_server(char *x)
{
	if (strlen(x) > 0) set_nick(x);
	term_mode = TERM_MODE_SERVER;
	term_server_init();
}