2009-04-21 01:49:28 +02:00
|
|
|
/*
|
2010-02-28 01:08:10 +01:00
|
|
|
* This file is a part of Winix
|
2009-04-21 01:49:28 +02:00
|
|
|
* and is not publicly distributed
|
|
|
|
*
|
|
|
|
* Copyright (c) 2009, Tomasz Sowa
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#include "mount.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mount::Mount()
|
|
|
|
{
|
2010-01-25 05:52:17 +01:00
|
|
|
type = cms;
|
2009-04-21 01:49:28 +02:00
|
|
|
dir_id = -1;
|
2010-02-19 00:30:22 +01:00
|
|
|
fs = simplefs;
|
2010-01-25 05:52:17 +01:00
|
|
|
|
|
|
|
param.resize(par_none);
|
2009-04-21 01:49:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const char * Mount::TypeToStr()
|
|
|
|
{
|
2010-01-25 05:52:17 +01:00
|
|
|
static char buffer[30];
|
2009-04-21 01:49:28 +02:00
|
|
|
|
|
|
|
switch( type )
|
|
|
|
{
|
|
|
|
case cms:
|
|
|
|
sprintf(buffer, "cms");
|
|
|
|
break;
|
|
|
|
|
|
|
|
case thread:
|
|
|
|
sprintf(buffer, "thread");
|
2009-06-05 22:29:06 +02:00
|
|
|
break;
|
2009-04-21 01:49:28 +02:00
|
|
|
|
2010-01-25 05:52:17 +01:00
|
|
|
case ticket:
|
|
|
|
sprintf(buffer, "ticket");
|
|
|
|
break;
|
|
|
|
|
2009-04-21 01:49:28 +02:00
|
|
|
default:
|
2010-01-25 05:52:17 +01:00
|
|
|
sprintf(buffer, "unknown");
|
2009-04-21 01:49:28 +02:00
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return buffer;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-02-19 00:30:22 +01:00
|
|
|
const char * Mount::FsToStr()
|
|
|
|
{
|
|
|
|
static char buffer[30];
|
|
|
|
|
|
|
|
switch( fs )
|
|
|
|
{
|
|
|
|
case simplefs:
|
|
|
|
sprintf(buffer, "simplefs");
|
|
|
|
break;
|
|
|
|
|
|
|
|
case hashfs:
|
|
|
|
sprintf(buffer, "hashfs");
|
|
|
|
break;
|
|
|
|
|
|
|
|
default:
|
|
|
|
sprintf(buffer, "unknown");
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return buffer;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-01-25 05:52:17 +01:00
|
|
|
|
|
|
|
Mount::ParamCode Mount::ParseParam(const char * param_name)
|
2009-04-21 01:49:28 +02:00
|
|
|
{
|
2010-01-25 05:52:17 +01:00
|
|
|
struct ParName
|
|
|
|
{
|
|
|
|
ParamCode param_code;
|
|
|
|
const char * name;
|
|
|
|
};
|
|
|
|
|
|
|
|
static ParName par_name_tab[] = {
|
|
|
|
{ par_page, "page" },
|
|
|
|
{ par_thread, "thread" },
|
|
|
|
{ par_ticket, "ticket" },
|
|
|
|
{ par_ticket_type, "ticket_type" },
|
|
|
|
{ par_ticket_type_default, "ticket_type_default" },
|
|
|
|
{ par_ticket_status, "ticket_status" },
|
|
|
|
{ par_ticket_status_default, "ticket_status_default" },
|
|
|
|
{ par_ticket_priority, "ticket_priority" },
|
|
|
|
{ par_ticket_priority_default, "ticket_priority_default" },
|
|
|
|
{ par_ticket_category, "ticket_category" },
|
|
|
|
{ par_ticket_category_default, "ticket_category_default" },
|
|
|
|
{ par_ticket_expected, "ticket_expected" },
|
|
|
|
{ par_ticket_expected_default, "ticket_expected_default" },
|
|
|
|
{ par_createthread_on, "createthread_on" },
|
|
|
|
{ par_createticket_on, "createticket_on" },
|
|
|
|
{ par_only_root_remove, "only_root_remove" },
|
|
|
|
{ par_emacs_on, "emacs_on" },
|
2010-02-19 00:30:22 +01:00
|
|
|
{ par_mkdir_on, "mkdir_on" },
|
2010-06-22 01:53:19 +02:00
|
|
|
{ par_app, "app" },
|
|
|
|
{ par_html_template, "html_template" },
|
2010-01-25 05:52:17 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
size_t i, len = sizeof(par_name_tab) / sizeof(ParName);
|
|
|
|
|
|
|
|
for(i=0 ; i<len ; ++i)
|
|
|
|
{
|
|
|
|
if( strcmp(par_name_tab[i].name, param_name) == 0 )
|
|
|
|
return par_name_tab[i].param_code;
|
|
|
|
}
|
2009-04-21 01:49:28 +02:00
|
|
|
|
2010-01-25 05:52:17 +01:00
|
|
|
return par_none;
|
2009-04-21 01:49:28 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-01-25 05:52:17 +01:00
|
|
|
|
|
|
|
void Mount::ClearParams()
|
2009-04-21 01:49:28 +02:00
|
|
|
{
|
2010-01-25 05:52:17 +01:00
|
|
|
size_t i;
|
|
|
|
|
|
|
|
for(i=0 ; i<param.size() ; ++i)
|
|
|
|
param[i].Clear();
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool Mount::IsPar(Mount::ParamCode code)
|
|
|
|
{
|
|
|
|
if( !param[code].defined )
|
2009-06-05 22:29:06 +02:00
|
|
|
return false;
|
2010-01-25 05:52:17 +01:00
|
|
|
|
2009-06-05 22:29:06 +02:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-01-25 05:52:17 +01:00
|
|
|
|
|
|
|
bool Mount::IsArg(Mount::ParamCode code, const char * arg)
|
2009-06-05 22:29:06 +02:00
|
|
|
{
|
2010-01-25 05:52:17 +01:00
|
|
|
ParamArg::iterator i;
|
|
|
|
|
|
|
|
if( !param[code].defined )
|
2009-04-21 01:49:28 +02:00
|
|
|
return false;
|
2010-01-25 05:52:17 +01:00
|
|
|
|
|
|
|
for(i=param[code].arg.begin() ; i!=param[code].arg.end() ; ++i)
|
|
|
|
{
|
|
|
|
if( *i == arg )
|
|
|
|
return true;
|
2009-06-05 22:29:06 +02:00
|
|
|
}
|
|
|
|
|
2010-01-25 05:52:17 +01:00
|
|
|
return false;
|
2009-04-21 01:49:28 +02:00
|
|
|
}
|
2009-06-05 22:29:06 +02:00
|
|
|
|
|
|
|
|
2010-01-25 05:52:17 +01:00
|
|
|
bool Mount::IsArg(Mount::ParamCode code, const std::string & arg)
|
2009-06-05 22:29:06 +02:00
|
|
|
{
|
2010-01-25 05:52:17 +01:00
|
|
|
return IsArg(code, arg.c_str());
|
2009-06-05 22:29:06 +02:00
|
|
|
}
|
2010-01-25 05:52:17 +01:00
|
|
|
|
|
|
|
|
|
|
|
bool Mount::IsArg(Mount::ParamCode code, int arg)
|
|
|
|
{
|
|
|
|
ParamArg::iterator i;
|
|
|
|
|
|
|
|
if( !param[code].defined )
|
|
|
|
return false;
|
|
|
|
|
|
|
|
for(i=param[code].arg.begin() ; i!=param[code].arg.end() ; ++i)
|
|
|
|
{
|
|
|
|
if( atoi(i->c_str()) == arg )
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2010-06-22 01:53:19 +02:00
|
|
|
|
|
|
|
const std::string * Mount::HtmlTemplate() const
|
|
|
|
{
|
|
|
|
if( !param[par_html_template].defined )
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
if( param[par_html_template].arg.size() != 1 )
|
|
|
|
return 0;
|
|
|
|
|
|
|
|
return & param[par_html_template].arg[0];
|
|
|
|
}
|
|
|
|
|