1*9192d4dcSAxel Dörfler /* 2*9192d4dcSAxel Dörfler * Copyright 2011, Axel Dörfler, axeld@pinc-software.de. 3*9192d4dcSAxel Dörfler * Distributed under the terms of the MIT License. 4*9192d4dcSAxel Dörfler */ 5*9192d4dcSAxel Dörfler 6*9192d4dcSAxel Dörfler 7*9192d4dcSAxel Dörfler #include "Settings.h" 8*9192d4dcSAxel Dörfler 9*9192d4dcSAxel Dörfler #include <crypt.h> 10*9192d4dcSAxel Dörfler 11*9192d4dcSAxel Dörfler 12*9192d4dcSAxel Dörfler Settings::Settings(const BMessage& archive) 13*9192d4dcSAxel Dörfler : 14*9192d4dcSAxel Dörfler fMessage(archive) 15*9192d4dcSAxel Dörfler { 16*9192d4dcSAxel Dörfler } 17*9192d4dcSAxel Dörfler 18*9192d4dcSAxel Dörfler 19*9192d4dcSAxel Dörfler Settings::~Settings() 20*9192d4dcSAxel Dörfler { 21*9192d4dcSAxel Dörfler } 22*9192d4dcSAxel Dörfler 23*9192d4dcSAxel Dörfler 24*9192d4dcSAxel Dörfler BNetworkAddress 25*9192d4dcSAxel Dörfler Settings::ServerAddress() const 26*9192d4dcSAxel Dörfler { 27*9192d4dcSAxel Dörfler return BNetworkAddress(Server(), Port()); 28*9192d4dcSAxel Dörfler } 29*9192d4dcSAxel Dörfler 30*9192d4dcSAxel Dörfler 31*9192d4dcSAxel Dörfler BString 32*9192d4dcSAxel Dörfler Settings::Server() const 33*9192d4dcSAxel Dörfler { 34*9192d4dcSAxel Dörfler BString server; 35*9192d4dcSAxel Dörfler if (fMessage.FindString("server", &server) == B_OK) 36*9192d4dcSAxel Dörfler return server; 37*9192d4dcSAxel Dörfler 38*9192d4dcSAxel Dörfler return ""; 39*9192d4dcSAxel Dörfler } 40*9192d4dcSAxel Dörfler 41*9192d4dcSAxel Dörfler 42*9192d4dcSAxel Dörfler uint16 43*9192d4dcSAxel Dörfler Settings::Port() const 44*9192d4dcSAxel Dörfler { 45*9192d4dcSAxel Dörfler int32 port; 46*9192d4dcSAxel Dörfler if (fMessage.FindInt32("port", &port) == B_OK) 47*9192d4dcSAxel Dörfler return port; 48*9192d4dcSAxel Dörfler 49*9192d4dcSAxel Dörfler return UseSSL() ? 993 : 143; 50*9192d4dcSAxel Dörfler } 51*9192d4dcSAxel Dörfler 52*9192d4dcSAxel Dörfler 53*9192d4dcSAxel Dörfler bool 54*9192d4dcSAxel Dörfler Settings::UseSSL() const 55*9192d4dcSAxel Dörfler { 56*9192d4dcSAxel Dörfler int32 flavor; 57*9192d4dcSAxel Dörfler if (fMessage.FindInt32("flavor", &flavor) == B_OK) 58*9192d4dcSAxel Dörfler return flavor == 1; 59*9192d4dcSAxel Dörfler 60*9192d4dcSAxel Dörfler return false; 61*9192d4dcSAxel Dörfler } 62*9192d4dcSAxel Dörfler 63*9192d4dcSAxel Dörfler 64*9192d4dcSAxel Dörfler BString 65*9192d4dcSAxel Dörfler Settings::Username() const 66*9192d4dcSAxel Dörfler { 67*9192d4dcSAxel Dörfler BString username; 68*9192d4dcSAxel Dörfler if (fMessage.FindString("username", &username) == B_OK) 69*9192d4dcSAxel Dörfler return username; 70*9192d4dcSAxel Dörfler 71*9192d4dcSAxel Dörfler return ""; 72*9192d4dcSAxel Dörfler } 73*9192d4dcSAxel Dörfler 74*9192d4dcSAxel Dörfler 75*9192d4dcSAxel Dörfler BString 76*9192d4dcSAxel Dörfler Settings::Password() const 77*9192d4dcSAxel Dörfler { 78*9192d4dcSAxel Dörfler BString password; 79*9192d4dcSAxel Dörfler char* passwd = get_passwd(&fMessage, "cpasswd"); 80*9192d4dcSAxel Dörfler if (passwd != NULL) { 81*9192d4dcSAxel Dörfler password = passwd; 82*9192d4dcSAxel Dörfler delete[] passwd; 83*9192d4dcSAxel Dörfler return password; 84*9192d4dcSAxel Dörfler } 85*9192d4dcSAxel Dörfler 86*9192d4dcSAxel Dörfler return ""; 87*9192d4dcSAxel Dörfler } 88