From b89555b48f031797eaa7845dc122ec492ff7e42b Mon Sep 17 00:00:00 2001 From: "rginda%netscape.com" Date: Tue, 22 Aug 2000 23:58:02 +0000 Subject: [PATCH] -- CHATZILLA CHANGES ONLY -- removed dead libbs code (bug 39364) partial fix for bug 47673, still blocked by bug 49410 fix for bug 46541 --- extensions/irc/js/lib/chatzilla-service.js | 4 +- extensions/irc/js/lib/connection-xpcom.js | 24 +- extensions/irc/js/tests/ircbot.js | 2 +- extensions/irc/js/tests/mingus.js | 5 +- extensions/irc/libbs/.cvsignore | 1 - extensions/irc/libbs/MANIFEST_IDL | 1 - extensions/irc/libbs/Makefile.in | 50 -- extensions/irc/libbs/Makefile.ref | 36 -- extensions/irc/libbs/bsIConnection.idl | 64 --- extensions/irc/libbs/bsXPCConnection.cpp | 300 ---------- .../irc/libbs/bsXPCConnectionFactory.cpp | 216 ------- extensions/irc/libbs/bsapi.h | 59 -- extensions/irc/libbs/bscomponent-sample.html | 28 - extensions/irc/libbs/bsconfig.h | 45 -- extensions/irc/libbs/bsconnection.c | 530 ------------------ extensions/irc/libbs/bsconnection.h | 135 ----- extensions/irc/libbs/bserror.c | 96 ---- extensions/irc/libbs/bserror.h | 56 -- extensions/irc/libbs/bsevent.c | 347 ------------ extensions/irc/libbs/bsevent.h | 64 --- extensions/irc/libbs/bsnetwork.c | 375 ------------- extensions/irc/libbs/bsnetwork.h | 95 ---- extensions/irc/libbs/bspubtd.h | 148 ----- extensions/irc/libbs/bsqueue.c | 236 -------- extensions/irc/libbs/bsqueue.h | 57 -- extensions/irc/libbs/bsserver.c | 513 ----------------- extensions/irc/libbs/bsserver.h | 98 ---- extensions/irc/libbs/bsutil.c | 159 ------ extensions/irc/libbs/bsutil.h | 46 -- extensions/irc/libbs/main.c | 78 --- extensions/irc/libbs/makefile.win | 63 --- 31 files changed, 25 insertions(+), 3906 deletions(-) delete mode 100644 extensions/irc/libbs/.cvsignore delete mode 100644 extensions/irc/libbs/MANIFEST_IDL delete mode 100644 extensions/irc/libbs/Makefile.in delete mode 100644 extensions/irc/libbs/Makefile.ref delete mode 100644 extensions/irc/libbs/bsIConnection.idl delete mode 100644 extensions/irc/libbs/bsXPCConnection.cpp delete mode 100644 extensions/irc/libbs/bsXPCConnectionFactory.cpp delete mode 100644 extensions/irc/libbs/bsapi.h delete mode 100644 extensions/irc/libbs/bscomponent-sample.html delete mode 100644 extensions/irc/libbs/bsconfig.h delete mode 100644 extensions/irc/libbs/bsconnection.c delete mode 100644 extensions/irc/libbs/bsconnection.h delete mode 100644 extensions/irc/libbs/bserror.c delete mode 100644 extensions/irc/libbs/bserror.h delete mode 100644 extensions/irc/libbs/bsevent.c delete mode 100644 extensions/irc/libbs/bsevent.h delete mode 100644 extensions/irc/libbs/bsnetwork.c delete mode 100644 extensions/irc/libbs/bsnetwork.h delete mode 100644 extensions/irc/libbs/bspubtd.h delete mode 100644 extensions/irc/libbs/bsqueue.c delete mode 100644 extensions/irc/libbs/bsqueue.h delete mode 100644 extensions/irc/libbs/bsserver.c delete mode 100644 extensions/irc/libbs/bsserver.h delete mode 100644 extensions/irc/libbs/bsutil.c delete mode 100644 extensions/irc/libbs/bsutil.h delete mode 100644 extensions/irc/libbs/main.c delete mode 100644 extensions/irc/libbs/makefile.win diff --git a/extensions/irc/js/lib/chatzilla-service.js b/extensions/irc/js/lib/chatzilla-service.js index 5b109db39270..a0c87e6cba21 100644 --- a/extensions/irc/js/lib/chatzilla-service.js +++ b/extensions/irc/js/lib/chatzilla-service.js @@ -97,7 +97,7 @@ function (outer, iid) { function IRCContentHandler () {} -IRCContentHandler.prototype.queryInterface = +IRCContentHandler.prototype.QueryInterface = function (iid) { if (!iid.equals(nsIContentHandler)) @@ -199,7 +199,7 @@ function BogusChannel (aURI) this.originalURI = aURI; } -BogusChannel.prototype.queryInterface = +BogusChannel.prototype.QueryInterface = function (iid) { if (!iid.equals(nsIChannel) && !iid.equals(nsIRequest) && diff --git a/extensions/irc/js/lib/connection-xpcom.js b/extensions/irc/js/lib/connection-xpcom.js index 33d558d89657..432823dce835 100644 --- a/extensions/irc/js/lib/connection-xpcom.js +++ b/extensions/irc/js/lib/connection-xpcom.js @@ -60,6 +60,8 @@ function CBSConnection () this._sockService = sockService.QueryInterface (Components.interfaces.nsISocketTransportService); + this.wrappedJSObject = this; + } CBSConnection.prototype.connect = function(host, port, bind, tcp_flag) @@ -161,11 +163,14 @@ CBSConnection.prototype.readData = function(timeout) return rv; } -CBSConnection.prototype.startAsyncRead = -function (server) +if (jsenv.HAS_DOCUMENT) { - this._channel.asyncRead (new StreamListener (server), this); - + CBSConnection.prototype.startAsyncRead = + function (server) + { + this._channel.asyncRead (new StreamListener (server), this); + + } } function StreamListener(server) @@ -189,7 +194,15 @@ function (channel, ctxt, status, errorMsg) StreamListener.prototype.onDataAvailable = function (channel, ctxt, inStr, sourceOffset, count) { - if (!this.lastInStr) + ctxt = ctxt.wrappedJSObject; + if (!ctxt) + { + dd ("*** Can't get wrappedJSObject from ctxt in " + + "StreamListener.onDataAvailable ***"); + return; + } + + if (!ctxt._inputStream) ctxt._inputStream = toScriptableInputStream (inStr); var ev = new CEvent ("server", "data-available", this.server, @@ -197,4 +210,3 @@ function (channel, ctxt, inStr, sourceOffset, count) ev.line = ctxt.readData(0); this.server.parent.eventPump.addEvent (ev); } - diff --git a/extensions/irc/js/tests/ircbot.js b/extensions/irc/js/tests/ircbot.js index dbbeb3065cea..a671907c4e9c 100644 --- a/extensions/irc/js/tests/ircbot.js +++ b/extensions/irc/js/tests/ircbot.js @@ -88,7 +88,7 @@ function init(obj) obj.networks["efnet"] = new CIRCNetwork ("efnet", [ - {name: "irc.idle.net", port: 6667}, + {name: "irc.mcs.net", port: 6667}, {name: "irc.cs.cmu.edu", port: 6667}], obj.eventPump); diff --git a/extensions/irc/js/tests/mingus.js b/extensions/irc/js/tests/mingus.js index 63fd9f4f6a4d..eb0116c2712a 100644 --- a/extensions/irc/js/tests/mingus.js +++ b/extensions/irc/js/tests/mingus.js @@ -337,7 +337,8 @@ f = function (e) } bot.personality.addHook - (/(smile)|(rotfl)|(lmao)|(rotflmao)|(you(.)?re funny)|(look happy)|(you(.)?re smart)/i, f); + (/(smile)|(rotfl)|(lmao)|(rotflmao)|(look happy)|(you(.)?re smart)/i, f); +/* (/(smile)|(rotfl)|(lmao)|(rotflmao)|(you(.)?re funny)|(look happy)|(you(.)?re smart)/i, f); */ f = function (e) { @@ -362,3 +363,5 @@ f = function (e) } bot.personality.addHook (/(look confused)|(i like windows)/i, f); + +delete f; diff --git a/extensions/irc/libbs/.cvsignore b/extensions/irc/libbs/.cvsignore deleted file mode 100644 index f3c7a7c5da68..000000000000 --- a/extensions/irc/libbs/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Makefile diff --git a/extensions/irc/libbs/MANIFEST_IDL b/extensions/irc/libbs/MANIFEST_IDL deleted file mode 100644 index 7d4142581a41..000000000000 --- a/extensions/irc/libbs/MANIFEST_IDL +++ /dev/null @@ -1 +0,0 @@ -bsIConnection.idl diff --git a/extensions/irc/libbs/Makefile.in b/extensions/irc/libbs/Makefile.in deleted file mode 100644 index e5b2b7c5ab54..000000000000 --- a/extensions/irc/libbs/Makefile.in +++ /dev/null @@ -1,50 +0,0 @@ -# -# The contents of this file are subject to the Mozilla Public License -# Version 1.1 (the "License"); you may not use this file except in -# compliance with the License. You may obtain a copy of the License at -# http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS IS" basis, -# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License -# for the specific language governing rights and limitations under the -# License. -# -# The Original Code is Basic Socket Library -# -# The Initial Developer of the Original Code is New Dimensions Consulting, -# Inc. Portions created by New Dimensions Consulting, Inc. are Copyright (C) 1999 -# New Dimenstions Consulting, Inc. All Rights Reserved. -# -# Contributor(s): -# Robert Ginda, rginda@ndcico.com, original author -# - -DEPTH = ../../.. -topsrcdir = @top_srcdir@ -srcdir = @srcdir@ -VPATH = @srcdir@ - -include $(DEPTH)/config/autoconf.mk - -MODULE = bs -LIBRARY_NAME = bs -IS_COMPONENT = 1 - -CSRCS = \ - bsutil.c \ - bserror.c \ - bsevent.c \ - bsqueue.c \ - bsnetwork.c \ - bsserver.c \ - bsconnection.c \ - $(NULL) - -CPPSRCS = \ - bsXPCConnection.cpp \ - bsXPCConnectionFactory.cpp \ - $(NULL) - -XPIDLSRCS = bsIConnection.idl - -include $(topsrcdir)/config/rules.mk diff --git a/extensions/irc/libbs/Makefile.ref b/extensions/irc/libbs/Makefile.ref deleted file mode 100644 index c5fae14fed24..000000000000 --- a/extensions/irc/libbs/Makefile.ref +++ /dev/null @@ -1,36 +0,0 @@ - -CC = gcc -LD = gcc -CFLAGS = -Wall -g -DEFS = -DDEBUG - -MOZROOT = /home/rginda/src/mozilla_HEAD/mozilla -#MOZROOT = /home/rginda/src/mozilla_DEV/mozilla -#MOZROOT = /data210/src/mozilla -MOZBIN = $(MOZROOT)/dist/bin -LDFLAGS = $(MOZBIN)/libnspr3.so -lpthread -INCLUDES = -I$(MOZROOT)/dist/include - -OFILES = bsutil.o \ - bserror.o \ - bsevent.o \ - bsqueue.o \ - bsnetwork.o \ - bsserver.o \ - bsconnection.o - -.c.o: - $(CC) $(CFLAGS) $(INCLUDES) $(DEFS) -c $< - -main: $(OFILES) main.c - $(CC) $(CFLAGS) $(INCLUDES) $(DEFS) $(OFILES) $(LDFLAGS) main.c -o main - -clean: - rm -f *.o xpcom/*.o xpcom/libbs.so core main - -realclean: clean - rm -f *~ xpcom/*~ - - -tarball: realclean - cd ..; tar -czf bslib-current.tar.gz bslib diff --git a/extensions/irc/libbs/bsIConnection.idl b/extensions/irc/libbs/bsIConnection.idl deleted file mode 100644 index f96ae97ddb31..000000000000 --- a/extensions/irc/libbs/bsIConnection.idl +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#include "nsISupports.idl" - -[scriptable, uuid(ACEDC9B0-395C-11D3-AEB9-0000F8E25C06)] -interface bsIConnection : nsISupports -{ - attribute boolean isConnected; - attribute boolean linebufferFlag; - attribute unsigned short port; - - void init (in string hostname); - void destroy (); - boolean disconnect(); - boolean connect (in unsigned short port, - in string bindIP, - in boolean tcpFlag); - void sendData (in string data); - boolean hasData (); - string readData (in unsigned long timeout); - -}; - -%{ C++ - -// {25b7b6e0-3af4-11d3-aeb9-0000f8e25c06} -#define BS_CONNECTION_CID \ -{ 0x25b7b6e0, 0x3af4, 0x11d3, { 0xae, 0xb9, 0x0, 0x0, 0xf8, 0xe2, 0x5c, 0x6 }} - -#define BS_CONNECTION_PROGID "component://misc/bs/connection" -#define BS_CONNECTION_CLASSNAME "bsConnection" - -extern nsresult -BS_NewConnection(bsIConnection** aConnection); - -%} - - - - - - - diff --git a/extensions/irc/libbs/bsXPCConnection.cpp b/extensions/irc/libbs/bsXPCConnection.cpp deleted file mode 100644 index 3a119aaecd17..000000000000 --- a/extensions/irc/libbs/bsXPCConnection.cpp +++ /dev/null @@ -1,300 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * Robert Ginda (original author) - * Pierre Phaneuf - */ - -#include "prerror.h" -#include "plstr.h" -#include "nscore.h" - -#include "nsMemory.h" -#include "bsIConnection.h" - -#include "bsapi.h" -#include "bspubtd.h" -#include "bsconnection.h" -#include "bsserver.h" -#include "bserror.h" - -#define BS_INIT_CHECK if (!mInitializedFlag) \ - return NS_ERROR_FAILURE - -class bsConnection : public bsIConnection -{ - -public: - bsConnection(); - virtual ~bsConnection(); - - NS_DECL_ISUPPORTS - - NS_IMETHOD Init(const char *hostname); - NS_IMETHOD Destroy(); - - NS_IMETHOD GetIsConnected(PRBool *aIsConnected); - NS_IMETHOD SetIsConnected(PRBool aIsConnected); - - NS_IMETHOD GetLinebufferFlag(PRBool *aLinebufferFlag); - NS_IMETHOD SetLinebufferFlag(PRBool aLinebufferFlag); - - NS_IMETHOD GetPort(PRUint16 *aPort); - NS_IMETHOD SetPort(PRUint16 aPort); - - NS_IMETHOD Disconnect(PRBool *rval); - - NS_IMETHOD Connect(PRUint16 port, const char *bindIP, PRBool tcpFlag, - PRBool *rval); - - NS_IMETHOD SendData(const char *data); - - NS_IMETHOD HasData(PRBool *_retval); - - NS_IMETHOD ReadData(PRUint32 timeout, char **aData); - -private: - BSConnectionClass *connection; - BSServerClass *server; - PRBool mInitializedFlag; - PRBool mDataFlag; - PRBool mData; - -}; - -/* static constructor used by factory */ -extern nsresult -BS_NewConnection(bsIConnection** aConnection) -{ - NS_PRECONDITION(aConnection != nsnull, "null ptr"); - if (!aConnection) - return NS_ERROR_NULL_POINTER; - - *aConnection = new bsConnection(); - if (!*aConnection) - return NS_ERROR_OUT_OF_MEMORY; - - NS_ADDREF(*aConnection); - return NS_OK; - -} - -bsConnection::bsConnection() -{ - NS_INIT_REFCNT(); - mInitializedFlag = PR_FALSE; -} - -bsConnection::~bsConnection() -{ - if (mInitializedFlag) - Destroy(); - -} - -NS_IMPL_ISUPPORTS(bsConnection, NS_GET_IID(bsIConnection)); - -NS_IMETHODIMP -bsConnection::Init(const char *hostname) -{ - if (mInitializedFlag) - return NS_ERROR_FAILURE; - - server = bs_server_new (nsnull, hostname); - if (!server) - return NS_ERROR_OUT_OF_MEMORY; - - connection = nsnull; - - mInitializedFlag = PR_TRUE; - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::Destroy() -{ - if (mInitializedFlag) - bs_server_free (server); - - return NS_OK; -} - - -NS_IMETHODIMP -bsConnection::GetIsConnected(PRBool *aIsConnected) -{ - BS_INIT_CHECK; - - bs_connection_get_bool_property (connection, BSPROP_STATUS, aIsConnected); - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::SetIsConnected(PRBool aIsConnected) -{ - BS_INIT_CHECK; - - bs_connection_set_bool_property (connection, BSPROP_STATUS, aIsConnected); - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::GetLinebufferFlag(PRBool *aLinebufferFlag) -{ - BS_INIT_CHECK; - - bs_connection_get_bool_property (connection, BSPROP_LINE_BUFFER, - aLinebufferFlag); - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::SetLinebufferFlag(PRBool aLinebufferFlag) -{ - BS_INIT_CHECK; - - bs_connection_set_bool_property (connection, BSPROP_LINE_BUFFER, - aLinebufferFlag); - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::GetPort(PRUint16 *aPort) -{ - BS_INIT_CHECK; - - bs_connection_get_uint_property (connection, BSPROP_PORT, aPort); - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::SetPort(PRUint16 aPort) -{ - BS_INIT_CHECK; - - bs_connection_set_uint_property (connection, BSPROP_PORT, aPort); - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::Disconnect(PRBool *rval) -{ - BS_INIT_CHECK; - - if (connection != (void *)0) - *rval = bs_connection_disconnect (connection); - else - *rval = PR_FALSE; - - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::Connect(PRUint16 port, const char *bindIP, PRBool tcpFlag, - PRBool *rval) -{ - BS_INIT_CHECK; - - connection = bs_server_connect(server, port, bindIP, tcpFlag); - - *rval = (connection != (void *)0) ? PR_TRUE : PR_FALSE; - - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::SendData(const char *data) -{ - BS_INIT_CHECK; - - if (!connection) - return NS_ERROR_FAILURE; - - if (!bs_connection_send_string (connection, data)) - return NS_ERROR_FAILURE; - - return NS_OK; - -} - -NS_IMETHODIMP -bsConnection::HasData (PRBool *result) -{ - PRPollDesc polld; - - if (mDataFlag) - return PR_TRUE; - - - polld.fd = bs_connection_get_fd (connection); - polld.in_flags = PR_POLL_READ; - - PRInt32 rv = PR_Poll (&polld, 1, PR_INTERVAL_NO_WAIT); - if (rv < 0) - { - BS_ReportPRError (PR_GetError()); - return NS_ERROR_FAILURE; - } - - *result = (polld.out_flags & PR_POLL_READ) ? PR_TRUE : PR_FALSE; - - return PR_TRUE; - -} - -NS_IMETHODIMP -bsConnection::ReadData(PRUint32 timeout, char **aData) -{ - NS_PRECONDITION (aData, "null ptr"); - bschar *data; - - bsint c = bs_connection_recv_data (connection, timeout, &data); - - if (c < 0) - return NS_ERROR_FAILURE; - else - if (c == 0) - { - *aData = (char*) nsMemory::Alloc(1); - **aData = '\00'; - } - else - { - *aData = (char*) nsMemory::Alloc(PL_strlen(data) + 1); - if (! *aData) - return NS_ERROR_OUT_OF_MEMORY; - - PL_strcpy(*aData, data); - } - - mDataFlag = PR_FALSE; - - return NS_OK; - -} diff --git a/extensions/irc/libbs/bsXPCConnectionFactory.cpp b/extensions/irc/libbs/bsXPCConnectionFactory.cpp deleted file mode 100644 index 13282c8bff60..000000000000 --- a/extensions/irc/libbs/bsXPCConnectionFactory.cpp +++ /dev/null @@ -1,216 +0,0 @@ -/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -/* - * This is a blatent ripoff of nsSampleFactory.cpp - */ - -#include "nsCOMPtr.h" -#include "nscore.h" -#include "nsIComponentManager.h" -#include "nsIServiceManager.h" -#include "nsXPComFactory.h" -#include "bsIConnection.h" - -static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); -static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); -static NS_DEFINE_CID(kComponentManagerCID, NS_COMPONENTMANAGER_CID); -static NS_DEFINE_CID(kConnectionCID, BS_CONNECTION_CID); - -class bsConnectionFactory : public nsIFactory -{ -public: - bsConnectionFactory (const nsCID &aClass, const char* className, - const char* progID); - - // nsISupports methods - NS_DECL_ISUPPORTS - - // nsIFactory methods - NS_IMETHOD CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult); - - NS_IMETHOD LockFactory(PRBool aLock); - -protected: - virtual ~bsConnectionFactory(); - -protected: - nsCID mClassID; - const char* mClassName; - const char* mProgID; -}; - -//////////////////////////////////////////////////////////////////////// - -bsConnectionFactory::bsConnectionFactory(const nsCID &aClass, - const char* className, - const char* progID) - : mClassID(aClass), mClassName(className), mProgID(progID) -{ - NS_INIT_REFCNT(); -} - -bsConnectionFactory::~bsConnectionFactory() -{ -} - -NS_IMETHODIMP -bsConnectionFactory::QueryInterface(const nsIID &aIID, void **aResult) -{ - if (!aResult) - return NS_ERROR_NULL_POINTER; - - // Always NULL result, in case of failure - *aResult = nsnull; - - if (aIID.Equals(kISupportsIID)) { - *aResult = NS_STATIC_CAST(nsISupports*, this); - AddRef(); - return NS_OK; - } else if (aIID.Equals(kIFactoryIID)) { - *aResult = NS_STATIC_CAST(nsIFactory*, this); - AddRef(); - return NS_OK; - } - return NS_NOINTERFACE; -} - -NS_IMPL_ADDREF(bsConnectionFactory); -NS_IMPL_RELEASE(bsConnectionFactory); - -NS_IMETHODIMP -bsConnectionFactory::CreateInstance(nsISupports *aOuter, - const nsIID &aIID, - void **aResult) -{ - if (!aResult) - return NS_ERROR_NULL_POINTER; - - if (aOuter) - return NS_ERROR_NO_AGGREGATION; - - *aResult = nsnull; - - nsresult rv; - - nsISupports *inst = nsnull; - if (mClassID.Equals(kConnectionCID)) { - if (NS_FAILED(rv = BS_NewConnection((bsIConnection**) &inst))) - return rv; - } - else { - return NS_ERROR_NO_INTERFACE; - } - - if (!inst) - return NS_ERROR_OUT_OF_MEMORY; - - if (NS_FAILED(rv = inst->QueryInterface(aIID, aResult))) { - // We didn't get the right interface. - NS_ERROR("didn't support the interface you wanted"); - } - - NS_IF_RELEASE(inst); - return rv; -} - -nsresult bsConnectionFactory::LockFactory(PRBool aLock) -{ - // Not implemented in simplest case. - return NS_OK; -} - -//////////////////////////////////////////////////////////////////////// - - - -// return the proper factory to the caller -extern "C" PR_IMPLEMENT(nsresult) -NSGetFactory(nsISupports* aServMgr, - const nsCID &aClass, - const char *aClassName, - const char *aProgID, - nsIFactory **aFactory) -{ - if (!aFactory) - return NS_ERROR_NULL_POINTER; - - bsConnectionFactory* factory = new bsConnectionFactory(aClass, - aClassName, aProgID); - if (factory == nsnull) - return NS_ERROR_OUT_OF_MEMORY; - - NS_ADDREF(factory); - *aFactory = factory; - return NS_OK; -} - - - -extern "C" PR_IMPLEMENT(nsresult) -NSRegisterSelf(nsISupports* aServMgr , const char* aPath) -{ - nsresult rv; - - /* - nsCOMPtr servMgr(do_QueryInterface(aServMgr, &rv)); - if (NS_FAILED(rv)) return rv; - */ - - NS_WITH_SERVICE(nsIComponentManager, compMgr, kComponentManagerCID, &rv); - if (NS_FAILED(rv)) return rv; - - rv = compMgr->RegisterComponent(kConnectionCID, - BS_CONNECTION_CLASSNAME, - BS_CONNECTION_PROGID, - aPath, PR_TRUE, PR_FALSE); - - if (NS_FAILED(rv)) return rv; - - return NS_OK; -} - - -extern "C" PR_IMPLEMENT(nsresult) -NSUnregisterSelf(nsISupports* aServMgr, const char* aPath) -{ - nsresult rv; - - /* - nsCOMPtr servMgr(do_QueryInterface(aServMgr, &rv)); - if (NS_FAILED(rv)) return rv; - */ - - NS_WITH_SERVICE(nsIComponentManager, compMgr, kComponentManagerCID, &rv); - if (NS_FAILED(rv)) return rv; - - rv = compMgr->UnregisterComponent(kConnectionCID, aPath); - if (NS_FAILED(rv)) return rv; - - return NS_OK; -} diff --git a/extensions/irc/libbs/bsapi.h b/extensions/irc/libbs/bsapi.h deleted file mode 100644 index 662d30a13430..000000000000 --- a/extensions/irc/libbs/bsapi.h +++ /dev/null @@ -1,59 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bsapi_h___ -#define bsapi_h___ - -PR_BEGIN_EXTERN_C - -/* common properties */ -#define BSPROP_PARENT 100 -#define BSPROP_NAME 101 -#define BSPROP_KEY 102 -#define BSPROP_STATUS 103 - -/* network properties */ -#define BSPROP_EVENTS_PER_STEP 200 - -/* server properties */ -#define BSPROP_HOSTNAME 300 -#define BSPROP_PORT 301 -#define BSPROP_INPUT_TIMEOUT 302 -#define BSPROP_LINE_BUFFER 303 - -/* connection properties */ - -/* event properties */ -#define BSPROP_OBJECT_TYPE 400 -#define BSPROP_DESTOBJECT 401 -#define BSPROP_HANDLER_ID 402 -#define BSPROP_DATA 403 - -#define BS_CHECK_TYPE(type, mask) (mask & type) - -PR_END_EXTERN_C - -#endif /* bsapi_h___ */ diff --git a/extensions/irc/libbs/bscomponent-sample.html b/extensions/irc/libbs/bscomponent-sample.html deleted file mode 100644 index a1e2603e4395..000000000000 --- a/extensions/irc/libbs/bscomponent-sample.html +++ /dev/null @@ -1,28 +0,0 @@ - - - - BSConnection Component sample page - - - -

BSConnection Component test page

- - - -
-
- - -Last modified: Fri Jul 16 05:42:13 DST 1999 - - - diff --git a/extensions/irc/libbs/bsconfig.h b/extensions/irc/libbs/bsconfig.h deleted file mode 100644 index c4177b6a5b12..000000000000 --- a/extensions/irc/libbs/bsconfig.h +++ /dev/null @@ -1,45 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bsconfig_h___ -#define bsconfig_h___ - -PR_BEGIN_EXTERN_C - -#define BS_CONNECTION_TIMEOUT_MS 30 * 1000 /* timeout for connect()s */ -#define BS_SEND_TIMEOUT_MS 30 * 1000 /* timeout for send()s */ -#define BS_RECV_TIMEOUT_MS 1 /* timeout for recv()s */ - -/* property defaults */ - -#define BS_EVENTS_PER_STEP_DEFAULT 3 -#define BS_INPUT_TIMEOUT_DEFAULT 2000 -#define BS_LINEBUFFER_FLAG_DEFAULT PR_TRUE -#define BSMAX_SERVER_RECV 4095 - -PR_END_EXTERN_C - -#endif /* bsconfig_h___ */ diff --git a/extensions/irc/libbs/bsconnection.c b/extensions/irc/libbs/bsconnection.c deleted file mode 100644 index da8f10739181..000000000000 --- a/extensions/irc/libbs/bsconnection.c +++ /dev/null @@ -1,530 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - * Simon Fraser, smfr@netscape.com, Mac warning fixes - */ - -#include "string.h" - -#include "prtypes.h" -#include "prerror.h" -#include "prmem.h" -#include "prio.h" -#include "prlog.h" - -#include "bspubtd.h" -#include "bsutil.h" -#include "bsconfig.h" -#include "bserror.h" -#include "bsevent.h" -#include "bsqueue.h" -#include "bsapi.h" -#include "bsserver.h" -#include "bsconnection.h" - -PR_BEGIN_EXTERN_C - -BSConnectionClass * -bs_connection_new (BSServerClass *parent, PRFileDesc *fd, bsint port) -{ - BSConnectionClass *new_connection; - - new_connection = PR_NEW (BSConnectionClass); - if (!new_connection) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return PR_FALSE; - } - - memset (new_connection->callback_table, 0, BSCONNECTION_EVENT_COUNT); - - new_connection->parent_server = parent; - new_connection->linebuffer = NULL; - new_connection->port = port; - new_connection->fd = fd; - new_connection->linebuffer_flag = BS_LINEBUFFER_FLAG_DEFAULT; - new_connection->is_connected = PR_TRUE; - - return new_connection; -} - -void -bs_connection_free (BSConnectionClass *connection) -{ - PR_ASSERT (connection); - - /* partially received line will be lost */ - PR_FREEIF (connection->linebuffer); - - bs_connection_disconnect (connection); - - PR_Free (connection); - -} - -PRBool -bs_connection_disconnect (BSConnectionClass *connection) -{ - PRStatus rv; - - PR_ASSERT (connection); - - if (connection->is_connected) - { - PR_FREEIF (connection->linebuffer); - - rv = PR_Shutdown (connection->fd, PR_SHUTDOWN_BOTH); - if (PR_FAILURE == rv) - BS_ReportPRError (PR_GetError()); - - rv = PR_Close (connection->fd); - if (PR_FAILURE == rv) - BS_ReportPRError (PR_GetError()); - } - - connection->is_connected = PR_FALSE; - - return PR_FALSE; -} - -PRBool /* public method */ -bs_connection_send_data (BSConnectionClass *connection, bschar *data, - bsuint length) -{ - PRIntervalTime to; - PRInt32 count; - - PR_ASSERT (connection); - - to = PR_MillisecondsToInterval (BS_SEND_TIMEOUT_MS); - - count = PR_Send (connection->fd, data, length, 0, to); - - if (count == -1) - { - BS_ReportPRError (PR_GetError()); - return PR_FALSE; - } - - return PR_TRUE; - -} - -PRBool /* public method */ -bs_connection_send_string (BSConnectionClass *connection, const bschar *data) -{ - bsuint length; - - PR_ASSERT (connection); - - length = strlen (data); - - return bs_connection_send_data (connection, (bschar *)data, length); - -} - -PRInt32 /* friend function */ -bs_connection_recv_data (BSConnectionClass *connection, PRInt32 timeout, - bschar **buf) -{ - PRIntervalTime to; - PRInt32 count; - PRErrorCode err; - static bschar recv_buf[BSMAX_SERVER_RECV]; - - PR_ASSERT (connection); - *buf = recv_buf; - - to = PR_MillisecondsToInterval (timeout); - - count = PR_Recv(connection->fd, recv_buf, BSMAX_SERVER_RECV, 0, to); - - switch (count) - { - case -1: /* recv error */ - err = PR_GetError(); - switch (err) - { - case PR_IO_TIMEOUT_ERROR: - buf[0] = '\00'; - count = 0; - break; - - default: - BS_ReportPRError (err); - goto err_out; - break; - } - break; - - case 0: /* connection closed */ - count = -1; - goto err_out; - - default: /* byte count */ - ((char *)(*buf))[count] = 0; - - } - - return count; - - err_out: - *buf = NULL; - return count; - -} - -PRBool /* friend function */ -bs_connection_recv (BSConnectionClass *connection, BSQueueClass *event_queue) -{ - bschar *buf, *lastline = NULL; - bschar **lineary; - int i, lines; - BSEventClass *event; - PRBool completeline_flag; - PRInt32 count; - - PR_ASSERT (connection); - - count = bs_connection_recv_data (connection, BS_RECV_TIMEOUT_MS, &buf); - - if (count == 0) - { - event = bs_event_new (BSOBJ_CONNECTION, connection, - BSEVENT_CONNECTION_DISCONNECT, NULL, - NULL, NULL); - if (!event) - return PR_FALSE; - - if (0 == bs_queue_add (event_queue, event, 0)) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return PR_FALSE; - - } - return PR_FALSE; - } - if (count < 0) - { - BS_ReportError (BSERR_UNDEFINED_ERROR); - return PR_FALSE; - } - - if (connection->linebuffer_flag) - { - completeline_flag = (buf[count - 1] == '\n') ? PR_TRUE : - PR_FALSE; - - lineary = bs_util_delimbuffer_to_array (buf, &lines, '\n'); - - for (i = 0; i < lines - 1; i++) - { - event = bs_event_new_copyZ (BSOBJ_CONNECTION, connection, - BSEVENT_CONNECTION_RAWDATA, - lineary[i], NULL); - if (!event) - return PR_FALSE; - - if (0 == bs_queue_add (event_queue, event, 0)) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return PR_FALSE; - } - } - - buf = lastline = bs_util_linebuffer (lineary[lines - 1], - &connection->linebuffer, - completeline_flag); - - PR_Free (lineary); - } - - if (buf) - { - connection->linebuffer = NULL; - - event = bs_event_new_copyZ (BSOBJ_CONNECTION, connection, - BSEVENT_CONNECTION_RAWDATA, - buf, NULL); - if (!event) - return PR_FALSE; - - if (0 == bs_queue_add (event_queue, event, 0)) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return PR_FALSE; - } - - } - - PR_FREEIF (lastline); - return PR_TRUE; - -} - -PRFileDesc * /* friend function */ -bs_connection_get_fd (BSConnectionClass *connection) -{ - PR_ASSERT (connection); - - if (!connection->is_connected) - return NULL; - - return connection->fd; - -} - -BSEventClass * -bs_connection_route (BSConnectionClass *connection, BSEventClass *event) -{ - - PR_ASSERT (connection); - - if ((event->id < BSCONNECTION_EVENT_COUNT) && - (connection->callback_table[event->id])) - return connection->callback_table[event->id](connection, event); - else - return NULL; - -} - -PRBool -bs_connection_set_handler (BSConnectionClass *connection, - BSConnectionEvent event_type, - BSConnectionEventCallback *handler) -{ - PR_ASSERT (connection); - - if (event_type > BSCONNECTION_EVENT_COUNT) - { - BS_ReportError (BSERR_NO_SUCH_EVENT); - return PR_FALSE; - } - - connection->callback_table[event_type] = handler; - - return PR_TRUE; -} - -PRBool -bs_connection_set_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bsint type, void *v) -{ - PR_ASSERT (connection); - - switch (prop) - { - case BSPROP_PARENT: - if (!BS_CHECK_TYPE (type, BSTYPE_OBJECT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - connection->parent_server = (BSServerClass *)v; - break; - - case BSPROP_LINE_BUFFER: - if (!BS_CHECK_TYPE (type, BSTYPE_BOOLEAN)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - connection->linebuffer_flag = *(PRBool *)v; - break; - - case BSPROP_STATUS: - if (!BS_CHECK_TYPE (type, BSTYPE_BOOLEAN)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - BS_ReportError (BSERR_READ_ONLY); - return PR_FALSE; - break; - - case BSPROP_PORT: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - if (connection->is_connected) - { - BS_ReportError (BSERR_READ_ONLY); - return PR_FALSE; - } - - connection->port = *(bsuint *)v; - break; - - default: - BS_ReportError (BSERR_NO_SUCH_PARAM); - return PR_FALSE; - break; - - } - - return PR_FALSE; -} - -PRBool -bs_connection_set_uint_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bsuint v) -{ - return bs_connection_set_property (connection, prop, BSTYPE_UINT, &v); - -} - -PRBool -bs_connection_set_string_property (BSConnectionClass *connection, - BSConnectionProperty prop, - char *v) -{ - return bs_connection_set_property (connection, prop, BSTYPE_STRING, v); - -} - -PRBool -bs_connection_set_bool_property (BSConnectionClass *connection, - BSConnectionProperty prop, - PRBool v) -{ - return bs_connection_set_property (connection, prop, BSTYPE_BOOLEAN, &v); - -} - -PRBool -bs_connection_set_object_property (BSConnectionClass *connection, - BSConnectionProperty prop, - void *v) -{ - return bs_connection_set_property (connection, prop, BSTYPE_OBJECT, v); - -} - -PRBool -bs_connection_get_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bsint type, void *v) -{ - PR_ASSERT (connection); - - switch (prop) - { - case BSPROP_PARENT: - if (!BS_CHECK_TYPE (type, BSTYPE_OBJECT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - v = connection->parent_server; - break; - - case BSPROP_LINE_BUFFER: - if (!BS_CHECK_TYPE (type, BSTYPE_BOOLEAN)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(PRBool *)v = connection->linebuffer_flag; - break; - - case BSPROP_PORT: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(int *)v = connection->port; - break; - - case BSPROP_STATUS: - if (!BS_CHECK_TYPE (type, BSTYPE_BOOLEAN)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(PRBool *)v = connection->is_connected; - break; - - default: - BS_ReportError (BSERR_NO_SUCH_PARAM); - return PR_FALSE; - break; - - } - - return PR_TRUE; - -} - -PRBool -bs_connection_get_uint_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bsuint *v) - -{ - return bs_connection_get_property (connection, prop, BSTYPE_UINT, v); - -} - -PRBool -bs_connection_get_string_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bschar **v) -{ - return bs_connection_get_property (connection, prop, BSTYPE_STRING, v); - -} - -PRBool -bs_connection_get_bool_property (BSConnectionClass *connection, - BSConnectionProperty prop, - PRBool *v) -{ - return bs_connection_get_property (connection, prop, BSTYPE_BOOLEAN, v); - -} - -PRBool -bs_connection_get_object_property (BSConnectionClass *connection, - BSConnectionProperty prop, - void **v) - -{ - return bs_connection_get_property (connection, prop, BSTYPE_OBJECT, v); - -} - -PR_END_EXTERN_C diff --git a/extensions/irc/libbs/bsconnection.h b/extensions/irc/libbs/bsconnection.h deleted file mode 100644 index 97b85c432e47..000000000000 --- a/extensions/irc/libbs/bsconnection.h +++ /dev/null @@ -1,135 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bsconnection_h___ -#define bsconnection_h___ - -#include "prtypes.h" -#include "prio.h" - -#include "bspubtd.h" -#include "bsqueue.h" -#include "bsevent.h" - -PR_BEGIN_EXTERN_C - -/* constructor, should be called only by a friend's factory */ -extern BSConnectionClass * -bs_connection_new (BSServerClass *parent, PRFileDesc *fd, bsint port); - -/* deallocator, should be called only by a friend's factory */ -extern void -bs_connection_free (BSConnectionClass *connection); - -/* restablish the connection */ -extern PRBool -bs_connection_reconnect (BSConnectionClass *connection); - -/* close the connection */ -extern PRBool -bs_connection_disconnect (BSConnectionClass *connection); - -/* send an arbitrary number of bytes */ -extern PRBool -bs_connection_send_data (BSConnectionClass *connection, bschar *data, - bsuint length); - -/* send a null-terminated string */ -extern PRBool -bs_connection_send_string (BSConnectionClass *connection, const bschar *data); - -PRBool /* friend function */ -bs_connection_recv_data (BSConnectionClass *connection, PRInt32 timeout, - bschar **buf); - -/* - * recv data from the connection. This is a friend function, non-friends - * should subscribe to BSEVENT_SERVER_RAWDATA or BSEVENT_CONNECTION_RAWDATA. - * The friendly factory which created the connection is responsible for - * periodically calling this function, or the RAWDATA event will never occur. - */ -extern PRBool -bs_connection_recv (BSConnectionClass *connection, BSQueueClass *event_queue); - -/* retrieve connections fd, friend function */ -extern PRFileDesc * -bs_connection_get_fd (BSConnectionClass *connection); - -/* route an event, friends only */ -BSEventClass * -bs_connection_route (BSConnectionClass *connection, BSEventClass *event); - -/* changes an event handler */ -extern PRBool -bs_connection_set_handler (BSConnectionClass *connection, - BSConnectionEvent event_type, - BSConnectionEventCallback *handler); - -/* property access routines */ -extern PRBool -bs_connection_set_uint_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bsuint v); - -extern PRBool -bs_connection_set_string_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bschar *v); - -extern PRBool -bs_connection_set_bool_property (BSConnectionClass *connection, - BSConnectionProperty prop, - PRBool v); - -extern PRBool -bs_connection_set_object_property (BSConnectionClass *connection, - BSConnectionProperty prop, - void *v); - -/* property gets */ -extern PRBool -bs_connection_get_uint_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bsuint *v); - -extern PRBool -bs_connection_get_string_property (BSConnectionClass *connection, - BSConnectionProperty prop, - bschar **v); - -extern PRBool -bs_connection_get_bool_property (BSConnectionClass *connection, - BSConnectionProperty prop, - PRBool *v); - -extern PRBool -bs_connection_get_object_property (BSConnectionClass *connection, - BSConnectionProperty prop, - void **v); - -PR_END_EXTERN_C - -#endif /* bsconnection_h___ */ diff --git a/extensions/irc/libbs/bserror.c b/extensions/irc/libbs/bserror.c deleted file mode 100644 index c6aa19dd7fb5..000000000000 --- a/extensions/irc/libbs/bserror.c +++ /dev/null @@ -1,96 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#include - -#include "prerror.h" -#include "prmem.h" -#include "prlog.h" - -#include "bspubtd.h" -#include "bserror.h" - -const char *bs_errormsg_map[BSERR_MAP_SIZE] = { - "Undefined Error", - "Out of memory", - "Parameter mismatch", - "Property not supported", - "Connect timed out", - "Property is Read-Only", - "Invalid State" -}; - -void -BS_ReportError (bsint err) -{ - - fprintf (stderr, "BS Error (%i): %s\n", err, bs_errormsg_map[err]); -#ifdef DEBUG - if (err == BSERR_OUT_OF_MEMORY) - PR_ASSERT (PR_FALSE); -#endif - -} - -void -BS_ReportPRError (bsint err) -{ - const char *name; - const char *msg; - - name = PR_ErrorToName (err); - msg = PR_ErrorToString (err, 0); - fprintf (stderr, "NSPR Error (%i/%s): %s\n", err, name, msg); - -} - -void -BS_old_ReportPRError (bsint err) -{ - char *msg; - bsuint c; - - c = PR_GetErrorTextLength(); - if (!c) - { - fprintf (stderr, "Unknown NSPR Error (%i)\n", err); - return; - } - - msg = PR_Malloc (c * (sizeof (bschar *) + 1)); - - if (!msg) - { - fprintf (stderr, "Out of Memory while reporting NSPR error %i\n", err); - return; - } - PR_GetErrorText (msg); - - fprintf (stderr, "NSPR Error (%i): %s\n", err, msg); - - PR_Free (msg); - -} diff --git a/extensions/irc/libbs/bserror.h b/extensions/irc/libbs/bserror.h deleted file mode 100644 index 40ad7c4b8ec2..000000000000 --- a/extensions/irc/libbs/bserror.h +++ /dev/null @@ -1,56 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bserror_h___ -#define bserror_h___ - -#include "prerror.h" -#include "bspubtd.h" - -PR_BEGIN_EXTERN_C - -/* error codes */ -#define BSERR_UNDEFINED_ERROR 0 -#define BSERR_OUT_OF_MEMORY 1 -#define BSERR_PROPERTY_MISMATCH 2 -#define BSERR_NO_SUCH_PARAM 3 -#define BSERR_NO_SUCH_EVENT 4 -#define BSERR_CONNECTION_TIMEOUT 5 -#define BSERR_READ_ONLY 6 -#define BSERR_INVALID_STATE 7 -#define BSERR_MAP_SIZE 7 - -#define OUT_OF_MEMORY BS_ReportError (BSERR_OUT_OF_MEMORY); - -PR_EXTERN (void) -BS_ReportError (bsint err); - -PR_EXTERN (void) -BS_ReportPRError (PRErrorCode err); - -PR_END_EXTERN_C - -#endif /* bserror_h___ */ diff --git a/extensions/irc/libbs/bsevent.c b/extensions/irc/libbs/bsevent.c deleted file mode 100644 index 37b60f32371d..000000000000 --- a/extensions/irc/libbs/bsevent.c +++ /dev/null @@ -1,347 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#include "prtypes.h" -#include "prmem.h" -#include "prlog.h" - -#include "bsapi.h" -#include "bspubtd.h" -#include "bserror.h" -#include "bsevent.h" -#include "bsnetwork.h" -#include "bsserver.h" -#include "bsconnection.h" - -PR_BEGIN_EXTERN_C - -BSEventClass * -bs_event_new (BSObjectType obj_type, void *dest, BSHandlerID id, void *data, - BSEventClass *previous, BSEventDeallocator *da) -{ - BSEventClass *new_event; - - new_event = PR_NEW (BSEventClass); - if (!new_event) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return NULL; - } - - new_event->obj_type = obj_type; - new_event->dest = dest; - new_event->id = id; - new_event->data = data; - new_event->previous = previous; - new_event->da = da; - - return new_event; - -} - -void * -bs_event_default_deallocator (BSEventClass *event) -{ - PR_ASSERT (event); - - PR_FREEIF (event->data); - - return NULL; - -} - -BSEventClass * -bs_event_new_copy (BSObjectType obj_type, void *dest, BSHandlerID id, - void *data, bsuint length, BSEventClass *previous) -{ - BSEventClass *rv; - char *event_data; - - event_data = PR_Malloc (length); - if (!event_data) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return NULL; - } - - memcpy (event_data, data, length); - - rv = bs_event_new (obj_type, dest, id, event_data, previous, - bs_event_default_deallocator); - if (!rv) - return NULL; - - return rv; - -} - -BSEventClass * -bs_event_new_copyZ (BSObjectType obj_type, void *dest, BSHandlerID id, - bschar *data, BSEventClass *previous) -{ - - return bs_event_new_copy (obj_type, dest, id, data, strlen (data) + 1, - previous); - -} - -void -bs_event_free (BSEventClass *event) -{ - PR_ASSERT (event); - - if (event->previous) - bs_event_free (event->previous); - - if (event->da) - event->da (event); - - PR_Free (event); - -} - -PRBool -bs_event_route (BSEventClass *event, BSEventHookCallback *hook_func) -{ - BSEventClass *next_event; - PR_ASSERT (event); - - if ((hook_func) && (!hook_func (event))) - return PR_TRUE; - - switch (event->obj_type) - { - case BSOBJ_NETWORK: - next_event = bs_network_route ((BSNetworkClass *)event->dest, - event); - break; - - case BSOBJ_SERVER: - next_event = bs_server_route ((BSServerClass *)event->dest, - event); - break; - - case BSOBJ_CONNECTION: - next_event = bs_connection_route ((BSConnectionClass *)event->dest, - event); - break; - - default: - BS_ReportError (BSERR_INVALID_STATE); - return PR_FALSE; - break; - } - - if (next_event) - { - next_event->previous = event; - bs_event_route (next_event, hook_func); - } - - return PR_TRUE; - -} - -PRBool -bs_event_set_property (BSEventClass *event, BSEventProperty prop, bsint type, - void *v) -{ - PR_ASSERT (event); - - switch (prop) - { - - case BSPROP_OBJECT_TYPE: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - if ((BSObjectType)v >= BSOBJ_INVALID_OBJECT) - { - BS_ReportError (BSERR_INVALID_STATE); - return PR_FALSE; - } - - event->obj_type = *(BSObjectType *)v; - break; - - case BSPROP_DESTOBJECT: - if (!BS_CHECK_TYPE (type, BSTYPE_OBJECT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - event->dest = (void *)v; - break; - - case BSPROP_HANDLER_ID: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - event->id = *(BSHandlerID *)v; - break; - - case BSPROP_DATA: - BS_ReportError (BSERR_READ_ONLY); - return PR_FALSE; - break; - - default: - BS_ReportError (BSERR_NO_SUCH_PARAM); - return PR_FALSE; - break; - - } - - return PR_FALSE; -} - -PRBool -bs_event_set_uint_property (BSEventClass *event, BSEventProperty prop, - bsuint v) -{ - return bs_event_set_property (event, prop, BSTYPE_UINT, &v); - -} - -PRBool -bs_event_set_string_property (BSEventClass *event, BSEventProperty prop, - char *v) -{ - return bs_event_set_property (event, prop, BSTYPE_STRING, v); - -} - -PRBool -bs_event_set_bool_property (BSEventClass *event, BSEventProperty prop, - PRBool v) -{ - return bs_event_set_property (event, prop, BSTYPE_BOOLEAN, &v); - -} - -PRBool -bs_event_set_object_property (BSEventClass *event, BSEventProperty prop, - void *v) -{ - return bs_event_set_property (event, prop, BSTYPE_OBJECT, v); - -} - -PRBool -bs_event_get_property (BSEventClass *event, BSEventProperty prop, bsint type, - void *v) -{ - PR_ASSERT (event); - - switch (prop) - { - case BSPROP_OBJECT_TYPE: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(BSObjectType *)v = event->obj_type; - break; - - case BSPROP_DESTOBJECT: - if (!BS_CHECK_TYPE (type, BSTYPE_OBJECT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(void **)v = event->dest; - break; - - case BSPROP_HANDLER_ID: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(BSHandlerID *)v = event->id; - break; - - case BSPROP_DATA: - *(void **)v = event->data; - break; - - default: - BS_ReportError (BSERR_NO_SUCH_PARAM); - return PR_FALSE; - break; - - } - - return PR_TRUE; - -} - -PRBool -bs_event_get_uint_property (BSEventClass *event, BSEventProperty prop, - bsuint *v) - -{ - return bs_event_set_property (event, prop, BSTYPE_UINT, v); - -} - -PRBool -bs_event_get_string_property (BSEventClass *event, BSEventProperty prop, - bschar **v) -{ - return bs_event_set_property (event, prop, BSTYPE_STRING, v); - -} - -PRBool -bs_event_get_bool_property (BSEventClass *event, BSEventProperty prop, - PRBool *v) -{ - return bs_event_set_property (event, prop, BSTYPE_BOOLEAN, v); - -} - -PRBool -bs_event_get_object_property (BSEventClass *event, BSEventProperty prop, - void **v) - -{ - return bs_event_set_property (event, prop, BSTYPE_OBJECT, v); - -} - -PR_END_EXTERN_C diff --git a/extensions/irc/libbs/bsevent.h b/extensions/irc/libbs/bsevent.h deleted file mode 100644 index 7dd7bb3bd89c..000000000000 --- a/extensions/irc/libbs/bsevent.h +++ /dev/null @@ -1,64 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bsevent_h___ -#define bsevent_h___ - -#include "prtypes.h" - -PR_BEGIN_EXTERN_C - -/* constructor */ -extern BSEventClass * -bs_event_new (BSObjectType obj_type, void *dest, BSHandlerID id, void *data, - BSEventClass *previous, BSEventDeallocator *da); - -/* - * alternate constructor. makes a memcpy of *data, and automatically - * frees it in bs_event_free - */ -extern BSEventClass * -bs_event_new_copy (BSObjectType obj_type, void *dest, BSHandlerID id, - void *data, bsuint length, BSEventClass *previous); - -/* - * alternate constructor. makes a copy of the null terminated string in - * *data, and automatically frees it in bs_event_free - */ -extern BSEventClass * -bs_event_new_copyZ (BSObjectType obj_type, void *dest, BSHandlerID id, - bschar *data, BSEventClass *previous); - -/* deallocator */ -extern void -bs_event_free (BSEventClass *event); - -extern PRBool -bs_event_route (BSEventClass *event, BSEventHookCallback *hook_func); - -PR_END_EXTERN_C - -#endif /* bsevent_h___ */ diff --git a/extensions/irc/libbs/bsnetwork.c b/extensions/irc/libbs/bsnetwork.c deleted file mode 100644 index fd3431e456f3..000000000000 --- a/extensions/irc/libbs/bsnetwork.c +++ /dev/null @@ -1,375 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#include "prtypes.h" -#include "prmem.h" -#include "prlog.h" - -#include "bsapi.h" -#include "bsconfig.h" -#include "bspubtd.h" -#include "bserror.h" -#include "bsserver.h" -#include "bsconnection.h" - -PR_BEGIN_EXTERN_C - -typedef struct BSServerLink BSServerLink; - -struct BSServerLink { - PRCList list; - BSServerClass *server; -}; - -typedef struct BSServerList BSServerList; - -BSNetworkClass * -bs_network_new (const char *name) -{ - BSNetworkClass *new_network; - - new_network = PR_NEW (BSNetworkClass); - if (!new_network) - return PR_FALSE; - - new_network->name = PR_Malloc ((strlen (name) + 1) * - sizeof (bschar)); - if (!new_network->name) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return PR_FALSE; - } - - strcpy (new_network->name, name); - - new_network->event_queue = bs_queue_new(); - if (!new_network->event_queue) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return NULL; - } - - new_network->events_per_step = BS_EVENTS_PER_STEP_DEFAULT; - new_network->server_count = 0; - - PR_INIT_CLIST (&new_network->server_list); - - return new_network; - -} - -void -bs_network_free (BSNetworkClass *network) -{ - PRCList *head; - BSServerClass *server; - - PR_ASSERT (network); - - while (bs_queue_size (network->event_queue) > 0) - bs_queue_pop (network->event_queue, NULL); - - bs_queue_free (network->event_queue); - - while (!PR_CLIST_IS_EMPTY(&network->server_list)) - { - head = PR_LIST_HEAD(&network->server_list); - if (head == &network->server_list) - break; - server = ((BSServerLink *)head)->server; - bs_server_free (server); - PR_REMOVE_AND_INIT_LINK(head); - network->server_count--; - } - - PR_ASSERT (network->server_count == 0); - - PR_FREEIF (server->hostname); - PR_Free (server); - -} - -BSServerClass * -bs_network_add_server (BSNetworkClass *network, const char *hostname) -{ - BSServerLink *server_link; - - server_link = PR_NEW(BSServerLink); - if (!server_link) - return NULL; - - server_link->server = bs_server_new (network, hostname); - - if (!server_link->server) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return NULL; - } - - PR_APPEND_LINK ((PRCList *)server_link, &network->server_list); - - network->server_count++; - - return server_link->server; - -} - -PRBool -bs_network_enumerate_servers (BSNetworkClass *network, - BSEnumerateCallback *enum_func, void *data) -{ - PRCList *link; - BSServerClass *server; - bsuint i = 0; - - PR_ASSERT (network); - - if (PR_CLIST_IS_EMPTY(&network->server_list)) - return PR_TRUE; - - link = PR_LIST_HEAD(&network->server_list); - - while (link != (PRCList *)network) - { - server = ((BSServerLink *)link)->server; - if (!enum_func (server, data, i++)) - break; - link = PR_NEXT_LINK (link); - } - - return PR_TRUE; - -} - -PRBool -bs_network_server_enumerator (void *server, void *event_queue, - bsuint i) -{ - - bs_server_poll_connections ((BSServerClass *)server, - (BSQueueClass *)event_queue); - return PR_TRUE; - -} - -PRBool -bs_network_poll_servers (BSNetworkClass *network) -{ - - bs_network_enumerate_servers (network, bs_network_server_enumerator, - network->event_queue); - - return PR_TRUE; - -} - -BSEventClass * -bs_network_route (BSNetworkClass *network, BSEventClass *event) -{ - - if ((event->id < BSNETWORK_EVENT_COUNT) && - (network->callback_table[event->id])) - return network->callback_table[event->id](network, event); - else - return NULL; - -} - -void -bs_network_step_events (BSNetworkClass *network, bsuint *event_count) -{ - bsuint i; - BSEventClass *event; - - if (event_count) - *event_count = 0; - - for (i = 0; (i < network->events_per_step) && - (bs_queue_size (network->event_queue) > 0); i++) - { - event = bs_queue_pop (network->event_queue, NULL); - bs_event_route (event, NULL); - if (event_count) - (*event_count)++; - } - -} - -PRBool -bs_network_set_handler (BSNetworkClass *network, BSNetworkEvent event_type, - BSNetworkEventCallback *handler) -{ - PR_ASSERT (network); - - network->callback_table[event_type] = handler; - - return PR_TRUE; - -} - -PRBool -bs_network_set_property (BSNetworkClass *network, BSNetworkProperty prop, - bsint type, void *v) -{ - PR_ASSERT (network); - - switch (prop) - { - case BSPROP_NAME: - if (!BS_CHECK_TYPE (type, BSTYPE_STRING)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - BS_ReportError (BSERR_READ_ONLY); - return PR_FALSE; - break; - - case BSPROP_EVENTS_PER_STEP: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - network->events_per_step = *(bsint *)v; - break; - - default: - break; - - } - - return PR_TRUE; - -} - -PRBool -bs_network_set_uint_property (BSNetworkClass *network, BSNetworkProperty prop, - bsuint v) -{ - return bs_network_set_property (network, prop, BSTYPE_UINT, &v); - -} - -PRBool -bs_network_set_string_property (BSNetworkClass *network, - BSNetworkProperty prop, bschar *v) -{ - return bs_network_set_property (network, prop, BSTYPE_STRING, v); - -} - -PRBool -bs_network_set_bool_property (BSNetworkClass *network, BSNetworkProperty prop, - PRBool v) -{ - return bs_network_set_property (network, prop, BSTYPE_BOOLEAN, &v); - -} - -PRBool -bs_network_set_object_property (BSNetworkClass *network, - BSNetworkProperty prop, void *v) -{ - return bs_network_set_property (network, prop, BSTYPE_OBJECT, v); - -} - -PRBool -bs_network_get_property (BSNetworkClass *network, BSServerProperty prop, - bsint type, void **v) -{ - PR_ASSERT (network); - - switch (prop) - { - - case BSPROP_NAME: - if (!BS_CHECK_TYPE (type, BSTYPE_STRING)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(bschar **)v = network->name; - break; - - case BSPROP_EVENTS_PER_STEP: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(bsint *)v = network->events_per_step; - break; - - default: - break; - - } - - return PR_TRUE; - -} - -PRBool -bs_network_get_uint_property (BSNetworkClass *network, BSNetworkProperty prop, - bsuint *v) - -{ - return bs_network_set_property (network, prop, BSTYPE_UINT, v); - -} - -PRBool -bs_network_get_string_property (BSNetworkClass *network, - BSNetworkProperty prop, bschar **v) -{ - return bs_network_set_property (network, prop, BSTYPE_STRING, v); - -} - -PRBool -bs_network_get_bool_property (BSNetworkClass *network, BSNetworkProperty prop, - PRBool *v) -{ - return bs_network_set_property (network, prop, BSTYPE_BOOLEAN, v); - -} - -PRBool -bs_network_get_object_property (BSNetworkClass *network, - BSNetworkProperty prop, BSNetworkClass **v) - -{ - return bs_network_set_property (network, prop, BSTYPE_OBJECT, v); - -} - -PR_END_EXTERN_C diff --git a/extensions/irc/libbs/bsnetwork.h b/extensions/irc/libbs/bsnetwork.h deleted file mode 100644 index fdff34c5f422..000000000000 --- a/extensions/irc/libbs/bsnetwork.h +++ /dev/null @@ -1,95 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bsnetwork_h___ -#define bsnetwork_h___ - -#include "prtypes.h" - -#include "bspubtd.h" -#include "bsserver.h" -#include "bsconnection.h" - -PR_BEGIN_EXTERN_C - -extern BSNetworkClass * -bs_network_new (const char *name); - -extern void -bs_network_free (BSNetworkClass *network); - -BSServerClass * -bs_network_add_server (BSNetworkClass *network, const char *hostname); - -PRBool -bs_network_poll_servers (BSNetworkClass *network); - -BSEventClass * -bs_network_route (BSNetworkClass *network, BSEventClass *event); - -extern void -bs_network_step_events (BSNetworkClass *network, bsuint *event_count); - -extern PRBool -bs_connection_set_handler (BSConnectionClass *connection, - BSConnectionEvent event_type, - BSConnectionEventCallback *handler); - -extern PRBool -bs_network_set_uint_property (BSNetworkClass *network, BSNetworkProperty prop, - bsuint v); - -extern PRBool -bs_network_set_string_property (BSNetworkClass *network, - BSNetworkProperty prop, bschar *v); - -extern PRBool -bs_network_set_bool_property (BSNetworkClass *network, BSNetworkProperty prop, - PRBool v); - -extern PRBool -bs_network_set_object_property (BSNetworkClass *network, - BSNetworkProperty prop, void *v); - -extern PRBool -bs_network_get_uint_property (BSNetworkClass *network, BSNetworkProperty prop, - bsuint *v); - -extern PRBool -bs_network_get_string_property (BSNetworkClass *network, - BSNetworkProperty prop, bschar **v); - -extern PRBool -bs_network_get_bool_property (BSNetworkClass *network, - BSNetworkProperty prop, PRBool *v); - -extern PRBool -bs_network_get_object_property (BSNetworkClass *network, - BSNetworkProperty prop, BSNetworkClass **v); - -PR_END_EXTERN_C - -#endif /* bsnetwork_h__ */ diff --git a/extensions/irc/libbs/bspubtd.h b/extensions/irc/libbs/bspubtd.h deleted file mode 100644 index 7523273accbc..000000000000 --- a/extensions/irc/libbs/bspubtd.h +++ /dev/null @@ -1,148 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bspubtd_h___ -#define bspubtd_h___ - -#include "prtypes.h" -#include "prclist.h" -#include "prio.h" - -PR_BEGIN_EXTERN_C - -typedef PRInt32 bsint; -typedef PRUint16 bsuint; -typedef PRInt64 bsdouble; -typedef char bschar; - -typedef bsint BSHandlerID; - -typedef bsuint BSNetworkProperty; -typedef bsuint BSServerProperty; -typedef bsuint BSConnectionProperty; -typedef bsuint BSEventProperty; - -typedef struct BSQueueClass BSQueueClass; -typedef struct BSEventClass BSEventClass; -typedef struct BSNetworkClass BSNetworkClass; -typedef struct BSServerClass BSServerClass; -typedef struct BSConnectionClass BSConnectionClass; - -typedef BSEventClass *BSEventHookCallback (BSEventClass *event); -typedef BSEventClass *BSNetworkEventCallback (BSNetworkClass *network, - BSEventClass *event); -typedef BSEventClass *BSServerEventCallback (BSServerClass *server, - BSEventClass *event); -typedef BSEventClass *BSConnectionEventCallback (BSConnectionClass *connection, - BSEventClass *event); - -typedef PRBool BSEnumerateCallback (void *obj, void *data, bsuint i); -typedef void *BSEventDeallocator (BSEventClass *event); - - -typedef enum BSType { - BSTYPE_UINT = 1, - BSTYPE_STRING = 2, - BSTYPE_BOOLEAN = 4, - BSTYPE_OBJECT = 8 -} BSType; - -typedef enum BSObjectType { - BSOBJ_NETWORK, - BSOBJ_SERVER, - BSOBJ_CONNECTION, - BSOBJ_INVALID_OBJECT -} BSObjectType; - -struct BSEventClass { - BSEventDeallocator *da; - BSObjectType obj_type; - BSEventClass *previous; - BSHandlerID id; - void *dest; - void *data; - -}; - -/** network typedefs **/ -typedef enum BSNetworkEvent { - BSEVENT_NETWORK_HOOK_CALLBACK, - BSNETWORK_EVENT_COUNT -} BSNetworkEvent; - -struct BSNetworkClass -{ - PRCList server_list; - BSNetworkEventCallback *callback_table[BSNETWORK_EVENT_COUNT]; - bschar *name; - BSQueueClass *event_queue; - bsuint events_per_step, server_count; - -}; - -/** server typedefs **/ -typedef enum BSServerEvent { - BSEVENT_SERVER_HOOK_CALLBACK, - BSEVENT_SERVER_CONNECT, - BSEVENT_SERVER_DISCONNECT, - BSEVENT_SERVER_RAWDATA, - BSSERVER_EVENT_COUNT -} BSServerEvent; - -struct BSServerClass -{ - PRCList connection_list; - BSServerEventCallback *callback_table[BSSERVER_EVENT_COUNT]; - BSNetworkClass *parent_network; - bschar *hostname; - bsuint input_timeout, connection_count; - PRBool linebuffer_flag; -}; - -/** connection typedefs **/ -typedef enum BSConnectionEvent { - BSEVENT_CONNECTION_HOOK_CALLBACK, - BSEVENT_CONNECTION_CONNECT, - BSEVENT_CONNECTION_DISCONNECT, - BSEVENT_CONNECTION_RAWDATA, - BSCONNECTION_EVENT_COUNT -} BSConnectionEvent; - -struct BSConnectionClass -{ - BSConnectionEventCallback *callback_table[BSCONNECTION_EVENT_COUNT]; - BSServerClass *parent_server; - PRBool linebuffer_flag, is_connected; - bsint port; - bschar *linebuffer; - PRFileDesc *fd; - -}; - -PR_END_EXTERN_C - -#endif /* bspubtd_h___ */ - diff --git a/extensions/irc/libbs/bsqueue.c b/extensions/irc/libbs/bsqueue.c deleted file mode 100644 index 5ba10fb0db21..000000000000 --- a/extensions/irc/libbs/bsqueue.c +++ /dev/null @@ -1,236 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#include "prtypes.h" -#include "prmem.h" -#include "prlog.h" - -#include "bsqueue.h" -#include "bspubtd.h" - -typedef int QueueCompareOp (void *, void *); - -typedef struct BSQueueElementClass BSQueueElementClass; - -struct BSQueueElementClass { - void *data; - cron_t cron; /* elements will be sorted in cron order */ - BSQueueElementClass *up; -}; - -struct BSQueueClass { - bsuint size; - BSQueueElementClass *bottom; /* queue pulls from the bottom up */ - QueueCompareOp *CompareOp; -}; - -BSQueueClass* -bs_queue_new (void) -{ - BSQueueClass *newqueue; - - newqueue = PR_NEW (BSQueueClass); - - newqueue->bottom = NULL; - newqueue->size = 0; - - return newqueue; - -} - -void -bs_queue_free (BSQueueClass *queue) -{ - - PR_ASSERT (queue->size == 0); - PR_ASSERT (queue->bottom == NULL); - - PR_Free (queue); - - queue = NULL; - -} - -int -bs_queue_add (BSQueueClass *queue, void *data, cron_t cron) -{ - BSQueueElementClass *newelement, *currentelement, *previouselement = NULL; - - PR_ASSERT (queue); - - newelement = PR_NEW (BSQueueElementClass); - - if (!newelement) - return 0; - - newelement->up = NULL; - newelement->data = data; - newelement->cron = cron; - - if (queue->bottom == NULL) /* if the queue is empty */ - { - queue->bottom = newelement; /* then this is the first element */ - queue->size = 1; - } - else /* otherwise */ - { - currentelement = queue->bottom; /* search for the right spot */ - - /* find the first element with a smaller cron than this element */ - while (currentelement && (newelement->cron >= currentelement->cron)) - { - previouselement = currentelement; - currentelement = currentelement->up; - } - - if (currentelement) /* if we're not left at the top of the queue */ - { - if (previouselement) /* were either in the middle, */ - { - newelement->up = currentelement; /* insert the new element */ - previouselement->up = newelement; /* above the current one */ - } - else /* or at the bottom */ - { - newelement->up = queue->bottom; - queue->bottom = newelement; - } - - } - else /* otherwise */ - { - previouselement->up = newelement; /* this is the new top element */ - } - - queue->size++; - - } - - return queue->size; - -} - -void * -bs_queue_pop (BSQueueClass *queue, cron_t *cron) -{ - BSQueueElementClass *bottomelement; - void *rval; - - PR_ASSERT (queue); - - if (queue->size < 1) - return NULL; - - bottomelement = queue->bottom; - - if (cron) - *cron = queue->bottom->cron; - - rval = bottomelement->data; - - queue->bottom = bottomelement->up; - - queue->size--; - - if (queue->size < 1) - { - queue->bottom = NULL; - } - - PR_Free (bottomelement); - - return rval; - -} - -void * -bs_queue_peek (BSQueueClass *queue, cron_t *cron) -{ - - PR_ASSERT (queue); - - if (queue->size < 1) - return NULL; - - if (cron) - *cron = queue->bottom->cron; - - return (queue->bottom->data); - -} - -int -bs_queue_size (BSQueueClass *queue) -{ - PR_ASSERT (queue); - - return queue->size; - -} - -/* deletes all queue items which have the data *data */ -int -bs_queue_delete (BSQueueClass *queue, void *data) -{ - BSQueueElementClass *currentelement, *lastelement; - - if (!(currentelement = queue->bottom)) - return 0; - - /* move the bottom up */ - while (queue->bottom->data == data) - { - lastelement = queue->bottom; - queue->bottom = queue->bottom->up; - queue->size--; - - PR_Free (lastelement); - - currentelement = queue->bottom; - } - - /* then trim the middle */ - while (currentelement->up) - { - if (currentelement->up->data == data) - { - currentelement->up = currentelement->up->up; - lastelement = currentelement->up; - queue->size--; - - PR_Free (lastelement); - } - - currentelement = currentelement->up; - } - - return 1; - -} - - - - diff --git a/extensions/irc/libbs/bsqueue.h b/extensions/irc/libbs/bsqueue.h deleted file mode 100644 index 216081df1baa..000000000000 --- a/extensions/irc/libbs/bsqueue.h +++ /dev/null @@ -1,57 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bsqueue_h___ -#define bsqueue_h___ - -#include "prtypes.h" -#include "bspubtd.h" - -PR_BEGIN_EXTERN_C - -typedef PRUint32 cron_t; - -BSQueueClass * -bs_queue_new (void); - -void -bs_queue_free (BSQueueClass *queue); - -int -bs_queue_add (BSQueueClass *queue, void *data, cron_t cron); - -void * -bs_queue_pop (BSQueueClass *queue, cron_t *cron); - -void * -bs_queue_peek (BSQueueClass *queue, cron_t *cron); - -int -bs_queue_size (BSQueueClass *queue); - -PR_END_EXTERN_C - -#endif /* bsqueue_h___ */ diff --git a/extensions/irc/libbs/bsserver.c b/extensions/irc/libbs/bsserver.c deleted file mode 100644 index 0b3c0c4f5a43..000000000000 --- a/extensions/irc/libbs/bsserver.c +++ /dev/null @@ -1,513 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#include - -#include "prtypes.h" -#include "prmem.h" -#include "prio.h" -#include "prclist.h" -#include "prlog.h" -#include "prnetdb.h" - -#include "bspubtd.h" -#include "bsconfig.h" -#include "bserror.h" -#include "bsevent.h" -#include "bsapi.h" -#include "bsconnection.h" -#include "bsserver.h" -#include "bsutil.h" - -PR_BEGIN_EXTERN_C - -typedef struct BSConnectionEnumData BSConnectionEnumData; -typedef struct BSConnectionLink BSConnectionLink; - -struct BSConnectionEnumData { - PRPollDesc *polldesc; - BSConnectionClass **connection; -}; - -struct BSConnectionLink { - PRCList list; - BSConnectionClass *connection; -}; - -BSServerClass * -bs_server_new (BSNetworkClass *parent, const char *hostname) -{ - BSServerClass *new_server; - - new_server = PR_NEW (BSServerClass); - if (!new_server) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return PR_FALSE; - } - - if (!hostname) - { - BS_ReportError (BSERR_INVALID_STATE); - PR_Free (new_server); - return NULL; - } - - new_server->hostname = PR_Malloc ((strlen (hostname) + 1) * - sizeof (bschar)); - if (!new_server->hostname) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - PR_Free (new_server); - return PR_FALSE; - } - - strcpy (new_server->hostname, hostname); - - memset (new_server->callback_table, 0, - BSSERVER_EVENT_COUNT); - - new_server->parent_network = parent; - new_server->connection_count = 0; - new_server->input_timeout = BS_INPUT_TIMEOUT_DEFAULT; - - PR_INIT_CLIST (&new_server->connection_list); - - return new_server; - -} - -void -bs_server_free (BSServerClass *server) -{ - PRCList *head; - BSConnectionClass *connection; - - PR_ASSERT (server); - - while (!PR_CLIST_IS_EMPTY(&server->connection_list)) - { - head = PR_LIST_HEAD(&server->connection_list); - if (head == &server->connection_list) - break; - connection = ((BSConnectionLink *)head)->connection; - bs_connection_free (connection); - PR_REMOVE_AND_INIT_LINK(head); - server->connection_count--; - } - - PR_ASSERT (server->connection_count == 0); - - if (server->hostname) - PR_Free (server->hostname); - - PR_Free (server); - -} - -BSConnectionClass * -bs_server_connect (BSServerClass *server, bsint port, const bschar *bind_addr, - PRBool tcp) -{ - PRFileDesc *fd; - PRNetAddr naconnect, nabind; - PRIntervalTime to; - PRStatus rv; - BSConnectionClass *connection; - BSConnectionLink *connection_link; - - PR_ASSERT (server); - - if (tcp) - fd = PR_NewTCPSocket(); - else - fd = PR_NewUDPSocket(); - if (!fd) - { - BS_ReportPRError (PR_GetError()); - return NULL; - } - - if (bs_util_is_ip (server->hostname)) - rv = PR_StringToNetAddr (server->hostname, &naconnect); - else - rv = bs_util_resolve_host (server->hostname, &naconnect); - if (PR_FAILURE == rv) - { - BS_ReportPRError (PR_GetError()); - goto error_out; - } - - if (bind_addr) - { - rv = PR_StringToNetAddr (bind_addr, &nabind); - if (PR_FAILURE == rv) - { - BS_ReportPRError (PR_GetError()); - goto error_out; - } - - PR_Bind (fd, &nabind); - } - - rv = PR_InitializeNetAddr (PR_IpAddrNull, port, &naconnect); - if (PR_FAILURE == rv) - { - BS_ReportPRError (PR_GetError()); - goto error_out; - } - - to = PR_MillisecondsToInterval (BS_CONNECTION_TIMEOUT_MS); - - rv = PR_Connect (fd, &naconnect, to); - if (PR_FAILURE == rv) - { - BS_ReportPRError (PR_GetError()); - goto error_out; - } - - connection = bs_connection_new (server, fd, port); - if (connection) - { - connection_link = PR_NEW (BSConnectionLink); - if (!connection_link) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - PR_Shutdown (fd, PR_SHUTDOWN_BOTH); - goto error_out; - } - connection_link->connection = connection; - - PR_APPEND_LINK ((PRCList *)connection_link, &server->connection_list); - } - - server->connection_count++; - - return connection; - - error_out: - PR_Close (fd); - return NULL; - -} - -PRBool -bs_server_enumerate_connections (BSServerClass *server, - BSEnumerateCallback *enum_func, void *data) -{ - PRCList *link; - BSConnectionClass *connection; - bsuint i = 0; - - PR_ASSERT (server); - - if (PR_CLIST_IS_EMPTY(&server->connection_list)) - return PR_TRUE; - - link = PR_LIST_HEAD(&server->connection_list); - - while (link != (PRCList *)server) - { - connection = ((BSConnectionLink *)link)->connection; - if (!enum_func (connection, data, i++)) - break; - link = PR_NEXT_LINK (link); - } - - return PR_TRUE; - -} - -PRBool -bs_server_connection_enumerator (void *connection, - void *enumdata, bsuint i) -{ - PRFileDesc *fd; - BSConnectionEnumData *ed; - - fd = bs_connection_get_fd ((BSConnectionClass *)connection); - ed = (BSConnectionEnumData *)enumdata; - - ed->polldesc[i].fd = fd; - ed->polldesc[i].in_flags = PR_POLL_READ; - ed->connection[i] = (BSConnectionClass *)connection; - - return PR_TRUE; - -} - -PRBool -bs_server_poll_connections (BSServerClass *server, BSQueueClass *event_queue) -{ - PRInt32 rv, i; - BSConnectionEnumData enumdata; - - enumdata.polldesc = PR_Calloc (server->connection_count, - sizeof (PRPollDesc *)); - - enumdata.connection = PR_Calloc (server->connection_count, - sizeof (BSConnectionClass *)); - - if (!enumdata.polldesc || !enumdata.connection) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return PR_FALSE; - } - - bs_server_enumerate_connections (server, bs_server_connection_enumerator, - &enumdata); - - rv = PR_Poll (enumdata.polldesc, server->connection_count, - PR_INTERVAL_NO_WAIT); - - for (i = 0; i < server->connection_count; i++) - if (enumdata.polldesc[i].out_flags & PR_POLL_READ) - bs_connection_recv (enumdata.connection[i], event_queue); - - return PR_TRUE; - -} - -BSEventClass * -bs_server_route (BSServerClass *server, BSEventClass *event) -{ - - if ((event->id < BSSERVER_EVENT_COUNT) && - (server->callback_table[event->id])) - return server->callback_table[event->id](server, event); - else - return NULL; - -} - -PRBool -bs_server_set_handler (BSServerClass *server, BSServerEvent event_type, - BSServerEventCallback *handler) -{ - PR_ASSERT (server); - - if (event_type > BSSERVER_EVENT_COUNT) - { - BS_ReportError (BSERR_NO_SUCH_EVENT); - return PR_FALSE; - } - - server->callback_table[event_type] = handler; - - return PR_TRUE; - -} - -PRBool -bs_server_set_property (BSServerClass *server, BSServerProperty prop, - bsint type, void *v) -{ - PR_ASSERT (server); - - switch (prop) - { - case BSPROP_PARENT: - if (!BS_CHECK_TYPE(type, BSTYPE_OBJECT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - server->parent_network = (BSNetworkClass *)v; - break; - - case BSPROP_INPUT_TIMEOUT: - if (!BS_CHECK_TYPE(type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - server->input_timeout = *(int *)v; - break; - - case BSPROP_LINE_BUFFER: - if (!BS_CHECK_TYPE(type, BSTYPE_BOOLEAN)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - server->linebuffer_flag = *(PRBool *)v; - break; - - - case BSPROP_HOSTNAME: - if (!BS_CHECK_TYPE(type, BSTYPE_STRING)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - PR_FREEIF (server->hostname); - server->hostname = PR_Malloc ((strlen ((bschar *)v) + 1) * - sizeof (bschar)); - if (!server->hostname) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return PR_FALSE; - } - - strcpy (server->hostname, (bschar *)v); - break; - - default: - break; - } - - return PR_FALSE; -} - -PRBool -bs_server_set_uint_property (BSServerClass *server, BSServerProperty prop, - bsuint *v) -{ - return bs_server_set_property (server, prop, BSTYPE_UINT, &v); - -} - -PRBool -bs_server_set_string_property (BSServerClass *server, BSServerProperty prop, - bschar *v) -{ - return bs_server_set_property (server, prop, BSTYPE_STRING, v); - -} - -PRBool -bs_server_set_bool_property (BSServerClass *server, BSServerProperty prop, - PRBool *v) -{ - return bs_server_set_property (server, prop, BSTYPE_BOOLEAN, &v); - -} - -PRBool -bs_server_set_object_property (BSServerClass *server, BSServerProperty prop, - void *v) -{ - return bs_server_set_property (server, prop, BSTYPE_OBJECT, v); - -} - -PRBool -bs_server_get_property (BSServerClass *server, BSServerProperty prop, - bsint type, void *v) -{ - PR_ASSERT (server); - - switch (prop) - { - case BSPROP_PARENT: - if (!BS_CHECK_TYPE (type, BSTYPE_OBJECT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - v = server->parent_network; - break; - - case BSPROP_INPUT_TIMEOUT: - if (!BS_CHECK_TYPE (type, BSTYPE_UINT)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(bsuint *)v = server->input_timeout; - break; - - case BSPROP_LINE_BUFFER: - if (!BS_CHECK_TYPE (type, BSTYPE_BOOLEAN)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - *(PRBool *)v = server->linebuffer_flag; - break; - - - case BSPROP_HOSTNAME: - if (!BS_CHECK_TYPE (type, BSTYPE_STRING)) - { - BS_ReportError (BSERR_PROPERTY_MISMATCH); - return PR_FALSE; - } - - v = server->hostname; - break; - - default: - break; - - } - - return PR_FALSE; -} - -PRBool -bs_server_get_uint_property (BSServerClass *server, BSServerProperty prop, - bsuint *v) - -{ - return bs_server_get_property (server, prop, BSTYPE_UINT, v); - -} - -PRBool -bs_server_get_string_property (BSServerClass *server, BSServerProperty prop, - bschar **v) -{ - return bs_server_get_property (server, prop, BSTYPE_STRING, v); - -} - -PRBool -bs_server_get_bool_property (BSServerClass *server, BSServerProperty prop, - PRBool *v) -{ - return bs_server_get_property (server, prop, BSTYPE_BOOLEAN, v); - -} - -PRBool -bs_server_get_object_property (BSServerClass *server, BSServerProperty prop, - BSServerClass **v) - -{ - return bs_server_get_property (server, prop, BSTYPE_OBJECT, v); - -} - -PR_END_EXTERN_C - diff --git a/extensions/irc/libbs/bsserver.h b/extensions/irc/libbs/bsserver.h deleted file mode 100644 index 28d44d2560a5..000000000000 --- a/extensions/irc/libbs/bsserver.h +++ /dev/null @@ -1,98 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - */ - -#ifndef bsserver_h___ -#define bsserver_h___ - -#include "prtypes.h" - -#include "bsnetwork.h" - -PR_BEGIN_EXTERN_C - -/* constructor */ -extern BSServerClass * -bs_server_new (BSNetworkClass *parent, const char *hostname); - -/* deallocator */ -extern void -bs_server_free (BSServerClass *server); - -/* connect to the server. Basically, a connection factory */ -extern BSConnectionClass * -bs_server_connect (BSServerClass *server, bsint port, const bschar *bind_addr, - PRBool tcp); - -/* poll all connections */ -PRBool -bs_server_poll_connections (BSServerClass *server, BSQueueClass *event_queue); - -/* route an event, friends only */ -BSEventClass * -bs_server_route (BSServerClass *server, BSEventClass *event); - -/* changes an event handler */ -extern PRBool -bs_server_set_handler (BSServerClass *server, - BSServerEvent event_type, - BSServerEventCallback *handler); - -/* property access routines */ -extern PRBool -bs_server_set_uint_property (BSServerClass *server, BSServerProperty prop, - bsuint *v); - -extern PRBool -bs_server_set_string_property (BSServerClass *server, BSServerProperty prop, - bschar *v); - -extern PRBool -bs_server_set_bool_property (BSServerClass *server, BSServerProperty prop, - PRBool *v); - -extern PRBool -bs_server_set_object_property (BSServerClass *server, BSServerProperty prop, - void *v); - -extern PRBool -bs_server_get_uint_property (BSServerClass *server, BSServerProperty prop, - bsuint *v); - -extern PRBool -bs_server_get_string_property (BSServerClass *server, BSServerProperty prop, - bschar **v); - -extern PRBool -bs_server_get_bool_property (BSServerClass *server, BSServerProperty prop, - PRBool *v); - -extern PRBool -bs_server_get_object_property (BSServerClass *server, BSServerProperty prop, - BSServerClass **v); - -PR_END_EXTERN_C - -#endif /* bsserver_h___ */ diff --git a/extensions/irc/libbs/bsutil.c b/extensions/irc/libbs/bsutil.c deleted file mode 100644 index 2a3a69d8ca81..000000000000 --- a/extensions/irc/libbs/bsutil.c +++ /dev/null @@ -1,159 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- - * - * The contents of this file are subject to the Mozilla Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Basic Socket Library - * - * The Initial Developer of the Original Code is New Dimensions Consulting, - * Inc. Portions created by New Dimensions Consulting, Inc. are - * Copyright (C) 1999 New Dimenstions Consulting, Inc. All - * Rights Reserved. - * - * Contributor(s): - * - * - * Contributor(s): - * Robert Ginda, rginda@ndcico.com, original author - * Simon Fraser, smfr@netscape.com, Mac warning fixes - */ -#include - -#include "prtypes.h" -#include "prmem.h" -#include "prprf.h" -#include "prnetdb.h" - -#include "bspubtd.h" -#include "bserror.h" - -PR_BEGIN_EXTERN_C - -PRBool -bs_util_is_ip (char *str) -{ - bsuint length; - bsuint decimals = 0; - int i; - - length = strlen (str); - - for (i = 0; i < length; i++) - { - switch (str[i]) - { - case '.': - decimals++; - if (decimals > 3) - return PR_FALSE; - break; - - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - break; - - default: - /* bad character, bail */ - return PR_FALSE; - } - } - - return PR_TRUE; - -} - -PRStatus -bs_util_resolve_host (const char *hostname, PRNetAddr *na) -{ - PRStatus rv; - bschar buf[PR_NETDB_BUF_SIZE]; - PRHostEnt he; - - rv = PR_GetHostByName (hostname, buf, PR_NETDB_BUF_SIZE, &he); - if (PR_FAILURE == rv) - return rv; - - return (PRStatus)PR_EnumerateHostEnt (0, &he, 0, na); - -} - -bschar * -bs_util_linebuffer (bschar *newline, bschar **buffer, PRBool flush) -{ - if (!newline) - return NULL; - - *buffer = PR_sprintf_append(*buffer, "%s", newline); - - if (!buffer) - { - BS_ReportError (BSERR_OUT_OF_MEMORY); - return NULL; - } - - if ((newline[strlen(newline) - 1] == '\n') || flush) - return *buffer; - else - return NULL; - -} - -/* - * turns a buffer full of |delim| delimeted lines into - * an array of \00 delimeted strings. Make sure to - * free the return value AND the longbuf when you're done with them. - */ -char ** -bs_util_delimbuffer_to_array (char *longbuf, int *lines, char delim) -{ - int buflen; - int i, line; - char **lineary; - - *lines = 0; - buflen = strlen (longbuf); - - for (i=0; i - -#include "prtypes.h" -#include "prinit.h" - -#include "bsapi.h" -#include "bsnetwork.h" -#include "bsserver.h" -#include "bsconnection.h" - -BSEventClass * -sample_onRawData (BSConnectionClass *connection, BSEventClass *event) -{ - - fprintf (stdout, "rawdata event '%s'\n", (bschar *)event->data); - - return NULL; - -} - -int -main (int argc, char **argv) -{ - BSNetworkClass *network; - BSServerClass *server; - BSConnectionClass *connection1, *connection2; - bsuint event_count; - PRBool lb; - PRIntervalTime to; - - network = bs_network_new ("EchoNet"); - - server = bs_network_add_server (network, "127.0.0.1"); - - connection1 = bs_server_connect (server, 7, NULL, PR_TRUE); - bs_connection_set_handler (connection1, BSEVENT_CONNECTION_RAWDATA, - sample_onRawData); - - connection2 = bs_server_connect (server, 7, NULL, PR_TRUE); - bs_connection_set_handler (connection2, BSEVENT_CONNECTION_RAWDATA, - sample_onRawData); - - bs_connection_get_bool_property (connection1, BSPROP_LINE_BUFFER, &lb); - printf ("Connection 1 linebuffer flag: %i\n", lb); - - bs_connection_set_bool_property (connection1, BSPROP_LINE_BUFFER, - PR_FALSE); - bs_connection_get_bool_property (connection1, BSPROP_LINE_BUFFER, &lb); - printf ("Set connection 1 linebuffer flag: %i\n", lb); - - bs_connection_send_string (connection1, "hello\nconnection 1\n"); - - bs_connection_send_string (connection2, "hello connection 2\n"); - - to = PR_MillisecondsToInterval (1000); - - do - { - PR_Sleep (to); - bs_network_poll_servers (network); - bs_network_step_events (network, &event_count); - - } while (event_count > 0); - - bs_network_free (network); - - return PR_Cleanup(); - -} - - - - diff --git a/extensions/irc/libbs/makefile.win b/extensions/irc/libbs/makefile.win deleted file mode 100644 index 5cb68e6957cb..000000000000 --- a/extensions/irc/libbs/makefile.win +++ /dev/null @@ -1,63 +0,0 @@ -# -# The contents of this file are subject to the Mozilla Public -# License Version 1.1 (the "License"); you may not use this file -# except in compliance with the License. You may obtain a copy of -# the License at http://www.mozilla.org/MPL/ -# -# Software distributed under the License is distributed on an "AS -# IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or -# implied. See the License for the specific language governing -# rights and limitations under the License. -# -# The Original Code is windows makefile for Basic Socket Library. -# -# The Initial Developer of the Original Code is Netscape Communications, -# Inc. Portions created by Netscape Communications are -# Copyright (C) Netscape Communications, Inc. All -# Rights Reserved. -# -# Contributor(s): -# leaf (daniel nunes) -# - -DEPTH=..\..\.. - -MAKE_OBJ_TYPE = DLL -MODULE=bs - -DLL=.\$(OBJDIR)\$(MODULE).dll - -LLIBS = \ - $(LIBNSPR) \ - $(DIST)\lib\xpcom.lib \ - $(NULL) - -XPIDLSRCS = \ - .\bsIConnection.idl \ - $(NULL) - -OBJS = \ - .\$(OBJDIR)\bsutil.obj \ - .\$(OBJDIR)\bserror.obj \ - .\$(OBJDIR)\bsevent.obj \ - .\$(OBJDIR)\bsqueue.obj \ - .\$(OBJDIR)\bsnetwork.obj \ - .\$(OBJDIR)\bsserver.obj \ - .\$(OBJDIR)\bsconnection.obj \ - .\$(OBJDIR)\bsXPCConnection.obj \ - .\$(OBJDIR)\bsXPCConnectionFactory.obj \ - $(NULL) - -LIBRARY_NAME = bs -IS_COMPONENT = 1 - -include <$(DEPTH)\config\rules.mak> - -install:: $(DLL) - $(MAKE_INSTALL) .\$(OBJDIR)\$(MODULE).dll $(DIST)\bin\components - $(MAKE_INSTALL) .\$(OBJDIR)\$(MODULE).lib $(DIST)\lib - -clobber:: - $(RM) $(DIST)\bin\components\$(MODULE).dll - $(RM) $(DIST)\lib\$(MODULE).lib -