$OpenBSD: patch-src_tracker-extract_tracker-extract-mp3_c,v 1.12 2012/02/02 07:12:23 ajacoutot Exp $

OpenBSD does not have memmem().

From a6ae1d90385b7eb9c4a5bd6a9ca17eb32b666b04 Mon Sep 17 00:00:00 2001
From: Antoine Jacoutot <ajacoutot@openbsd.org>
Date: Tue, 10 Jan 2012 11:45:29 +0000
Subject: libtracker-common: Add new function tracker_file_open_fd()

--- src/tracker-extract/tracker-extract-mp3.c.orig	Fri Dec 16 16:24:23 2011
+++ src/tracker-extract/tracker-extract-mp3.c	Mon Jan 30 17:36:15 2012
@@ -1049,10 +1049,10 @@ id3v2_strlen (const gchar  encoding,
 	case 0x02:
 		
 		/* UTF-16, string terminated by two NUL bytes */
-		pos = memmem (text, len, "\0\0\0", 3);
+		pos = g_strstr_len (text, len, "\0\0\0");
 
 		if (pos == NULL) {
-			pos = memmem (text, len, "\0\0", 2);
+			pos = g_strstr_len (text, len, "\0\0");
 		} else {
 			pos++;
 		}
@@ -2093,25 +2093,11 @@ tracker_extract_get_metadata (TrackerExtractInfo *info
 	md.size = size;
 	buffer_size = MIN (size, MAX_FILE_READ);
 
-#if defined(__linux__)
-	/* Can return -1 because of O_NOATIME, so we try again after
-	 * without as a last resort. This can happen due to
-	 * permissions.
-	 */
-	fd = g_open (filename, O_RDONLY | O_NOATIME);
-	if (fd == -1 && errno == EPERM) {
-		fd = g_open (filename, O_RDONLY);
+	fd = tracker_file_open_fd (filename);
 
-		if (fd == -1) {
-			return FALSE;
-		}
-	}
-#else
-	fd = open (filename, O_RDONLY);
 	if (fd == -1) {
 		return FALSE;
 	}
-#endif
 
 #ifndef G_OS_WIN32
 	/* We don't use GLib's mmap because size can not be specified */
