]> arthur.barton.de Git - netatalk.git/commitdiff
Mostly revert c86c729e2190f1f11a7ed7633b2e5d1fdb9f6ff6 and call Tracker stuff as...
authorRalph Boehme <sloowfranklin@gmail.com>
Thu, 28 Feb 2013 04:08:30 +0000 (05:08 +0100)
committerRalph Boehme <sloowfranklin@gmail.com>
Thu, 28 Feb 2013 04:08:30 +0000 (05:08 +0100)
etc/spotlight/slmod_rdf.c
etc/spotlight/slmod_sparql.c

index 81abdcf5511887484df5cececccb650b43fc7b41..69855fe037f362832abe87750df7f4157cc208a9 100644 (file)
@@ -45,7 +45,9 @@ static int sl_mod_init(void *p)
     g_type_init();
     setenv("DBUS_SESSION_BUS_ADDRESS", "unix:path=/tmp/spotlight.ipc", 1);
 
+    become_root();
     client = tracker_connect(FALSE);
+    unbecome_root();
 
     if (!client) {
         LOG(log_error, logtype_sl, "Failed connecting to Tracker");
@@ -155,6 +157,7 @@ static int sl_mod_fetch_result(void *p)
     if (slq->slq_state == SLQ_STATE_RUNNING) {
         /* Run the query */
         LOG(log_debug, logtype_sl, "sl_mod_fetch_result: calling tracker");
+        become_root();
         array = tracker_search_query(client,
                                      time(NULL),
                                      slq->slq_service,
@@ -168,6 +171,7 @@ static int sl_mod_fetch_result(void *p)
                                      NULL,
                                      FALSE,
                                      &error);
+        unbecome_root();
 
         if (error) {
             slq->slq_state = SLQ_STATE_DONE;
index b9748176917aa9c288f4059775633e8bf435189e..9edad460b6135089843e8b8707f79b943e0a3cfa 100644 (file)
@@ -71,6 +71,7 @@ static int sl_mod_init(void *p)
     dup2(type_configs[logtype_sl].fd, 2);
 #endif
 
+    become_root();
     connection = tracker_sparql_connection_get(NULL, &error);
 #if 0 
     /*
@@ -79,6 +80,7 @@ static int sl_mod_init(void *p)
      */
     manager = tracker_miner_manager_new_full(FALSE, &error);
 #endif
+    unbecome_root();
 
     if (!connection) {
         LOG(log_error, logtype_sl, "Couldn't obtain a direct connection to the Tracker store: %s",
@@ -138,7 +140,9 @@ static int sl_mod_start_search(void *p)
     tracker_sparql_connection_query_async(connection, sparql_query, NULL, tracker_cb, slq);
 #endif
 
+    become_root();
     slq->slq_tracker_cursor = tracker_sparql_connection_query(connection, sparql_query, NULL, &error);
+    unbecome_root();
 
     if (error) {
         LOG(log_error, logtype_sl, "Couldn't query the Tracker Store: '%s'",
@@ -232,7 +236,10 @@ static int sl_mod_fetch_result(void *p)
     LOG(log_debug, logtype_sl, "sl_mod_fetch_result: now interating Tracker results cursor");
 
     while ((slq->slq_state == SLQ_STATE_RUNNING) && (i <= MAX_SL_RESULTS)) {
+        become_root();
         qres = tracker_sparql_cursor_next(slq->slq_tracker_cursor, NULL, &error);
+        unbecome_root();
+
         if (!qres)
             break;
 
@@ -242,7 +249,10 @@ static int sl_mod_fetch_result(void *p)
             firstmatch = false;
         }
 
+        become_root();
         uri = tracker_sparql_cursor_get_string(slq->slq_tracker_cursor, 0, NULL);
+        unbecome_root();
+
         EC_NULL_LOG( path = tracker_to_unix_path(uri) );
 
         if ((id = cnid_for_path(slq->slq_vol->v_cdb, slq->slq_vol->v_path, path, &did)) == CNID_INVALID) {
@@ -336,7 +346,11 @@ static int sl_mod_index_file(const void *p)
     GFile *file = NULL;
 
     file = g_file_new_for_commandline_arg(f);
+
+    become_root();
     tracker_miner_manager_index_file(manager, file, &error);
+    unbecome_root();
+
     if (error)
         LOG(log_error, logtype_sl, "sl_mod_index_file(\"%s\"): indexing failed", f);
     else