XMMS2
|
00001 /* XMMS2 - X Music Multiplexer System 00002 * Copyright (C) 2003-2011 XMMS2 Team 00003 * 00004 * PLUGINS ARE NOT CONSIDERED TO BE DERIVED WORK !!! 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 */ 00016 00017 00018 /** @file 00019 * NetBSD statfs 00020 */ 00021 00022 /* struct statfs was changed to struct statvfs in NetBSD3*/ 00023 00024 #include <stdio.h> 00025 #include <unistd.h> 00026 #include <stdlib.h> 00027 #include <glib.h> 00028 00029 00030 #include <sys/param.h> 00031 #include <sys/mount.h> 00032 00033 #include "xmms/xmms_log.h" 00034 #include "xmmspriv/xmms_statfs.h" 00035 00036 /** 00037 * This function uses the statvfs() call to 00038 * check if the path is on a remote filesystem 00039 * or not. 00040 * 00041 * @returns TRUE if path is on a remote filesystem 00042 */ 00043 gboolean 00044 xmms_statfs_is_remote (const gchar *path) 00045 { 00046 struct statvfs st; 00047 00048 if (statvfs (path, &st) == -1) { 00049 xmms_log_error ("Failed to run statfs, will not guess."); 00050 return FALSE; 00051 } 00052 00053 if ((g_ascii_strcasecmp (st.f_fstypename, "nfs") == 0) || 00054 (g_ascii_strcasecmp (st.f_fstypename, "smb") == 0)) { 00055 return TRUE; 00056 } 00057 00058 return FALSE; 00059 }