Exemple #1
0
gboolean
set_proxy(LmConnection *lmconn, GError **error)
{
	LmProxy *proxy;
	LmProxyType type;
	const char *str;
	char *recoded;

	str = settings_get_str("xmpp_proxy_type");
	if (str != NULL && g_ascii_strcasecmp(str, XMPP_PROXY_HTTP) == 0)
		type = LM_PROXY_TYPE_HTTP;
	else {
		if (error != NULL) {
			*error = g_new(GError, 1);
			(*error)->message = g_strdup("Invalid proxy type");
		}
		return FALSE;
	}
	str = settings_get_str("xmpp_proxy_address");
	if (str == NULL || *str == '\0') {
		if (error != NULL) {
			*error = g_new(GError, 1);
			(*error)->message =
			    g_strdup("Proxy address not specified");
		}
		return FALSE;
	}
	int port = settings_get_int("xmpp_proxy_port");
	if (port <= 0) {
		if (error != NULL) {
			*error = g_new(GError, 1);
			(*error)->message =
			    g_strdup("Invalid proxy port range");
		}
		return FALSE;
	}
	proxy = lm_proxy_new_with_server(type, str, port);
	str = settings_get_str("xmpp_proxy_user");
	if (str != NULL && *str != '\0') {
		recoded = xmpp_recode_out(str);
		lm_proxy_set_username(proxy, recoded);
		g_free(recoded);
	}
	str = settings_get_str("xmpp_proxy_password");
	if (str != NULL && *str != '\0') {
		recoded = xmpp_recode_out(str);
		lm_proxy_set_password(proxy, recoded);
		g_free(recoded);
	}
	lm_connection_set_proxy(lmconn, proxy);
	lm_proxy_unref(proxy);
	return TRUE;
}
Exemple #2
0
int
main (int argc, char **argv)
{
        GMainLoop        *main_loop;
        LmConnection     *connection;
        LmMessageHandler *handler;
        gboolean          result;
        UserInfo         *info;
	LmProxy          *proxy; 
	guint             proxy_port;
                                                                                
        if (argc < 6) {
                g_print ("Usage: %s <server> <username> <password> <proxyserver> <proxyport>\n", argv[0]);
                return 1;
        }
                                                                                
        connection = lm_connection_new (argv[1]);

	proxy = lm_proxy_new (LM_PROXY_TYPE_HTTP);
	lm_proxy_set_server (proxy, argv[4]);

	proxy_port = strtol (argv[5], (char **) NULL, 10);
	lm_proxy_set_port (proxy, proxy_port);
	lm_connection_set_proxy (connection, proxy);
	lm_proxy_unref (proxy);
                                                                                
        handler = lm_message_handler_new (handle_messages, NULL, NULL);
        lm_connection_register_message_handler (connection, handler,
                                                LM_MESSAGE_TYPE_MESSAGE,
                                                LM_HANDLER_PRIORITY_NORMAL);
                                                                                
        lm_message_handler_unref (handler);
                                                                                
        info = g_new0 (UserInfo, 1);
        info->name = g_strdup (argv[2]);
        info->passwd = g_strdup (argv[3]);
                                                                                
        result = lm_connection_open (connection,
                                     (LmResultFunction) connection_open_cb,
                                     info, NULL, NULL);
                                                                                
        if (!result) {
                g_print ("Opening connection failed: %d\n", result);
        } else {
                g_print ("Returned from the connection_open\n");
        }
                                                                                
        main_loop = g_main_loop_new (NULL, FALSE);
        g_main_loop_run (main_loop);
                                                                                
        return 0;
}