Author: stippi Date: 2010-01-14 22:56:16 +0100 (Thu, 14 Jan 2010) New Revision: 35081 Changeset: http://dev.haiku-os.org/changeset/35081/haiku Added: haiku/trunk/src/add-ons/kernel/file_systems/netfs/ haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationPanel.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/DebugSupport.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/SLList.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/DebugSupport.cpp Removed: haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationPanel.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/KMessage.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/KMessage.cpp Modified: haiku/trunk/src/add-ons/kernel/file_systems/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/netfs/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationServer.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationServer.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/AuthenticationServer.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ExtendedServerInfo.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ExtendedServerInfo.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryIterator.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryIterator.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryManager.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/RootVolume.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ServerConnection.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ServerConnection.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ServerConnectionProvider.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ServerConnectionProvider.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ServerManager.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ServerQueryIterator.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ServerQueryIterator.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ServerVolume.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ShareAttrDir.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ShareAttrDir.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ShareAttrDirIterator.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ShareAttrDirIterator.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ShareNode.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ShareNode.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ShareVolume.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/VirtualDir.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/VirtualDir.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/VirtualVolume.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/Volume.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/Volume.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/VolumeEvent.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/VolumeEvent.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/VolumeManager.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/VolumeSupport.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/netfs.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/fs/netfs_ioctl.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/BlockingQueue.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/FSObject.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/NetAddress.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/Request.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/RequestUnflattener.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/Requests.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/ServerInfo.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/TaskManager.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/headers/shared/Utils.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/netfs_config/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/netfs/netfs_config/netfs_config.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/netfs_server_prefs/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/AttributeDirectory.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/AttributeDirectory.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/ClientConnection.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/ClientVolume.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/ClientVolume.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/ConnectionListenerFactory.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Directory.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Directory.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Entry.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Entry.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/EntryRef.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/FDManager.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/FDManager.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/GlobalBlockerPool.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/InsecureConnectionListener.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Jamfile haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Lockable.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Lockable.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/NetFSServer.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Node.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Node.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/NodeHandle.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/NodeHandle.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/NodeHandleMap.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/NodeMonitor.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/NodeMonitoringEvent.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/NodeMonitoringEvent.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Path.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/PortConnectionListener.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/QueryDomain.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/SecurityContext.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/SecurityContext.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/StatisticsManager.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/UserSecurityContext.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/Volume.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/VolumeManager.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/server/VolumeManager.h haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/AbstractConnection.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/Blocker.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/BlockerPool.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/ConnectionFactory.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/FSObject.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/InsecureChannel.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/InsecureConnection.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/NetAddress.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/NodeInfo.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/PortChannel.cpp haiku/trunk/src/add-ons/kernel/file_systems/netfs/shared/PortConnection.cpp [... truncated: 10 changed files follow ...] Log: Copied Ingo's netfs from the dark pit in which it was forgotten to something more visible and ported it to the current UserlandFS server (and GCC4). It still uses the R5 file system API, which the UserlandFS conveniently still provides support for. It compiles and links, but is otherwise still untested. The changes I am alsmost confident that I didn't change any semantics. That is unless HashMap, HashString and DoublyLinkedList work differently enough to make any of the netfs code break. Modified: haiku/trunk/src/add-ons/kernel/file_systems/Jamfile =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/Jamfile 2010-01-14 21:51:48 UTC (rev 35080) +++ haiku/trunk/src/add-ons/kernel/file_systems/Jamfile 2010-01-14 21:56:16 UTC (rev 35081) @@ -6,6 +6,7 @@ SubInclude HAIKU_TOP src add-ons kernel file_systems fat ; SubInclude HAIKU_TOP src add-ons kernel file_systems googlefs ; SubInclude HAIKU_TOP src add-ons kernel file_systems iso9660 ; +SubInclude HAIKU_TOP src add-ons kernel file_systems netfs ; SubInclude HAIKU_TOP src add-ons kernel file_systems nfs ; SubInclude HAIKU_TOP src add-ons kernel file_systems ntfs ; SubInclude HAIKU_TOP src add-ons kernel file_systems packagefs ; Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/Jamfile =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/Jamfile 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/Jamfile 2010-01-14 21:56:16 UTC (rev 35081) @@ -1,13 +1,8 @@ -SubDir HAIKU_TOP src tests add-ons kernel file_systems userlandfs r5 src test - netfs ; +SubDir HAIKU_TOP src add-ons kernel file_systems netfs ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems userlandfs r5 src - test netfs authentication_server ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems userlandfs r5 src - test netfs client ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems userlandfs r5 src - test netfs netfs_config ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems userlandfs r5 src - test netfs netfs_server_prefs ; -SubInclude HAIKU_TOP src tests add-ons kernel file_systems userlandfs r5 src - test netfs server ; +SubInclude HAIKU_TOP src add-ons kernel file_systems netfs + authentication_server ; +SubInclude HAIKU_TOP src add-ons kernel file_systems netfs client ; +SubInclude HAIKU_TOP src add-ons kernel file_systems netfs netfs_config ; +SubInclude HAIKU_TOP src add-ons kernel file_systems netfs netfs_server_prefs ; +SubInclude HAIKU_TOP src add-ons kernel file_systems netfs server ; Copied: haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationPanel.cpp (from rev 35043, haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/authentication_server/AuthenticationPanel.cpp) =================================================================== --- haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationPanel.cpp (rev 0) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationPanel.cpp 2010-01-14 21:56:16 UTC (rev 35081) @@ -0,0 +1,238 @@ +// AuthenticationPanel.cpp + +#include <stdio.h> + +#include <Screen.h> + +#include <Box.h> +#include <Button.h> +#include <CheckBox.h> +#include <Message.h> +#include <String.h> +#include <StringView.h> +#include <TextControl.h> + +#include "AuthenticationPanel.h" + +enum { + MSG_PANEL_OK, + MSG_PANEL_CANCEL, +}; + +// constructor +AuthenticationPanel::AuthenticationPanel(BRect frame) + : Panel(frame, "Name Panel", + B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, + B_ASYNCHRONOUS_CONTROLS | B_NOT_RESIZABLE | B_NOT_ZOOMABLE), + fCancelled(false), + fExitSem(B_ERROR) +{ + fExitSem = create_sem(0, "Authentication Panel"); + + BRect controlFrame(0.0, 0.0, frame.Width(), 15.0); + + fNameTC = new BTextControl(controlFrame, "name", "Username", "", NULL, + B_FOLLOW_LEFT | B_FOLLOW_RIGHT); + + fPassTC = new BTextControl(controlFrame, "pass", "Password", "", NULL, + B_FOLLOW_LEFT | B_FOLLOW_RIGHT); + + fKeepUsingCB = new BCheckBox(controlFrame, "again", + "Use login for all shares of this host", + NULL, B_FOLLOW_LEFT | B_FOLLOW_RIGHT); + + BRect buttonFrame(0.0, 0.0, 20.0, 15.0); + fOkB = new BButton(buttonFrame, "ok", "OK", + new BMessage(MSG_PANEL_OK)); + fCancelB = new BButton(buttonFrame, "cancel", "Cancel", + new BMessage(MSG_PANEL_CANCEL)); + +} + +// destructor +AuthenticationPanel::~AuthenticationPanel() +{ + delete_sem(fExitSem); +} + +// QuitRequested +bool +AuthenticationPanel::QuitRequested() +{ + fCancelled = true; + release_sem(fExitSem); + return false; +} + +// MessageReceived +void +AuthenticationPanel::MessageReceived(BMessage* message) +{ + switch (message->what) { + case MSG_PANEL_CANCEL: + Cancel(); + break; + case MSG_PANEL_OK: { + release_sem(fExitSem); + break; + } + default: + Panel::MessageReceived(message); + } +} + +// GetAuthentication +bool +AuthenticationPanel::GetAuthentication(const char* server, + const char* share, + const char* previousUser, + const char* previousPass, + bool previousKeep, + bool badPassword, + char* user, char* pass, bool* keep) +{ + // configure panel and layout controls + BString helper("Enter login for: "); + helper << (server ? server : "<unkown host>") << "/"; + helper << (share ? share : "<unkown share>"); + + // ignore the previous password, if it didn't work + if (badPassword) + previousPass = NULL; + + SetTitle(helper.String()); + + BPoint offset(0.0, 5.0); + + fNameTC->SetText(previousUser ? previousUser : ""); + fNameTC->ResizeToPreferred(); + fNameTC->MoveTo(BPoint(10.0, 10.0)); + + fPassTC->SetText(previousPass ? previousPass : ""); + fPassTC->ResizeToPreferred(); + fPassTC->MoveTo(fNameTC->Frame().LeftBottom() + offset); + + fKeepUsingCB->SetValue(previousKeep); + fKeepUsingCB->ResizeToPreferred(); + fKeepUsingCB->MoveTo(fPassTC->Frame().LeftBottom() + offset); + + fCancelB->ResizeToPreferred(); + + fOkB->ResizeToPreferred(); + fOkB->MoveTo(fKeepUsingCB->Frame().RightBottom() + offset + offset - fOkB->Frame().RightTop()); + + fCancelB->MoveTo(fOkB->Frame().LeftTop() - BPoint(10.0, 0.0) - fCancelB->Frame().RightTop()); + + BRect frame(fNameTC->Frame().LeftTop(), fOkB->Frame().RightBottom()); + + // work arround buggy BTextControl resizing + BRect nameFrame = fNameTC->Frame(); + BRect passFrame = fPassTC->Frame(); + + nameFrame.right = nameFrame.left + frame.Width(); + passFrame.right = passFrame.left + frame.Width(); + + float divider = fNameTC->Divider(); + + if (fPassTC->Divider() > divider) + divider = fPassTC->Divider(); + + delete fNameTC; + fNameTC = new BTextControl(nameFrame, "name", "Username", "", NULL, + B_FOLLOW_LEFT | B_FOLLOW_RIGHT); + fNameTC->SetText(previousUser ? previousUser : ""); + + delete fPassTC; + fPassTC = new BTextControl(passFrame, "pass", "Password", "", NULL, + B_FOLLOW_LEFT | B_FOLLOW_RIGHT); + + fPassTC->TextView()->HideTyping(true); + fPassTC->SetText(previousPass ? previousPass : ""); + + fNameTC->SetDivider(divider); + fPassTC->SetDivider(divider); + + + // create background view + frame.InsetBy(-10.0, -10.0); + + BBox* bg = new BBox(frame, "bg", B_FOLLOW_ALL, + B_FRAME_EVENTS | B_WILL_DRAW | B_NAVIGABLE_JUMP, + B_PLAIN_BORDER); + + bg->AddChild(fNameTC); + bg->AddChild(fPassTC); + bg->AddChild(fKeepUsingCB); + + bg->AddChild(fOkB); + bg->AddChild(fCancelB); + + frame.OffsetTo(-10000.0, -10000.0); + frame = _CalculateFrame(frame); + MoveTo(frame.LeftTop()); + ResizeTo(frame.Width(), frame.Height()); + + AddChild(bg); + SetDefaultButton(fOkB); + fNameTC->MakeFocus(true); + + // start window thread + Show(); + + // let the window jitter, if the previous password was invalid + if (badPassword) { + BPoint leftTop = Frame().LeftTop(); + const float jitterOffsets[] = { -10, 0, 10, 0 }; + const int32 jitterOffsetCount = sizeof(jitterOffsets) / sizeof(float); + for (int32 i = 0; i < 30; i++) { + float offset = jitterOffsets[i % jitterOffsetCount]; + MoveTo(leftTop.x + offset, leftTop.y); + snooze(10000); + } + MoveTo(leftTop); + } + + // block calling thread + acquire_sem(fExitSem); + + // window wants to quit + Lock(); + + sprintf(user, fNameTC->Text()); + sprintf(pass, fPassTC->Text()); + *keep = fKeepUsingCB->Value() == B_CONTROL_ON; + + Quit(); + return fCancelled; +} + +// Cancel +void +AuthenticationPanel::Cancel() +{ + fCancelled = true; +// release_sem(fExitSem); + + Panel::Cancel(); +} + + +// _CalculateFrame +BRect +AuthenticationPanel::_CalculateFrame(BRect frame) +{ + BScreen screen(B_MAIN_SCREEN_ID); + BRect screenFrame = screen.Frame(); + if (!screenFrame.Contains(frame)) { + float width = frame.Width(); + float height = frame.Height(); + BPoint center; + center.x = screenFrame.left + screenFrame.Width() / 2.0; + center.y = screenFrame.top + screenFrame.Height() / 4.0; + frame.left = center.x - width / 2.0; + frame.right = frame.left + width; + frame.top = center.y - height / 2.0; + frame.bottom = frame.top + height; + } + return frame; +} Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationServer.cpp =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/authentication_server/AuthenticationServer.cpp 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationServer.cpp 2010-01-14 21:56:16 UTC (rev 35081) @@ -1,14 +1,19 @@ // AuthenticationServer.cpp +#include "AuthenticationServer.h" + +#include <new> + +#include <HashMap.h> +#include <HashString.h> +#include <util/KMessage.h> + #include "AuthenticationPanel.h" -#include "AuthenticationServer.h" #include "AuthenticationServerDefs.h" -#include "Debug.h" -#include "HashMap.h" -#include "KMessage.h" -#include "String.h" +#include "DebugSupport.h" #include "TaskManager.h" + // Authentication class AuthenticationServer::Authentication { public: @@ -47,8 +52,8 @@ } private: - String fUser; - String fPassword; + HashString fUser; + HashString fPassword; }; // ServerKey @@ -95,8 +100,8 @@ } private: - String fContext; - String fServer; + HashString fContext; + HashString fServer; }; // ServerEntry @@ -146,7 +151,7 @@ if (authentication) return authentication->SetTo(user, password); // the entry does not exist yet: create and add a new one - authentication = new(nothrow) Authentication; + authentication = new(std::nothrow) Authentication; if (!authentication) return B_NO_MEMORY; status_t error = authentication->SetTo(user, password); @@ -163,7 +168,7 @@ } private: - typedef HashMap<String, Authentication*> AuthenticationMap; + typedef HashMap<HashString, Authentication*> AuthenticationMap; Authentication fDefaultAuthentication; bool fUseDefaultAuthentication; @@ -200,11 +205,11 @@ char user[B_OS_NAME_LENGTH]; char password[B_OS_NAME_LENGTH]; bool keep = true; - fPanel = new(nothrow) AuthenticationPanel(); + fPanel = new(std::nothrow) AuthenticationPanel(); status_t error = (fPanel ? B_OK : B_NO_MEMORY); bool cancelled = false; - String defaultUser; - String defaultPassword; + HashString defaultUser; + HashString defaultPassword; fAuthenticationServer->_GetAuthentication(fContext.GetString(), fServer.GetString(), NULL, &defaultUser, &defaultPassword); if (error == B_OK) { @@ -239,9 +244,9 @@ private: AuthenticationServer* fAuthenticationServer; - String fContext; - String fServer; - String fShare; + HashString fContext; + HashString fServer; + HashString fShare; bool fBadPassword; port_id fReplyPort; int32 fReplyToken; @@ -283,7 +288,7 @@ AuthenticationServer::Init() { // create the server entry map - fServerEntries = new(nothrow) ServerEntryMap; + fServerEntries = new(std::nothrow) ServerEntryMap; if (!fServerEntries) return B_NO_MEMORY; status_t error = fServerEntries->InitCheck(); @@ -332,26 +337,26 @@ request.FindBool("badPassword", &badPassword); if (!context || !server || !share) continue; - String foundUser; - String foundPassword; + HashString foundUser; + HashString foundPassword; if (!badPassword && _GetAuthentication(context, server, share, &foundUser, &foundPassword)) { _SendRequestReply(request.ReplyPort(), request.ReplyToken(), error, false, foundUser.GetString(), foundPassword.GetString()); } else { // we need to ask the user: create a task that does it - UserDialogTask* task = new(nothrow) UserDialogTask(this, context, - server, share, badPassword, request.ReplyPort(), + UserDialogTask* task = new(std::nothrow) UserDialogTask(this, + context, server, share, badPassword, request.ReplyPort(), request.ReplyToken()); if (!task) { - ERROR(("AuthenticationServer::_RequestThread(): ERROR: " - "failed to allocate ")); + ERROR("AuthenticationServer::_RequestThread(): ERROR: " + "failed to allocate "); continue; } status_t error = taskManager.RunTask(task); if (error != B_OK) { - ERROR(("AuthenticationServer::_RequestThread(): Failed to " - "start server info task: %s\n", strerror(error))); + ERROR("AuthenticationServer::_RequestThread(): Failed to " + "start server info task: %s\n", strerror(error)); continue; } } @@ -365,12 +370,13 @@ */ bool AuthenticationServer::_GetAuthentication(const char* context, - const char* server, const char* share, String* user, String* password) + const char* server, const char* share, HashString* user, + HashString* password) { if (!context || !server || !user || !password) return B_BAD_VALUE; // get the server entry - AutoLocker<Locker> _(fLock); + AutoLocker<BLocker> _(fLock); ServerKey key(context, server); ServerEntry* serverEntry = fServerEntries->Get(key); if (!serverEntry) @@ -395,13 +401,13 @@ const char* server, const char* share, const char* user, const char* password, bool makeDefault) { - AutoLocker<Locker> _(fLock); + AutoLocker<BLocker> _(fLock); ServerKey key(context, server); // get the server entry ServerEntry* serverEntry = fServerEntries->Get(key); if (!serverEntry) { // server entry does not exist yet: create a new one - serverEntry = new(nothrow) ServerEntry; + serverEntry = new(std::nothrow) ServerEntry; if (!serverEntry) return B_NO_MEMORY; status_t error = fServerEntries->Put(key, serverEntry); Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationServer.h =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/authentication_server/AuthenticationServer.h 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/AuthenticationServer.h 2010-01-14 21:56:16 UTC (rev 35081) @@ -4,9 +4,9 @@ #define NETFS_AUTHENTICATION_SERVER_H #include <Application.h> +#include <Locker.h> -#include "Locker.h" -#include "String.h" +#include "HashString.h" class AuthenticationServer : public BApplication { public: @@ -20,7 +20,7 @@ bool _GetAuthentication(const char* context, const char* server, const char* share, - String* user, String* password); + HashString* user, HashString* password); status_t _AddAuthentication(const char* context, const char* server, const char* share, const char* user, const char* password, @@ -38,7 +38,7 @@ class UserDialogTask; friend class UserDialogTask; - Locker fLock; + BLocker fLock; port_id fRequestPort; thread_id fRequestThread; ServerEntryMap* fServerEntries; Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/Jamfile =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/authentication_server/Jamfile 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/authentication_server/Jamfile 2010-01-14 21:56:16 UTC (rev 35081) @@ -1,35 +1,24 @@ -SubDir HAIKU_TOP src tests add-ons kernel file_systems userlandfs r5 src test - netfs authentication_server ; +SubDir HAIKU_TOP src add-ons kernel file_systems netfs authentication_server ; -SetSubDirSupportedPlatforms r5 bone dano ; +UsePrivateHeaders shared ; +UsePrivateKernelHeaders ; -local userlandFSTop = [ FDirName $(HAIKU_TOP) src tests add-ons kernel - file_systems userlandfs r5 ] ; -local userlandFSIncludes = [ FDirName $(userlandFSTop) headers ] ; +SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) headers authentication_server ] ; +SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) headers shared ] ; -SubDirHdrs [ FDirName $(userlandFSIncludes) shared ] ; -SubDirHdrs [ FDirName $(userlandFSTop) src test netfs headers - authentication_server ] ; -SubDirHdrs [ FDirName $(userlandFSTop) src test netfs headers shared ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; -SEARCH_SOURCE += [ FDirName $(userlandFSTop) src shared ] ; -SEARCH_SOURCE += [ FDirName $(userlandFSTop) src test netfs shared ] ; - DEFINES += USER=1 ; DEFINES += DEBUG_APP="\\\"AuthenticationServer\\\"" ; -Application <test>AuthenticationServer - : Debug.cpp - Locker.cpp -# Referencable.cpp - String.cpp +Application AuthenticationServer + : DebugSupport.cpp AuthenticationServerDefs.cpp - KMessage.cpp TaskManager.cpp AuthenticationPanel.cpp AuthenticationServer.cpp Panel.cpp - : be + : be $(TARGET_LIBSUPC++) libshared.a ; Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/AuthenticationServer.cpp =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/client/AuthenticationServer.cpp 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/AuthenticationServer.cpp 2010-01-14 21:56:16 UTC (rev 35081) @@ -1,9 +1,13 @@ // AuthenticationServer.cpp #include "AuthenticationServer.h" + +#include <string.h> + +#include <util/KMessage.h> + #include "AuthenticationServerDefs.h" #include "Compatibility.h" -#include "KMessage.h" // constructor AuthenticationServer::AuthenticationServer() @@ -72,7 +76,7 @@ *_cancelled = cancelled; if (cancelled) return B_OK; - // user/password + // user/password const char* foundUser = NULL; const char* foundPassword = NULL; if (reply.FindString("user", &foundUser) != B_OK Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ExtendedServerInfo.cpp =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/client/ExtendedServerInfo.cpp 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ExtendedServerInfo.cpp 2010-01-14 21:56:16 UTC (rev 35081) @@ -5,8 +5,9 @@ // constructor ExtendedShareInfo::ExtendedShareInfo() - : Referencable(true), - fShareName() + : + BReferenceable(true), + fShareName() { } @@ -33,9 +34,10 @@ // constructor ExtendedServerInfo::ExtendedServerInfo(const NetAddress& address) - : Referencable(true), - fAddress(address), - fState(0) + : + BReferenceable(true), + fAddress(address), + fState(0) { } @@ -47,7 +49,7 @@ ShareInfoAt(i)->RemoveReference(); } -// GetAddress +// GetAddress const NetAddress& ExtendedServerInfo::GetAddress() const { @@ -104,7 +106,7 @@ return B_BAD_VALUE; // set name and connection method const char* name = serverInfo->GetServerName(); - String addressString; + HashString addressString; if (!name || strlen(name) == 0) { status_t error = fAddress.GetString(&addressString, false); if (error != B_OK) @@ -144,7 +146,7 @@ status_t ExtendedServerInfo::_AddShare(const ShareInfo* info) { - ExtendedShareInfo* extendedInfo = new(nothrow) ExtendedShareInfo; + ExtendedShareInfo* extendedInfo = new(std::nothrow) ExtendedShareInfo; if (!extendedInfo) return B_NO_MEMORY; status_t error = extendedInfo->SetTo(info); Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ExtendedServerInfo.h =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/client/ExtendedServerInfo.h 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/ExtendedServerInfo.h 2010-01-14 21:56:16 UTC (rev 35081) @@ -3,16 +3,17 @@ #ifndef NET_FS_EXTENDED_SERVER_INFO_H #define NET_FS_EXTENDED_SERVER_INFO_H +#include <HashString.h> +#include <Referenceable.h> + #include "NetAddress.h" -#include "String.h" -#include "Referencable.h" #include "Vector.h" class ServerInfo; class ShareInfo; // ExtendedShareInfo -class ExtendedShareInfo : public Referencable { +class ExtendedShareInfo : public BReferenceable { public: ExtendedShareInfo(); @@ -21,11 +22,11 @@ const char* GetShareName() const; private: - String fShareName; + HashString fShareName; }; // ExtendedServerInfo -class ExtendedServerInfo : public Referencable { +class ExtendedServerInfo : public BReferenceable { public: ExtendedServerInfo(const NetAddress& address); ~ExtendedServerInfo(); @@ -49,8 +50,8 @@ private: NetAddress fAddress; - String fServerName; - String fConnectionMethod; + HashString fServerName; + HashString fConnectionMethod; Vector<ExtendedShareInfo*> fShareInfos; uint32 fState; }; Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/Jamfile =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/client/Jamfile 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/Jamfile 2010-01-14 21:56:16 UTC (rev 35081) @@ -1,22 +1,23 @@ -SubDir HAIKU_TOP src tests add-ons kernel file_systems userlandfs r5 src test - netfs client ; +SubDir HAIKU_TOP src add-ons kernel file_systems netfs client ; -SetSubDirSupportedPlatforms r5 bone dano ; +UsePrivateHeaders shared ; +UsePrivateKernelHeaders ; -local userlandFSTop = [ FDirName $(HAIKU_TOP) src tests add-ons kernel - file_systems userlandfs r5 ] ; -local userlandFSIncludes = [ FDirName $(userlandFSTop) headers ] ; +local userlandFSIncludes = [ FDirName $(HAIKU_TOP) headers private + userlandfs ] ; +SubDirSysHdrs [ FDirName $(userlandFSIncludes) legacy ] ; SubDirSysHdrs [ FDirName $(userlandFSIncludes) public ] ; SubDirHdrs [ FDirName $(userlandFSIncludes) shared ] ; -SubDirHdrs [ FDirName $(userlandFSTop) src test netfs headers - authentication_server ] ; -SubDirHdrs [ FDirName $(userlandFSTop) src test netfs headers fs ] ; -SubDirHdrs [ FDirName $(userlandFSTop) src test netfs headers shared ] ; -SEARCH_SOURCE += [ FDirName $(userlandFSTop) src shared ] ; -SEARCH_SOURCE += [ FDirName $(userlandFSTop) src test netfs shared ] ; +SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) headers authentication_server ] ; +SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) headers fs ] ; +SubDirHdrs [ FDirName $(SUBDIR) $(DOTDOT) headers shared ] ; +SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) shared ] ; +SEARCH_SOURCE += [ FDirName $(HAIKU_TOP) src add-ons kernel file_systems + userlandfs shared ] ; + DEFINES += USER=1 ; DEFINES += DEBUG_APP="\\\"netfs\\\"" ; @@ -27,10 +28,10 @@ } Addon <test>netfs - : Debug.cpp - Locker.cpp + : DebugSupport.cpp +# Locker.cpp ObjectTracker.cpp - Referencable.cpp +# Referencable.cpp AbstractConnection.cpp AttrDirInfo.cpp @@ -44,7 +45,7 @@ FSObject.cpp InsecureChannel.cpp InsecureConnection.cpp - KMessage.cpp +# KMessage.cpp NetAddress.cpp NetFSDefs.cpp NodeInfo.cpp @@ -86,6 +87,6 @@ VolumeEvent.cpp VolumeManager.cpp - : <test>UserlandFSServer - $(TARGET_NETWORK_LIBS) + : be libuserlandfs_beos_kernel.so + $(TARGET_NETWORK_LIBS) $(TARGET_LIBSUPC++) libshared.a ; Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryIterator.cpp =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/client/QueryIterator.cpp 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryIterator.cpp 2010-01-14 21:56:16 UTC (rev 35081) @@ -4,10 +4,11 @@ // constructor QueryIterator::QueryIterator(Volume* volume) - : Referencable(false), - fVolume(volume), - fParentIterator(NULL), - fVolumeLink() + : + BReferenceable(false), + fVolume(volume), + fParentIterator(NULL), + fVolumeLink() { } @@ -83,7 +84,7 @@ void HierarchicalQueryIterator::RewindSubIterator() { - fCurrentSubIterator = fSubIterators.GetFirst(); + fCurrentSubIterator = fSubIterators.First(); } // AddSubIterator @@ -115,9 +116,9 @@ // RemoveAllSubIterators void HierarchicalQueryIterator::RemoveAllSubIterators( - DLList<QueryIterator>& subIterators) + DoublyLinkedList<QueryIterator>& subIterators) { - while (QueryIterator* iterator = fSubIterators.GetFirst()) { + while (QueryIterator* iterator = fSubIterators.First()) { RemoveSubIterator(iterator); subIterators.Insert(iterator); } Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryIterator.h =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/client/QueryIterator.h 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryIterator.h 2010-01-14 21:56:16 UTC (rev 35081) @@ -3,15 +3,15 @@ #ifndef NET_FS_QUERY_ITERATOR_H #define NET_FS_QUERY_ITERATOR_H -#include "DLList.h" -#include "Referencable.h" +#include <Referenceable.h> +#include <util/DoublyLinkedList.h> class HierarchicalQueryIterator; class Volume; // QueryIterator -class QueryIterator : public Referencable, - public DLListLinkImpl<QueryIterator> { +class QueryIterator : public BReferenceable, + public DoublyLinkedListLinkImpl<QueryIterator> { public: QueryIterator(Volume* volume); virtual ~QueryIterator(); @@ -32,7 +32,7 @@ private: Volume* fVolume; HierarchicalQueryIterator* fParentIterator; - DLListLink<QueryIterator> fVolumeLink; + DoublyLinkedListLink<QueryIterator> fVolumeLink; }; // HierarchicalQueryIterator @@ -47,21 +47,23 @@ void AddSubIterator(QueryIterator* subIterator); void RemoveSubIterator(QueryIterator* subIterator); void RemoveAllSubIterators( - DLList<QueryIterator>& subIterators); + DoublyLinkedList<QueryIterator>& + subIterators); private: - DLList<QueryIterator> fSubIterators; + DoublyLinkedList<QueryIterator> fSubIterators; QueryIterator* fCurrentSubIterator; }; // GetVolumeLink struct QueryIterator::GetVolumeLink { - DLListLink<QueryIterator>* operator()(QueryIterator* iterator) const + DoublyLinkedListLink<QueryIterator>* operator()( + QueryIterator* iterator) const { return &iterator->fVolumeLink; } - const DLListLink<QueryIterator>* operator()( + const DoublyLinkedListLink<QueryIterator>* operator()( const QueryIterator* iterator) const { return &iterator->fVolumeLink; Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryManager.cpp =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/client/QueryManager.cpp 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/QueryManager.cpp 2010-01-14 21:56:16 UTC (rev 35081) @@ -4,15 +4,17 @@ #include <fsproto.h> -#include "AutoLocker.h" -#include "Debug.h" -#include "HashMap.h" +#include <AutoLocker.h> +#include <HashMap.h> + +#include "DebugSupport.h" #include "Locker.h" #include "QueryManager.h" #include "Volume.h" #include "VolumeManager.h" -typedef DLList<QueryIterator, QueryIterator::GetVolumeLink> IteratorList; +typedef DoublyLinkedList<QueryIterator, QueryIterator::GetVolumeLink> + IteratorList; // IteratorMap struct QueryManager::IteratorMap : HashMap<HashKey64<vnode_id>, IteratorList*> { @@ -47,7 +49,7 @@ return fLock.Sem(); // allocate iterator map - fIterators = new(nothrow) IteratorMap; + fIterators = new(std::nothrow) IteratorMap; if (!fIterators) return B_NO_MEMORY; status_t error = fIterators->InitCheck(); @@ -71,7 +73,7 @@ IteratorList* iteratorList = fIterators->Get(nodeID); if (!iteratorList) { // no list yet: create one - iteratorList = new(nothrow) IteratorList; + iteratorList = new(std::nothrow) IteratorList; if (!iteratorList) return B_NO_MEMORY; @@ -174,7 +176,7 @@ // last reference removed: remove the iterator // remove its subiterators (if any) - DLList<QueryIterator> subIterators; + DoublyLinkedList<QueryIterator> subIterators; if (HierarchicalQueryIterator* hIterator = dynamic_cast<HierarchicalQueryIterator*>(iterator)) { hIterator->RemoveAllSubIterators(subIterators); @@ -193,13 +195,13 @@ iteratorList->Remove(iterator); // if the list is empty, remove it completely - if (!iteratorList->GetFirst()) { + if (!iteratorList->First()) { fIterators->Remove(nodeID); delete iteratorList; } } else { - ERROR(("QueryManager::PutIterator(): ERROR: No iterator list " - "for volume %p!\n", iterator->GetVolume())); + ERROR("QueryManager::PutIterator(): ERROR: No iterator list " + "for volume %p!\n", iterator->GetVolume()); } // free the iterator and surrender its volume reference @@ -209,7 +211,7 @@ volume->PutVolume(); // put the subiterators - while (QueryIterator* subIterator = subIterators.GetFirst()) { + while (QueryIterator* subIterator = subIterators.First()) { subIterators.Remove(subIterator); PutIterator(subIterator); } @@ -228,12 +230,12 @@ vnode_id nodeID = volume->GetRootID(); IteratorList iterators; - DLList<QueryIterator> subIterators; + DoublyLinkedList<QueryIterator> subIterators; AutoLocker<Locker> locker(fLock); if (IteratorList* iteratorList = fIterators->Get(nodeID)) { // Unset the parent of all iterators and remove one reference. // If the iterators are unreference, remove them. - QueryIterator* iterator = iteratorList->GetFirst(); + QueryIterator* iterator = iteratorList->First(); while (iterator) { QueryIterator* nextIterator = iteratorList->GetNext(iterator); @@ -259,7 +261,7 @@ } // if the list is empty now, remove it completely - if (!iteratorList->GetFirst()) { + if (!iteratorList->First()) { fIterators->Remove(nodeID); delete iteratorList; } @@ -267,14 +269,14 @@ // free the iterators we have removed and surrender their volume // references locker.Unlock(); - while (QueryIterator* iterator = iterators.GetFirst()) { + while (QueryIterator* iterator = iterators.First()) { iterators.Remove(iterator); volume->FreeQueryIterator(iterator); volume->PutVolume(); } // put the subiterators - while (QueryIterator* subIterator = subIterators.GetFirst()) { + while (QueryIterator* subIterator = subIterators.First()) { subIterators.Remove(subIterator); PutIterator(subIterator); } Modified: haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/RootVolume.cpp =================================================================== --- haiku/trunk/src/tests/add-ons/kernel/file_systems/userlandfs/r5/src/test/netfs/client/RootVolume.cpp 2010-01-13 09:32:50 UTC (rev 35042) +++ haiku/trunk/src/add-ons/kernel/file_systems/netfs/client/RootVolume.cpp 2010-01-14 21:56:16 UTC (rev 35081) @@ -1,14 +1,16 @@ // RootVolume.cpp +#include "RootVolume.h" + #include <new> -#include "AutoLocker.h" +#include <AutoLocker.h> + #include "Compatibility.h" -#include "Debug.h" +#include "DebugSupport.h" #include "ExtendedServerInfo.h" #include "NetAddress.h" #include "netfs_ioctl.h" -#include "RootVolume.h" #include "ServerVolume.h" [... truncated: 5710 lines follow ...]