/* * _atob(vp,p,base) */ static int #ifdef HAVE_QUAD _atob (u_quad_t *vp, char *p, int base) { u_quad_t value, v1, v2; #else _atob (unsigned long *vp, char *p, int base) { u_long value, v1, v2; #endif char *q, tmp[20]; int digit; if (p[0] == '0' && (p[1] == 'x' || p[1] == 'X')) { base = 16; p += 2; } if (base == 16 && (q = strchr (p, '.')) != 0) { if (q - p > sizeof(tmp) - 1) return (0); strncpy (tmp, p, q - p); tmp[q - p] = '\0'; if (!_atob (&v1, tmp, 16)) return (0); q++; if (strchr (q, '.')) return (0); if (!_atob (&v2, q, 16)) return (0); *vp = (v1 << 16) + v2; return (1); } value = *vp = 0; for (; *p; p++) { if (*p >= '0' && *p <= '9') digit = *p - '0'; else if (*p >= 'a' && *p <= 'f') digit = *p - 'a' + 10; else if (*p >= 'A' && *p <= 'F') digit = *p - 'A' + 10; else return (0); if (digit >= base) return (0); value *= base; value += digit; } *vp = value; return (1); }
/* * llatob(vp,p,base) * converts p to binary result in vp, rtn 1 on success */ int llatob(u_quad_t *vp, char *p, int base) { if (base == 0) p = _getbase (p, &base); return _atob(vp, p, base); }
/* * atob(vp,p,base) * converts p to binary result in vp, rtn 1 on success */ int atob(uint32_t *vp, char *p, int base) { uint32_t v; if (base == 0) p = _getbase (p, &base); if (_atob (&v, p, base)) { *vp = v; return (1); } return (0); }
/* * atob(vp,p,base) * converts p to binary result in vp, rtn 1 on success */ int atob(u_int32_t *vp, char *p, int base) { #ifdef HAVE_QUAD u_quad_t v; #else u_long v; #endif if (base == 0) p = _getbase (p, &base); if (_atob (&v, p, base)) { *vp = v; return (1); } return (0); }
void iFuseCmdOptsInit() { char *value; bzero(&g_Opt, sizeof(iFuseOpt_t)); g_Opt.directio = true; g_Opt.bufferedFS = true; g_Opt.preload = true; g_Opt.cacheMetadata = true; g_Opt.maxConn = IFUSE_MAX_NUM_CONN; g_Opt.blocksize = IFUSE_BUFFER_CACHE_BLOCK_SIZE; #ifdef USE_CONNREUSE g_Opt.connReuse = true; #else g_Opt.connReuse = false; #endif g_Opt.connTimeoutSec = IFUSE_FREE_CONN_TIMEOUT_SEC; g_Opt.connKeepAliveSec = IFUSE_FREE_CONN_KEEPALIVE_SEC; g_Opt.connCheckIntervalSec = IFUSE_FREE_CONN_CHECK_INTERVAL_SEC; g_Opt.rodsapiTimeoutSec = IFUSE_RODSCLIENTAPI_TIMEOUT_SEC; g_Opt.preloadNumBlocks = IFUSE_PRELOAD_PBLOCK_NUM; g_Opt.metadataCacheTimeoutSec = IFUSE_METADATA_CACHE_TIMEOUT_SEC; // check environmental variables value = getenv("IRODSFS_NOCACHE"); // true/false if(_atob(value)) { g_Opt.bufferedFS = false; g_Opt.preload = false; g_Opt.cacheMetadata = false; } value = getenv("IRODSFS_NOPRELOAD"); // true/false if(_atob(value)) { g_Opt.preload = false; } value = getenv("IRODSFS_NOCACHEMETADATA"); // true/false if(_atob(value)) { g_Opt.cacheMetadata = false; } value = getenv("IRODSFS_MAXCONN"); // number if(value != NULL) { g_Opt.maxConn = atoi(value); } value = getenv("IRODSFS_BLOCKSIZE"); // number if(value != NULL) { g_Opt.blocksize = atoi(value); } value = getenv("IRODSFS_CONNREUSE"); // true/false if(_atob(value)) { g_Opt.connReuse = true; } value = getenv("IRODSFS_NOCONNREUSE"); // true/false if(_atob(value)) { g_Opt.connReuse = false; } value = getenv("IRODSFS_CONNTIMEOUT"); // number if(value != NULL) { g_Opt.connTimeoutSec = atoi(value); } value = getenv("IRODSFS_CONNKEEPALIVE"); // number if(value != NULL) { g_Opt.connKeepAliveSec = atoi(value); } value = getenv("IRODSFS_CONNCHECKINTERVAL"); // number if(value != NULL) { g_Opt.connCheckIntervalSec = atoi(value); } value = getenv("IRODSFS_APITIMEOUT"); // number if(value != NULL) { g_Opt.rodsapiTimeoutSec = atoi(value); } value = getenv("IRODSFS_PRELOADBLOCKS"); // number if(value != NULL) { g_Opt.preloadNumBlocks = atoi(value); } value = getenv("IRODSFS_METADATACACHETIMEOUT"); // number if(value != NULL) { g_Opt.metadataCacheTimeoutSec = atoi(value); } }