This is FtpHost.m in view mode; [Download] [Up]
#import "FtpHost.h" #import "FtpSession.h" #import "FtpFileSystem.h" #import "Controller.h" #import "NXmystd.h" @implementation FtpHost - initForName:(NXAtom)name; { [super init]; controller = [NXApp delegate]; myname = name; userFileSystemHash = [[HashTable alloc] initKeyDesc:"%"]; usedefaultuser=usedefaultpath=usedefaultlocalpath=TRUE; usedefaultpass=1; myuser = [controller defaultUser]; mypass = [controller defaultPass]; mypath = [controller defaultPath]; mylocalpath = [controller defaultLocalPath]; return self; } - free; { [userFileSystemHash freeObjects]; userFileSystemHash = [userFileSystemHash free]; return [super free]; } - write:(NXTypedStream *)stream; { NXAtom empty = NXUniqueString(""); [[NXApp delegate] savingHost:myname]; [super write:stream]; if ([Object version] != 4) { NXWriteTypes(stream, "%@%%%%cccc", &myname, &userFileSystemHash, &myuser, &mypass, &mypath, &mylocalpath,&usedefaultuser,&usedefaultpass,&usedefaultpath,&usedefaultlocalpath); } else { // for default cache (cache version 4) NXWriteTypes(stream, "%@%%%%", &myname, &userFileSystemHash, &empty,&empty, &mypath,&empty); } return self; } - read:(NXTypedStream *)stream; { [super read:stream]; if ([Object version] >= 6) { NXReadTypes(stream, "%@%%%%cccc", &myname, &userFileSystemHash, &myuser, &mypass, &mypath, &mylocalpath, &usedefaultuser,&usedefaultpass,&usedefaultpath,&usedefaultlocalpath); } else { NXReadTypes(stream,"%@%%%%", &myname, &userFileSystemHash, &myuser, &mypass, &mypath, &mylocalpath); } return self; } - finishUnarchiving; { controller = [NXApp delegate]; if ([Object version] <= 5) { if (myuser&&*myuser&&strcmp(myuser,[controller defaultUser])){usedefaultuser = NO;} else {myuser = [controller defaultUser];usedefaultuser = YES;} if (mypass&&*mypass&&strcmp(mypass,[controller defaultPass])){usedefaultpass = 0;} else {mypass = [controller defaultPass];usedefaultpass = 1;} if (mypath&&*mypath&&strcmp(mypath,[controller defaultPath])){usedefaultpath = NO;} else {mypath = [controller defaultPath];usedefaultpath = YES;} if (mylocalpath&&*mylocalpath&&strcmp(mylocalpath,[controller defaultLocalPath])){usedefaultlocalpath = NO;} else {mylocalpath = [controller defaultLocalPath];usedefaultlocalpath = YES;} } return self; } - startSession; { id session = [[FtpSession alloc] initForHost:self]; return session; } - fileSystemForUser:(NXAtom)user; { id fileSystem; fileSystem = [userFileSystemHash valueForKey:user]; if (!fileSystem) { LOGF("creating filesystem for user %s\n",user); fileSystem = [[FtpFileSystem alloc] initForHost:self andUser:user]; [userFileSystemHash insertKey:user value:fileSystem]; } return fileSystem; } - debugClearFileSystem; { [userFileSystemHash empty]; return self; } - renameTo:(NXAtom) name; { myname = name; return self; } - (NXAtom) name; { return myname; } - (BOOL) useDefaultUser; { return usedefaultuser; } - (char) useDefaultPass; { return usedefaultpass; } - (BOOL) useDefaultPath; { return usedefaultpath; } - (BOOL) useDefaultLocalPath; { return usedefaultlocalpath; } - setUseDefaultUser:(BOOL)flag; { usedefaultuser = flag; return self; } - setUseDefaultPass:(char)flag; { usedefaultpass = flag; return self; } - setUseDefaultPath:(BOOL)flag; { usedefaultpath = flag; return self; } - setUseDefaultLocalPath:(BOOL)flag; { usedefaultlocalpath = flag; return self; } - setUser:(NXAtom)s; { if (s && *s) {myuser = s; usedefaultuser=NO;} else {myuser = [controller defaultUser]; usedefaultuser=YES;} return self; } - setPass:(NXAtom)s; { if (s && *s) {mypass = s; usedefaultpass=0;} else {mypass = [controller defaultPass]; usedefaultpass=1;} return self; } - setPath:(NXAtom)s; { if (s && *s) {mypath = s; usedefaultpath=NO;} else {mypath = [controller defaultPath]; usedefaultpath=YES;} return self; } - setLocalPath:(NXAtom)s; { if (s && *s) {mylocalpath = s; usedefaultlocalpath=NO;} else {mylocalpath = [controller defaultLocalPath]; usedefaultlocalpath=YES;} return self; } - (NXAtom) user; { return usedefaultuser?[controller defaultUser]:myuser; } - (NXAtom) pass; { return usedefaultpass==1?[controller defaultPass]:mypass; } - (NXAtom) path; { return usedefaultpath?[controller defaultPath]:mypath; } - (NXAtom) localPath; { return usedefaultlocalpath?[controller defaultLocalPath]:mylocalpath; } - (NXAtom) realUser; { return myuser; } - (NXAtom) realPass; { return mypass; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.