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); }
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); }
//----------------------------------------------------------------------------- Profile* ProfileManager::GetDefaultUserProfile(const ProfileDeviceKey& deviceKey) { const char* userName = GetDefaultUser(deviceKey); Profile* profile = GetProfile(deviceKey, userName); if (!profile) { profile = GetDefaultProfile(deviceKey.HmdType); } return profile; }
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); }
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); }