예제 #1
0
const char* ProfileManager::GetDefaultUser(const ProfileDeviceKey& deviceKey)
{
    const char* product_str = deviceKey.ProductName.IsEmpty() ? NULL : deviceKey.ProductName.ToCStr();
    const char* serial_str = deviceKey.PrintedSerial.IsEmpty() ? NULL : deviceKey.PrintedSerial.ToCStr();

    return GetDefaultUser(product_str, serial_str);
}
예제 #2
0
파일: Settings.c 프로젝트: ColumPaget/Alaya
void HandleUserSetup(char *Operation, int argc, char *argv[])
{
 int i, result;
 char *UserName=NULL, *Password=NULL, *PassType=NULL, *HomeDir=NULL, *RealUser=NULL, *Args=NULL;

	if (strcmp(Operation,"del")==0) PassType=CopyStr(PassType,"delete");
	else PassType=CopyStr(PassType,"sha256");
	HomeDir=CopyStr(HomeDir,"/tmp");
	RealUser=CopyStr(RealUser,GetDefaultUser());
	Password=CopyStr(Password,"");
	Args=CopyStr(Args,"");

 for (i=3; i < argc; i++)
 {
	if (strcmp(argv[i],"-e")==0)
	{
		i++;
		if (strcmp(Operation,"del") !=0) PassType=CopyStr(PassType,argv[i]);
	}
	else if (strcmp(argv[i],"-h")==0)
	{
		i++;
		HomeDir=CopyStr(HomeDir,argv[i]);
	}
	else if (strcmp(argv[i],"-u")==0)
	{
		i++;
		RealUser=CopyStr(RealUser,argv[i]);
	}
	else if (strcmp(argv[i],"-a")==0)
	{
		i++;
		Settings.AuthPath=CopyStr(Settings.AuthPath,argv[i]);
	}
	else if (StrLen(UserName)==0) UserName=CopyStr(UserName,argv[i]);
	else if (StrLen(Password)==0) Password=CopyStr(Password,argv[i]);
	else Args=MCatStr(Args,argv[i]," ",NULL);
 }

	if (strcmp(Operation,"list")==0) ListNativeFile(Settings.AuthPath);
	else if (! StrLen(UserName)) printf("ERROR: NO USERNAME GIVEN\n");
	else if ((strcmp(Operation,"add")==0) && (! StrLen(Password))) printf("ERROR: NO PASSWORD GIVEN\n");
	else 
	{
		result=UpdateNativeFile(Settings.AuthPath, UserName, PassType, Password, HomeDir,RealUser, Args);
		if (result==ERR_FILE) printf("ERROR: Cannot open file '%s'\n",Settings.AuthPath);
	}

 DestroyString(UserName);
 DestroyString(Password);
 DestroyString(PassType);
 DestroyString(RealUser);
 DestroyString(HomeDir);
 DestroyString(Args);

	//Always exit when this is done, don't launch webserver
 exit(0);
}
예제 #3
0
//-----------------------------------------------------------------------------
Profile* ProfileManager::GetDefaultUserProfile(const ProfileDeviceKey& deviceKey)
{
	const char* userName = GetDefaultUser(deviceKey);

    Profile* profile = GetProfile(deviceKey, userName);

    if (!profile)
    {
        profile = GetDefaultProfile(deviceKey.HmdType);
    }

    return profile;
}
예제 #4
0
void ParseCommandLineUpdateUser(int argc, char *argv[])
{
int i;
char *Path=NULL, *Type=NULL, *User=NULL, *Pass=NULL, *Dir=NULL, *RealUser=NULL, *Args=NULL;
STREAM *S;

Args=CopyStr(Args,"");
RealUser=CopyStr(RealUser,GetDefaultUser());
Path=CopyStr(Path,"/etc/metaftpd.auth");


if (strcmp(argv[2],"add")==0) Type=CopyStr(Type,"md5");
else if (strcmp(argv[2],"del")==0) Type=CopyStr(Type,"delete");
else if (strcmp(argv[2],"list")==0) Type=CopyStr(Type,"list");
else 
{
	printf("ERROR: -user must have 'add', 'del' or 'list' as it's next argument\n");
	exit(1);
}

for (i=3; i < argc; i++)
{
	if (strcmp(argv[i],"-a")==0) Path=CopyStr(Path,argv[++i]);
	else if (strcmp(argv[i],"-t")==0) Type=CopyStr(Type,argv[++i]);
	else if (strcmp(argv[i],"-e")==0) Type=CopyStr(Type,argv[++i]);
	else if (StrLen(User)==0) User=CopyStr(User,argv[i]);
	else if (StrLen(Pass)==0) Pass=CopyStr(Pass,argv[i]);
	else if (StrLen(Dir)==0) Dir=CopyStr(Dir,argv[i]);
	else Args=MCatStr(Args,argv[i]," ",NULL);
}

if (StrLen(Dir)==0) Dir=CopyStr(Dir,"/tmp");
if (strcmp(Type,"list")==0) 
{
	S=STREAMFromDualFD(0,1);
	ListNativeFile(S,Path);
}
else UpdateNativeFile(Path, User, Type, Pass, Dir, RealUser,Args);

DestroyString(Path);
DestroyString(Type);
DestroyString(User);
DestroyString(RealUser);
DestroyString(Pass);
DestroyString(Args);
DestroyString(Dir);
}
예제 #5
0
파일: Settings.c 프로젝트: ColumPaget/Alaya
void PostProcessSettings(TSettings *Settings)
{
char *Tempstr=NULL, *Token=NULL, *ptr;

if (StrLen(Settings->DefaultUser)==0) Settings->DefaultUser=CopyStr(Settings->DefaultUser,GetDefaultUser());

Tempstr=CopyStr(Tempstr,"");
ptr=GetToken(Settings->HttpMethods,",",&Token,0);
while (ptr)
{
if (strcmp(Token,"BASE")==0) Tempstr=CatStr(Tempstr,"GET,POST,HEAD,OPTIONS,");
else if (strcmp(Token,"DAV")==0) Tempstr=CatStr(Tempstr,"GET,POST,HEAD,OPTIONS,DELETE,MKCOL,MOVE,COPY,PUT,PROPFIND,PROPPATCH,");
else if (strcmp(Token,"PROXY")==0) Tempstr=CatStr(Tempstr,"CONNECT,RGET,RPOST");
else Tempstr=MCatStr(Tempstr,Token,",",NULL);

ptr=GetToken(ptr,",",&Token,0);
}

Settings->HttpMethods=CopyStr(Settings->HttpMethods,Tempstr);

AuthenticateExamineMethods(Settings->AuthMethods, TRUE);

if (Settings->Port < 1)
{
  if (Settings->Flags & FLAG_SSL) Settings->Port=443;
  else Settings->Port=80;
}

DestroyString(Tempstr);
DestroyString(Token);
}