XMMS2
statfs_linux.c
Go to the documentation of this file.
1 /* XMMS2 - X Music Multiplexer System
2  * Copyright (C) 2003-2011 XMMS2 Team
3  *
4  * PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!!
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or (at your option) any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  */
16 
17 
18 /** @file
19  * Linux statfs
20  */
21 
22 #include <stdio.h>
23 #include <unistd.h>
24 #include <stdlib.h>
25 #include <glib.h>
26 
27 
28 #include <sys/vfs.h>
29 
30 #include "xmms/xmms_log.h"
31 #include "xmmspriv/xmms_statfs.h"
32 
33 /**
34  * This function uses the statfs() call to
35  * check if the path is on a remote filesystem
36  * or not.
37  *
38  * @returns TRUE if path is on a remote filesystem
39  */
40 gboolean
41 xmms_statfs_is_remote (const gchar *path)
42 {
43  struct statfs st;
44 
45  if (statfs (path, &st) == -1) {
46  xmms_log_error ("Failed to run statfs, will not guess.");
47  return FALSE;
48  }
49 
50  if (st.f_type == 0xFF534D42 || /* cifs */
51  st.f_type == 0x6969 || /* nfs */
52  st.f_type == 0x517B) { /* smb */
53  return TRUE;
54  }
55 
56  return FALSE;
57 }
#define xmms_log_error(fmt,...)
Definition: xmms_log.h:35
gboolean xmms_statfs_is_remote(const gchar *path)
This function uses the statfs() call to check if the path is on a remote filesystem or not...
Definition: statfs_linux.c:41