Index: .darcs_binaries =================================================================== --- .darcs_binaries (.../vendor/psi/psi-0.10) (revision 39233) +++ .darcs_binaries (.../trunk/im/psi-0.10) (revision 39233) @@ -1,41 +0,0 @@ -# Binary file regexps: -\.png$ -\.PNG$ -\.gz$ -\.GZ$ -\.pdf$ -\.PDF$ -\.jpg$ -\.JPG$ -\.gif$ -\.GIF$ -\.tar$ -\.TAR$ -\.bz2$ -\.BZ2$ -\.z$ -\.Z$ -\.zip$ -\.ZIP$ -\.jar$ -\.JAR$ -\.so$ -\.SO$ -\.a$ -\.A$ -\.tgz$ -\.TGZ$ -\.jpeg$ -\.JPEG$ -\.mpg$ -\.MPG$ -\.mpeg$ -\.MPEG$ -\.iso$ -\.ISO$ -\.exe$ -\.EXE$ -\.doc$ -\.DOC$ -\.jisp$ -\.JISP$ Index: ChangeLog =================================================================== --- ChangeLog (.../vendor/psi/psi-0.10) (revision 39233) +++ ChangeLog (.../trunk/im/psi-0.10) (revision 39233) @@ -1,678 +0,0 @@ - -2005-08-22, Kevin Smith - Made the auto-expanding text input the default. - -2005-08-22, Remko Troncon - Added a UI option for auto-resizing text input. - - Added a message dialog suggesting you should restart. - - Fixed Mac OS X focus problem in GC dialog. - This is the same patch as the earlier one for the chat dialog. - - Reverted Fran's checkboxes for every sound event. (due to bugs) - - Agents now get other types of initial presence as well (FS#464). - Patch by IceRAM. - - Fixed authorization ping-pong issue. - Upon automatically granting authorzation, Psi no longer requests auth - when the subscription is already To or Both. - -2005-08-21, Michail Pishchagin - Fixed single-line edit. Now it should behave ok when pasting large chunks - of text at a time. - -2005-06-24, Remko Troncon - Added an option to set roster & chat dialog opacity (Win & Mac) - - Moved Misc. Appearance options to a separate tab - -2005-06-23, Remko Troncon - Added new appearance tweak options: - The group headings and account headings can now be assigned separate - foreground and background colours. - The group headings can now be set in 'slim' mode from the options dialog. - The outline of the headings can be toggled. - -2005-06-21, Remko Troncon - Hide unavailable platform-specific options from the UI - - Added 'Dock Bounce' option to the options dialog - - Changed 'MacOS X' into 'Mac OS X' here and there - -2005-06-19, Remko Troncon - Clarified the JID field of the 'Register Account' dialog - -2005-06-14, Remko Troncon - Mac OS X Dock icon changes: - Added an option to bounce the dock once/never/forever. - Added an overlayed event count to the dock icon. - -2005-06-08, Remko Troncon - Separate checkboxes for every sound event + global checkbox in options - dialog. Patch by Fran. - -2005-05-24, Kevin Smith - Finally fixed that tabs bug that could cause segfaults and strange behaviours - -2005-05-14, Remko Troncon - Updates to the About Dialog - - Fixed a memory leak in the Growl notification popups - - Change Gadu-Gadu version string to the registered one (patch by - Maciek Niedzielski) - - Fixed Mac OS X focus problems in the Chat Dialog - - Flattened account context menu - - Moved 'Check Status' dialog into the 'User Info' (VCard) dialog - - Merged all iconset tabs into the appearance tab - Applied Kris Vandenbroek's fix for the iconset tabs - Misc. iconset details dialog improvements - - Added 'Chat' button to the event dialog - - Cleaning up the Account Dialog - -2005-05-04, Kevin Smith - Changed the default from off to on for the previous patch - -2005-05-01, Remko Troncon - Added an option to be notified of receiving authorization. Turned off by - default (as in about every IM client out there). In combination with - 'auto-authorize', this makes a temporary solution for clean registration - with transports. - -2005-04-16, Remko Troncon - Support clicking on Growl notifications. Fix some possible memory leaks - in GrowlNotifier. - -2005-04-14, Remko Troncon - Translated all the Growl strings. - -2005-04-14, Remko Troncon - Modified the VCard dialog to enable displaying and setting of the photo - field (patch by Fran Rodrguez) - -2005-04-12, Kevin Smith - Commiting Remko's growl patch. Strings aren't properly translated, he'll - have to fix this sometime - -2005-04-07, Kevin Smith - Committed a Linux From Scratch detection patch by Christopher Beppler - -2005-04-07, Kevin Smith - Committed Remko's avatars patch to enable people to work on a central - codebase. - -2005-03-29, Kevin Smith - Machekku's selection Auto-copy patch. - -2005-03-22, Michail Pishchagin - Updated roster auto-resize code. Now it should work for toggling self - contact too. - -2005-03-12, Michail Pishchagin - Fixed bug: when loading eventqueue. If account name for event is not - specified or incorrect, it's unable to display that message. - -2005-03-09, Michail Pishchagin - Now, appending lines to the history files would not require index. - Thus, major speedup. - -2005-03-05, Michail Pishchagin - Ctrl-I shortcut will now trigger VCard dialog in MainWin, ChatDlg and - EventDlg. - - Single-line edit should now work fine in tabbed chats too. - -2005-02-28, Kevin Smith - Added icons and close buttons to each tab, getting rid of the unsightly one - in the corner. - -2005-02-28, Kevin Smith - Added the option to have tabs at the bottom of windows instead, and - added drag and drop between tab windows. - -2005-02-28, Kevin Smith - Patch by PSZ to make Psi remember the last-used paths for file dialogs - on exit. - -2005-02-24, Michail Pishchagin - Now Shift+Space and Ctrl+Shift+Space global shortcuts should work on - Linux too. And the GlobalAccel feature should now be used by everyone ;) - -2005-02-22, Kevin Smith - Remko's patch for the mac menu. - -2005-02-20, Michail Pishchagin - Psi won't stick to hidden windows anymore. - - Now, config.xml should not be saved when processing new events. - - Slightly better auto-roster-resizing on account enabling/disabling. - -2005-02-13, Michail Pishchagin - New AdvancedWidget template class, which implements sticking to screen - edges, and to other top-level widgets of the same app. Also implements - taskbar flashing. Chat, GroupChat, MainWin, Message dialogs are now - AdvancedWidget-enabled. - -2005-02-13, Kevin Smith - Newer version of the tabs code. Hopefully now it'll compile on non-linux without problems - -2005-02-13, Kevin Smith - Remko's menubar patch - -2005-01-23, Kevin Smith - Remko's memory leak in eventdb patch - -2005-02-06, Michail Pishchagin - New autoRosterSize option, which automatically resizes your roster window - to fit as many contacts as possible. Please test it well ;) - - Automatically resolve names of newly added contacts, if they don't have - assigned name yet. Could be useful when ICQ Transport is configured to - automatically add ICQ users to your roster. Also it could save you some - time, clicking the Resolve button if you want to keep default nickname. - -2005-01-30, Michail Pishchagin - Groupchat with single-line edit enabled would no longer be unneedlessly - resized during nick completion. - -2005-01-29, Michail Pishchagin - Small chats now have effect on groupchats too. As well as single-line edit. - - Mac: In single-line enabled chats and groupchats, the lineedits would be - paned by empty space from left and right and also would be centered. - -2005-01-27, Michail Pishchagin - Now scrollbar in single-line chat edit should no longer flicker. - -2005-01-26, Michail Pishchagin - Reduced flickering in single-line edit. Removed horizontal scrollbar. - Does not resize the dialog when it takes more than 90% of desktop's - area. - -2005-01-24, Michail Pishchagin - Experimental single-line edit in chat dialog. Seems to be useable. - -2005-01-17, Kevin Smith - Basic tab support. DO NOT USE THIS YET. - -2005-01-09, Kevin Smith - Added the SystemWatch stuff for power saving notification on windows and osx - -2005-01-09, Michail Pishchagin - Now IconButton class would try to specify icon using QIconSet whenever - possible, what should improve the looks of disabled buttons. - - Now Process Next Event would process events from a non-DND account prior - to the DND one. - - On MacOS, Psi dock icon would no longer bounce on messages from DND accounts. - - Global Shortcuts patch by GreyCat. At the moment, if you want it, you - should configure the keys by editing the config.xml file. - ----- Psi 0.9.3 Release ---- - -2005-01-08, Kevin Smith - Minor compiler error fix, and Release 0.9.3 - -2004-12-28, Kevin Smith - Two patches, one various x:data fixes, and the other a fix for the accounts - combobox, which now only includes available accounts. - Thanks to Remko for both. - -2004-11-20, Kevin Smith - Minor change of defaults (particularly colour scheme on OSX) and removal of - ugly bar when there's no scrollbars on OSX (Thanks Remko). - -2004-11-19, Kevin Smith - GUI option for smallChats (thanks Pintail). Various string consistencies and - clarifications (thanks Remko). New Mac build scripts (thanks Remko) - -2004-11-19, Kevin Smith - Previously enabling "Ignore events from non-roster contacts" ignored private - groupchat messages, now it doesn't (although there's an xml option to revert) - -2004-10-31, Michail Pishchagin - Corrected the name of AlertIcon class (it messed up the caching of - MTray icons). - - QPixmapTray will be cleared on iconset change. - - IceRAM's patch for beauty tray icons on Linux. - -2004-10-29, Kevin Smith - Committed Misha's fix to the MTray segfaults. - Fixed the Segfault when a contact went offline during regrouping. - -2004-10-28, Kevin Smith - Windows 2003 detection code added. (MichalJ) - QT Translations (Skazi) - -2004-10-20, Michail Pishchagin - Message events patch by Remko Troncon. - - No toolbars on Mac by default by Remko Troncon. - -2004-10-11, Michail Pishchagin - http://ftp.xiaoka.com/friends/skazi/psi/patches/ - psi-tooltip_version_noslash-mod.diff - -2004-10-03, Michail Pishchagin - Another set of patches by Remko: - - * Ability to disable online accounts, in which case a dialog will pop - up. - * Ability to enter empty status messages. - * Removed badly-looking icons on Mac. - * Some changes in menu layout on Mac. - * Modifications to system iconset, so there will be different icons - for Roster and Advanced tabs in options. - -2004-09-24, Michail Pishchagin - Corrected 'Use Sounds' setting loading. Thanks to Marcel Naziri for - writing a fix! - -2004-09-06, Michail Pishchagin - Dynamic 'avatars', 'vcard' and 'history' directory recreation, and - removal of unused 'info' dir. - -2004-08-18, Michail Pishchagin - TrayIcon correction by William Waghorn, so it should work correctly - on Gnome from now on. But there'll be dependency on PsiApplication :-/ - - Disabled the unfinished avatar support in preparations for 0.9.3 - release. Patch by Remko. - -2004-08-16, Michail Pishchagin - Small fix for default profile by Remko. - - Created general-like menu on MacOS by Remko. - -2004-08-12, Michail Pishchagin - Now tooltip of account will display number of online contacts and - total number of contacts in roster by Remko. - - Fixes to the Mac menu by Remko. - -2004-08-09, Michail Pishchagin - Now IconAction should correctly remove unnecessary cached QPopupMenu - pointers, and shouldn't crash. - -2004-08-08, Michail Pishchagin - Major speedup when parsing disco#items results in Service Discovery - dialog. - -2004-08-05, Michail Pishchagin - Now MainWin uses new action customization framework. Test it, break it, - fix it :-) - -2004-08-03, Michail Pishchagin - Now ShowSelf action will be shown in the mac menu too - (thanks to Remko, as usual) - -2004-08-02, Michail Pishchagin - Ability to initiate file transfers by dropping files in the ChatDlg - by Remko: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/filetrans-chatdlg_psi.diff - - Fixed joining groupchat rooms by Remko: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/accountscombobox-fix_psi.diff - http://www.cs.kuleuven.ac.be/~remko/psi/patches/eventdlg-onlineonly_psi.diff - - Selfcontact action + account tip by Remko: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/selfcontact+accounttip_psi.diff - -2004-07-25, Michail Pishchagin - Changed the toolbars configuration format in config.xml. Do not use - older Psi's after upgrading to this one, or your toolbar configuation - will be lost! - -2004-07-18, Michail Pishchagin - x:data support for iq:register dialog. - x:data support for iq:search dialog. - - SkaZi's offline status message patch. - - Default profile Remko's patch: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/defaultprofile_psi.diff - - Select only online accounts in Join Groupchat dialog by Remko: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/groupchat-onlineonly_psi.diff - -2004-07-14, Michail Pishchagin - Avatar patch by Remko: - * Added new icons & updated others - * When a new VCard is retrieved, the corresponding avatar is updated - automatically - * Added run-time options for avatars (enable switch + dimension) - * Added 'Clear avatar' context menu. Grouped avatar-related context menu - in 1 popup. - * When there is no avatar, show no avatar (instead of showing a default one) - * When a contact is removed, remove its associated avatar too. - * Comments are now Psi-style - -2004-07-11, Michail Pishchagin - Support for getting VCard image as avatar by Remko. - -2004-07-10, Michail Pishchagin - Improved the avatar in the tooltip appearance somewhat. - Thanks to IceRAM. - - Now CVS builds will be timestamped. - -2004-07-09, Michail Pishchagin - Fixed crash in groupchat's rosters' tooltips. Thanks, Remko! - -2004-07-08, Michail Pishchagin - Now status buttons should have effect on connecting accounts too. - -2004-07-07, Michail Pishchagin - Now ChatDlg uses toolbar to display it's toolbuttons. Later it should - become customizeable!! - -2004-07-05, Kevin Smith - Added Passive Popup for file transfers: - ftp://ftp.patryk.one.pl/pub/windows/siec/psi/selfmade/patches/psi-popup_file.diff - -2004-07-05, Kevin Smith - Added Skazi, Remko, Hal and IceRam to the thanks page of the about dialog. - Thanks Guys. - - Added support for static (locally defined) avatars. Haven't added a toggle - yet, I'm waiting to see if anyone actually *doesn't* want it. - -2004-07-01, Michail Pishchagin - Show 'Insert Emoticon' toolbutton in chat dialog when it's not in compact - mode: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/chatdlg-emot_psi.diff - - Smart change status button: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/statuschange_psi.diff - - Now dragging multiple files at once will result in many FT dialogs. - Thanks to Remko Troncon ;-) - - Now Service Disovery dialog uses PsiToolBar. - -2004-06-30, Michail Pishchagin - Added 'Get vCard' and 'Resolve Nick' buttons to the Add new user dialog. - Removed 'XML Console' from 'Psi' menu. - - Fixed translations of compact chat mode: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/chatdlg-menu_psi.diff - - Drag-n-Drop support for File Transfer: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/dragdropfile_psi.diff - - Mac menu: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/macmenu_psi.diff - - Mac roster grip: - http://www.cs.kuleuven.ac.be/~remko/psi/patches/macstatusbottom_psi.diff - -2004-06-14, Michail Pishchagin - Now Psi wouldn't load successfully with the absent default icons. - ----- Psi 0.9.2 Release ---- - -2004-06-05, Michail Pishchagin - Added 'Psi Handbook' entry to the Help menu. - -2004-05-29, Michail Pishchagin - Fixed Tip of The Day's What's This string. - -2004-05-26, Michail Pishchagin - Fixed tab order in Sound tab in Options dialog. - -2004-05-04, Justin Karneges - Added file transfer manager. - -2004-05-04, Michail Pishchagin - Fixed a bug, when you had some popups on the screen, and quitted psi, - it always segfaulted. - -2004-05-01, Michail Pishchagin - Added "Incoming File Transfer" and "File Transfer Complete" sounds to the - Sound tab in Options dialog and common.h. - Now it's up to Justin to actually use them :) - - Now sounds from iconsets shouldn't be played when sounds are disabled. - - Hopefully fixed the 'next' button's icon on non-X11 platforms. - - Fixed line endings in Export History dialog. - -2004-04-30, Michail Pishchagin - ed2k:// patch by SkaZi. - - Bug with IRC gateway icon and Service Discovery dialog. - - Added selection of Popup Font. - - New looks of Appearance tab in the Options dialog. - -2004-04-18, Michail Pishchagin - Added conference/irc type to the list of known disco identities. - Now the disco dialog should display IRC gate icon just ok. - -2004-04-05, Michail Pishchagin - The bug-reporting patch by SkaZi. - (http://psi.affinix.com/flyspray/index.php?do=details&id=238) - -2004-04-04, Michail Pishchagin - Update the (C) year in About dialog to 2004. - -2004-04-01, Michail Pishchagin - Added the Transfer Manager action to the main window. - -2004-03-30, Michail Pishchagin - Now chat and event dialogs do not linkify the status tooltips of the - contact. - - Now service discovery dialog should be able to search JUD on jabber.org - (since it started to support Service Discovery) when protocol is set - to A (Auto) or D (Disco). - - Now Psi shouldn't crash on exit with the ~PsiTextView as the cause. - -2004-03-25, Michail Pishchagin - Fixed the slotScroll() slot in GroupChat dialog, and scrolling to bottom - should actually work now. - -2004-03-18, Michail Pishchagin - Now type ahead in contact view will reset after 3 seconds of inactivity. - -2004-03-16, Michail Pishchagin - Bug: Groupchat dialog was not always scrolled to bottom. Fixed now. - -2004-03-15, Justin Karneges - New history features: erase all and export to friendly text. - -2004-03-15, Michail Pishchagin - Delete old settings in HKLM on Windows systems. - -2004-03-12, Michail Pishchagin - Updated default icons (they're now made smaller in size, all thanks to - Piotr Iwo Skrodzewicz). - - Added --nocrash command-line option. - -2004-03-10, Michail Pishchagin - Fixed silly bug when loading sort style for contacts in roster. - - Added ArchLinux to the list of detectable Linux distrox (thanks to IceRAM). - -2004-03-08, Michail Pishchagin - Now 'crash' support will not be built-in by default. - - Fixed bug in disco dialog, when doing Refresh Item on parent item, its - child loses all features and identities. - -2004-03-03, Justin Karneges - ContactView shortcuts were broken, fixed. - 'configure' updated to not bundle qxml unless necessary. - -2004-03-03, Michail Pishchagin - Small code cleanup by SkaZi - -2004-03-02, Justin Karneges - Data transfer settings - -2004-02-29, Michail Pishchagin - Added vertical splitter to the groupchat dialog (thanks to IceRAM for the - hint) - - Now Psi should compile with Qt 3.1.x on Windows again - -2004-02-28, Michail Pishchagin - Now only one trackbar exists at a time in groupchat dialog (patch by - Bastian Hoyer) - -2004-02-27, Michail Pishchagin - Reverted the hide/show roster code to the old one, which was used in 0.8.7 - -2004-02-26, Michail Pishchagin - Fixed replying to replied plain messages. In 0.9.1 subject became empty - in that case. - -2004-02-25, Michail Pishchagin - Real fix for now: Now in nick-completion the space is not added when - completion is not at the start of the string (thanks to IceRAM for the - hint) - -2004-02-23, Kevin Smith - Added an xml option to have the xml console visible and enabled at login. - Some people wanted this for debugging. - -2004-02-23, Michail Pishchagin - Fixed the emoticonify function: now it will correctly handle this case: - ";-) - :-P(blah-blah-blah)" - - Now MainWin's position will not be saved, if the X or Y coordinate is - fever than -30000 (I think that it should work, but it needs testing). - - Now IconSelect can take up to 3/4 of the screen's - MIN(screen.width, screen.height). - -2004-02-21, Michail Pishchagin - Now in nick-completion the space is not added when copletion is not at - the start of the string (thanks to IceRAM for the hint) - - Now Psi should be able to load attachments from messages that it saved - to the event queue on the disk (thanks to SkaZi for the patch) - -2004-02-16, Kevin Smith - Added a trackbar to the groupchat dialog - -2004-02-16, Michail Pishchagin - Fix for nick completion bug in groupchat dialog, which showed only - when there were people with identical-starting nicks, but in other - cases (ex: IceRAM vs. infiniti) - - "Crash" patch by Juan F. Codagnone. - -2004-02-13, Michail Pishchagin - Fix for type ahead by Juan F. Codagnone. - -2004-02-11, Michail Pishchagin - Fix for crash on startup if iconset could not be loaded. (thx to SkaZi) - - Fix for multiline descriptions in url attachments by SkaZi. - - Fix for text color in groupchat dialog by SkaZi. - -2004-01-27, Michail Pishchagin - Event queue sorting patch by SkaZi. - -2004-01-26, Michail Pishchagin - Received messages are now queued to disk - (to PsiDataDir/profiles/profilename/events-accountname.xml) - -2004-01-25, Michail Pishchagin - Hidden group patch by SkaZi. - -2004-01-25, Michail Pishchagin - Updated EventQueue saving/loading code (but it's still not perfect, - though). - -2004-01-23, Michail Pishchagin - Fixed a bug in PsiIconset::Private::loadIconset(): If original icon have - Anim, and new icon doesn't have Anim, old Anim was not deleted, which - caused incorrect animations to appear (example: psi/chat icon in - LightBulb iconset). - -2004-01-21, Michail Pishchagin - Small fix to the resource search path under Windows. - -2004-01-21, Michail Pishchagin - Patch by Juan F. Codagnone: - This patch was called originaly "miranda like type-ahead patch" after the - Mozilla's and Miranda IM's feature. It lets you go to any contact in your - roster, typing his name. (at the moment, in psi, when you want to search for - some one, you need to type the first character of the nickname you are - searching for). - -2004-01-19, Michail Pishchagin - Moved Configure Toolbars out of main Psi menu, to the toolbars' own - context menus. - -2004-01-17, Michail Pishchagin - Tip of the Day is back! Please contribute your useful tips and tricks, - so they will be there in 0.9.2 ;) - -2004-01-17, Michail Pishchagin - Fixed grammar, spelling, and other errors/typos in translatable - strings (in psi/src/options). - -2004-01-16, Michail Pishchagin - now Sound Player option is separated to tokens by the ' ' (space) char. - it is possible to use complex sound player commands now. - Patch by "wwp " - -2004-01-11, Kevin Smith - XML option to turn off the numbers in group headers. - -2004-01-10, Michail Pishchagin - Added nick-completion in Groupchat dialog. Press Tab key to complete and - to iterate through the nicks - -2004-01-06, Kevin Smith - Accounts can now be enabled and disabled in account settings (Skazi's - patch) - -2004-01-05, Kevin Smith - Emoticonified text now also shows *text* as bold, /text/ as italic, - and _text_ as underlined. - -2004-01-05, Kevin Smith - Support for multiple contact adds from the services dialog (Mike - Fawcett (deviant)) - -2004-01-04, Kevin Smith - Started this ChangeLog. - - Presets in status dialog are now sorted alphabetically. (Skazi's patch) - Status Dialog has a tickbox to save the status message as a preset (Remko's Patch) - Seperated headlines from messages for sound and popups. - -2003-01-03, Kevin Smith - Small chat support, there's a global default in the config (no option yet) and - right click per-dialog - -2004-01-02, Michail Pishchagin - Service registration dialog corrections by SkaZi: - - 'register' is the default button - - first line in form is focused - ----- Psi 0.9.1 Release ---- Index: psi.desktop =================================================================== --- psi.desktop (.../vendor/psi/psi-0.10) (revision 39233) +++ psi.desktop (.../trunk/im/psi-0.10) (revision 39233) @@ -1,28 +0,0 @@ -[Desktop Entry] -Type=Application -Version=0.9.4 -Encoding=UTF-8 -Name=Psi -GenericName=Jabber Client -Comment=Communicate over the Jabber network -Icon=psi -Exec=psi -Terminal=false -Categories=Qt;Network;InstantMessaging; -StartupNotify=true - -# Translations -GenericName[nl]=Jabber Client -Comment[nl]=Communiceer over het Jabber netwerk -GenericName[sl]=Odjemalec za Jabber -Comment[sl]=Komuniciranje prek omrežja Jabber -GenericName[mk]=Клиент за Jabber -Comment[mk]=Комуницирајте преку Jabber мрежата -GenericName[ca]=Client Jabber -Comment[ca]=Comuniqui's a través de la xarxa Jabber -GenericName[eo]=Ĵabbera Klientilo -Comment[eo]=Komunikiĝu per la ĵabbera reto -GenericName[pl]=Klient Jabber -Comment[pl]=Komunikacja poprzez sieć Jabber -GenericName[pt_BR]=Cliente Jabber -Comment[pt_BR]=Comunique-se através da rede Jabber Index: TODO =================================================================== --- TODO (.../vendor/psi/psi-0.10) (revision 39233) +++ TODO (.../trunk/im/psi-0.10) (revision 39233) @@ -1,201 +0,0 @@ -Required - File Transfer - XML Encryption - add status message presets from the statussetdlg - Ability to prompt for status message when choosing "Offline" (signoff status) - ability to flag accounts as enabled/disabled. disabled means they are not usable and won't show in roster. - groupchat should log presence changes - gcuserview: proper sorting of contacts based on status / alphabetical (like ContactView) - message events (composing, delivery, etc) - misha: JEP-0038: emoticon sets - server info: - show server version in tooltip - ssl information dialog (show cert and maybe connection info) - separate message history / info for each account - eventQueue: toXml, fromXml (for saving unread messages) - local contact settings: - checkboxes for accepting various things: messages; files; URLs; chats \ - [each has a checkbox option: only from my contact list, or... only from this GROUP on my contact list] - be alerted when the contact changes status or comes online (etc) - option: ignore headline messages (die MSN) - annotations (notes about the user) - log history or not - activity log window - high level logging of connection status, presence changes, messages - timestamps - "find" feature - Richtext messages - revamp history system: ability to restore entire chats, show in normal order, not reverse - "properties" dialog (could be last entry in cvlist context) for setting groups and subscription, etc. \ - it could also show client time / version - file downloading - nice dialog - after file received, there should be the options: "Open" and "Open folder" - put each received file into a folder for the contact (optional) - if a specific directory is chosen, the dialog should have a history of the most recent download \ - folders (10 maybe?) - Advanced Alerts (sound, popups, etc) - Ignore list - plugin system - -Important - clicking on a chatdlg when bringing focus should always set focus to the input widget (eat the click) - 'find' feature for chatdlg - checkbox to keep eventdlg open (both send and recv). for send, it should reset the content after sending. - statussetdlg should automatically click ok in 10 seconds (unless you press a key) - ability to flag which accounts are affected by the mass status change button (should be in account context menu) - cv: remember the open/closed state of groups - cv: group headings should have a better design than just a rectangle (gradient?) - add "Go to Website" and x:oob in presence - use arts for sound on unix (or custom, for things like "play") - ability to do various iq requests to arbitrary jids: version, time, info - multi-monitor support: windows should pop up on the same display as the main window? - "last seen" time for contacts - emoticon menu button - merge all contacts into one column, rather than dividing by account - consolidated contacts - send contacts - save/load contacts (hint: use QCheckListItem for dialogs) - exporting - dialog for selecting contacts to export to file - write to file - importing - import a list from file - dialog for selecting contacts to import - tell the server about the new contacts - check for dups - offline animation (door slam) - chathistorydlg - a nice window to display chat history - maybe a menubar with some features like "save to file" ? - show/hide times - show/hide/rename other person (for privacy) - WM dock - floating contacts (controlled by cvlist?) - full message archive dialog (tree/explorer view for choosing contacts on left, display area on the right). - Update all (mass user info check) - Detecting network connection status. option to auto-connect when network is available. - startup argument to select profile - ability to execute a shell command on event - option to display (in realtime) the cvlist as 'flat', ie without groups - voice chat - option to launch on startup (platform dependent, good luck) - different color choices for different group types - transport-specific roster icons - deal with presence errors when subscribing - command line args? psi.exe --psi-data dir - have separate status presets depending on the status type - -Extra - there should be a way to copy a url to clipboard from the eventdlg attachment - ability to flag a contact or group to always be shown even if they would not be (due to visibility toggles) - how about adding "Add Contact", "New Blank Message", "Manage services" and "Join Groupchat" to the cv \ - rightclick menu for each of the servers? - allow eventdlg and chatdlg inputs to drag / drop URLs (in both directions) - chatdlg separator: "snap" to font height? - transport iconsets (misha?) - translation packs for the Qt library itself?? - check to see if app is already running when launched. if it is, then: - ask if they really want to open it again - if they say yes, then disable auto-open for profiles - save presence changes to history? - win32: docking (all optional) - grapple to edge of screen, like ICQ for windows - auto hide: after a certain period of inactivity, "slide" the window off the screen - auto hide delay: time to wait before sliding off - right-click in chat/eventdlg should have options to paste your current URL or IP address - Avatars (Buddy Icons) - KDE-enhanced mode - "previous" button in the eventdlg? - Autoresponses? (with general and customized texts) - auto close chat windows that are not in focus after so many minutes of inactivity - The Main Window's Icon should change when new messages arrive, just like the dock icon does. - Ability to filter messages based on words (maybe even shell command filters) - Ability to compose messages and send at a later specific date (or when you or the recipient go online) - option to autohide main roster window after a set period of time - supporting BOLD and ITALIC in jabber msges by using * and / like you do in newsgroups .. - Licq supports replacing some %s with information on the sender of the - message and other things. (There's a list below) IT supports these in - OnEvent, auto responses (check status), and utilities - For example: sound player "~/scripts/say", on message "%a has just sent you an I.C.Q. message" - %a - user alias - %e - email - %f - first name - %h - phone number - %i - user ip - %l - last name - %m - # pending messages - %n - full name - %o - last seen online - %O - online since - %p - user port - %s - full status - %S - abbreviated status - %u - uin - %w - webpage - Ability to specify an arbitrary time for chatdlgs to stay active (x minutes/hours/days) - "small mode" - put mainwin buttons (and toolbuttons) into the cvlist right-click - option to have sounds not play when XA (but still play when Away) - option to have mainwin/dock status follow a specific account rather than "best choice" - option to show status message in parenthesis to the right of the contact (like yahoo) - ability to "auto-reconnect" to a transport? - cv: let the user choose how the list is sorted - Spell check - pictures for users - group ideas: - option: sort or not - choose order of groups and contacts with drag and drop - save order on the server - support empty groups that get removed on signoff - Have a way of marking some people as 'important' contacts, so they will always trigger sound - psuedo-chat support like Mirabilis ICQ / Licq (ie, split window, but still used like normal messages) - friendlier infodlg. get rid of those lame tabs - maybe an XML-based skins support (not only colors, sounds, images, key \ - bindings, but also window positions, shapes, etc) \ - Microsoft Windows Media Player supports XML-based skinning. Basically \ - this consists of a file which has a bunch of JavaScript glueing the \ - entire skin together with code, and several images for hilite graphics, \ - background graphics, alpha-map graphics, etc. Very flexible. \ - Justin's opinion: if you want to fork Psi to do this, be my guest.. - cvlist sorting options - sort by group, online/offline split - sort by group, online/offline together - sort by group and by status - sort by group and alphanumerically - sort by status without groups - sort alphanumerically without groups - sort by online/offline - straight alphanumerical sort - chatdlg: optionally tabbed like GAIM? - cvlist select multiple? - right-clicking on status button should bring up a list of accounts, each with submenus that would set \ - the status of the chosen account. - option to have psi remember your password for the running session - Remember last status when psi quits (even if improperly shut down). restore this status when psi is run again? - if you get a msg from someone in a closed group, it should not expand the whole group - "diskless" mode - -Bugs - connection timeouts are reported as "connection refused" (qt) - slowdown when receiving a chat message? or a problem with QTextEdit debug messages? - -Miscellaneous - change PsiIconSet::type2anim() to be const (and return const) - properly sort cvlist accounts if one of them gets renamed - class Options: cpp'ify (reset, toXml, fromXml) - convert some of the preferences into their own classes (or lists), like fonts, colors, sounds, etc - field for author/license information in lang packs (display in About box) - 'find' function in historydlg should show the found result in the center of 50 results, rather than the top - Check for libqssl without needing a restart? - finish jidlink and formalize the linktest process () - replies should only close a window that it is associated with (use QGuardedPtr?) - custombrowser, mailer, and sound player should be called as a shell command, not arg0 - don't allow send/recv of blank messages (all content is whitespace or empty) - allow blank password entry - don't prompt for password until actually connected. reprompt if wrong?? - iconset: universal anim support (so eventdlg / mainwin / contactview can share) (misha?) - proper dialog button order depending on platform - when entering a text string into "Server to browse", any whitespace before or after is not trimmed. lots of \ - fields like this should have some sort of auto-trim. - when opening a new chat window of a contact with pending events, the presence is logged to the chat window \ - before the messages are, which have an earlier timestamp (looks weird) Index: COPYING =================================================================== --- COPYING (.../vendor/psi/psi-0.10) (revision 39233) +++ COPYING (.../trunk/im/psi-0.10) (revision 39233) @@ -1,296 +0,0 @@ - - As a special exception, the copyright holder(s) give permission to link - this program with the Qt Library (commercial or non-commercial edition), - and distribute the resulting executable, without including the source - code for the Qt library in the source distribution. - - As a special exception, the copyright holder(s) give permission to link - this program with any other library, and distribute the resulting - executable, without including the source code for the library in the - source distribution, provided that the library interfaces with this - program only via the following plugin interfaces: - - 1. The Qt Plugin APIs, only as authored by Trolltech - 2. The QCA Plugin API, only as authored by Justin Karneges - - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS Index: .darcs_boring =================================================================== --- .darcs_boring (.../vendor/psi/psi-0.10) (revision 39233) +++ .darcs_boring (.../trunk/im/psi-0.10) (revision 39233) @@ -1,64 +0,0 @@ -# Boring file regexps: -\.hi$ -#\.o$ -\.o\.cmd$ -\.ko$ -\.ko\.cmd$ -\.mod\.c$ -(^|/)\.tmp_versions($|/) -#(^|/)CVS($|/) -(^|/)RCS($|/) -~$ -#(^|/)\.[^/] -(^|/)_darcs($|/) -\.bak$ -\.BAK$ -\.orig$ -(^|/)vssver\.scc$ -\.swp$ -(^|/)MT($|/) -(^|/)\{arch\}($|/) -(^|/).arch-ids($|/) -(^|/), -\.class$ -\.prof$ -(^|/)\.DS_Store$ -(^|/)BitKeeper($|/) -(^|/)ChangeSet($|/) -(^|/)\.svn($|/) -\.py[co]$ -\# -#\.cvsignore$ -(^|/)Thumbs\.db$ - -# Binaries -^src/psi$ -^src/psi.app$ - -# Mac binaries -^mac/disk -^mac/Psi-.* -^mac/(template|wc)\.dmg($|\.bz2$) - -# Windows -^psiwin/.*$ - -# libpsi -^libpsi/psiwidgets/.*\.(o|moc|dylib)$ -^libpsi/psiwidgets/moc_.*\.cpp$ - -# QMake makefiles -^Makefile -^src/Makefile -^libpsi/psiwidgets/Makefile - -# QConf -^conf.log -^conf.pri -^extra.pri -^src/config.h - -# Qt dirs -(^|/).ui($|/) -(^|/).obj($|/) -(^|/).moc($|/) Index: qcm/openssl.qcm =================================================================== --- qcm/openssl.qcm (.../vendor/psi/psi-0.10) (revision 0) +++ qcm/openssl.qcm (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,100 @@ +/* +-----BEGIN QCMOD----- +name: OpenSSL +arg: with-openssl-inc=[path],Path to OpenSSL include files +arg: with-openssl-lib=[path],Path to OpenSSL library files +-----END QCMOD----- +*/ +class qc_openssl : public ConfObj +{ +public: + qc_openssl(Conf *c) : ConfObj(c) {} + QString name() const { return "OpenSSL"; } + QString shortname() const { return "openssl"; } + bool exec() + { + QString inc, lib; + QString s; + bool kb = false; + QString kbdir = "/usr/kerberos/include"; + + // Redhat 9? + if(QFileInfo(kbdir).exists()) + kb = true; + + s = conf->getenv("QC_WITH_OPENSSL_INC"); + if(!s.isEmpty()) { + if(!conf->checkHeader(s, "openssl/ssl.h")) + return false; + inc = s; + } + else { + if(!conf->findHeader("openssl/ssl.h", QStringList(), &s)) + return false; + inc = s; + } + + s = conf->getenv("QC_WITH_OPENSSL_LIB"); + if(!s.isEmpty()) { + if(!conf->checkLibrary(s, "ssl")) + return false; + lib = s; + } + else { + if(!conf->findLibrary("ssl", &s)) + return false; + lib = s; + } + + // is it at least openssl 0.9.7? + QString str = + "#include\n" + "int main()\n" + "{\n" + " unsigned long x = OPENSSL_VERSION_NUMBER;\n" + " if(x >= 0x00907000) return 0; else return 1;\n" + "}\n"; + QString ext; + if(!inc.isEmpty()) + ext += QString("-I") + inc + ' '; + if(kb) + ext += QString("-I") + kbdir + ' '; + if(!lib.isEmpty()) + ext += QString("-L") + lib + " -lssl -lcrypto "; + int ret; + if(!conf->doCompileAndLink(str, ext, &ret)) + return false; + if(ret == 0) + conf->addDefine("OSSL_097"); + + // is it at least openssl 0.9.8? + str = + "#include\n" + "int main()\n" + "{\n" + " unsigned long x = OPENSSL_VERSION_NUMBER;\n" + " if(x >= 0x00908000) return 0; else return 1;\n" + "}\n"; + ext = QString(); + if(!inc.isEmpty()) + ext += QString("-I") + inc + ' '; + if(kb) + ext += QString("-I") + kbdir + ' '; + if(!lib.isEmpty()) + ext += QString("-L") + lib + " -lssl -lcrypto "; + if(!conf->doCompileAndLink(str, ext, &ret)) + return false; + if(ret == 0) + conf->addDefine("OSSL_098"); + + if(!inc.isEmpty()) + conf->addIncludePath(inc); + if(kb) + conf->addIncludePath(kbdir); + if(!lib.isEmpty()) + conf->addLib(QString("-L") + s); + conf->addLib("-lssl -lcrypto"); + + return true; + } +}; Index: qcm/conf.qcm =================================================================== --- qcm/conf.qcm (.../vendor/psi/psi-0.10) (revision 39233) +++ qcm/conf.qcm (.../trunk/im/psi-0.10) (revision 39233) @@ -1,6 +1,6 @@ /* -----BEGIN QCMOD----- -name: Psi Configuration +name: Barracuda Configuration -----END QCMOD----- */ @@ -11,18 +11,18 @@ { public: qc_conf(Conf *c) : ConfObj(c) {} - QString name() const { return "Psi Configuration"; } + QString name() const { return "Barracuda Configuration"; } QString shortname() const { return "conf"; } QString checkString() const { return "Writing configuration ..."; } bool exec() { conf->addExtra(QString("PREFIX=%1").arg(conf->getenv("PREFIX"))); - conf->addExtra(QString("DATADIR=%1/psi").arg(conf->getenv("DATADIR"))); + conf->addExtra(QString("DATADIR=%1/barracuda").arg(conf->getenv("DATADIR"))); QFile file("src/config.h"); if ( file.open( IO_WriteOnly ) ) { QTextStream stream( &file ); - stream << "#define PSI_DATADIR \"" << conf->getenv("DATADIR") << "/psi\"" << endl; + stream << "#define PSI_DATADIR \"" << conf->getenv("DATADIR") << "/barracuda\"" << endl; } conf->addDefine("HAVE_CONFIG"); Index: qcm/xercesc.qcm =================================================================== --- qcm/xercesc.qcm (.../vendor/psi/psi-0.10) (revision 0) +++ qcm/xercesc.qcm (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,55 @@ +/* +-----BEGIN QCMOD----- +name: Xerces-C++ +arg: with-xercesc-inc=[path],Path to Xerces-C++ include files +arg: with-xercesc-lib=[path],Path to Xerces-C++ library files +-----END QCMOD----- +*/ + +//---------------------------------------------------------------------------- +// qc_xercesc +//---------------------------------------------------------------------------- +class qc_xercesc : public ConfObj +{ +public: + qc_xercesc(Conf *c) : ConfObj(c) {} + QString name() const { return "Xerces-C++"; } + QString shortname() const { return "xercesc"; } + bool exec() + { + QString inc, lib; + QString s; + + s = conf->getenv("QC_WITH_XERCESC_INC"); + if(!s.isEmpty()) { + if(!conf->checkHeader(s, "xercesc/util/XercesVersion.hpp")) + return false; + inc = s; + } + else { + if(!conf->findHeader("xercesc/util/XercesVersion.hpp", QStringList(), &s)) + return false; + inc = s; + } + + s = conf->getenv("QC_WITH_XERCESC_LIB"); + if(!s.isEmpty()) { + if(!conf->checkLibrary(s, "xerces-c")) + return false; + lib = s; + } + else { + if(!conf->findLibrary("xerces-c", &s)) + return false; + lib = s; + } + + if(!inc.isEmpty()) + conf->addIncludePath(inc); + if(!lib.isEmpty()) + conf->addLib(QString("-L") + s); + conf->addLib("-lxerces-c"); + + return true; + } +}; Index: configure =================================================================== --- configure (.../vendor/psi/psi-0.10) (revision 39233) +++ configure (.../trunk/im/psi-0.10) (revision 39233) @@ -1,6 +1,6 @@ #!/bin/sh # -# Generated by qconf 1.2-CVS ( http://delta.affinix.com/qconf/ ) +# Generated by qconf 1.3 ( http://delta.affinix.com/qconf/ ) # show_usage() { @@ -14,14 +14,16 @@ --bindir=[path] Directory for binaries. Default: PREFIX/bin --datadir=[path] Directory for data. Default: PREFIX/share --qtdir=[path] Directory where Qt is installed. - --debug Enable debug output. + --verbose Show extra configure output. --help This help text. Dependency options: - --with-qca-inc=[path] Path to QCA include files - --with-qca-lib=[path] Path to QCA library files --with-zlib-inc=[path] Path to zlib include files --with-zlib-lib=[path] Path to zlib library files + --with-openssl-inc=[path] Path to OpenSSL include files + --with-openssl-lib=[path] Path to OpenSSL library files + --with-xercesc-inc=[path] Path to Xerces-C++ include files + --with-xercesc-lib=[path] Path to Xerces-C++ library files --disable-growl Disable use of Growl --with-growl=[path] Path to the Growl framework --disable-xss Disable use of the XScreenSaver extension @@ -121,44 +123,55 @@ } while [ $# -gt 0 ]; do + optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` case "$1" in --prefix=*) - PREFIX="${1#--prefix=}" + PREFIX=$optarg shift ;; --bindir=*) - BINDIR="${1#--bindir=}" + BINDIR=$optarg shift ;; --datadir=*) - DATADIR="${1#--datadir=}" + DATADIR=$optarg shift ;; --qtdir=*) - EX_QTDIR="${1#--qtdir=}" + EX_QTDIR=$optarg shift ;; - --with-qca-inc=*) - QC_WITH_QCA_INC="${1#--with-qca-inc=}" + --with-zlib-inc=*) + QC_WITH_ZLIB_INC=$optarg shift ;; - --with-qca-lib=*) - QC_WITH_QCA_LIB="${1#--with-qca-lib=}" + --with-zlib-lib=*) + QC_WITH_ZLIB_LIB=$optarg shift ;; - --with-zlib-inc=*) - QC_WITH_ZLIB_INC="${1#--with-zlib-inc=}" + --with-openssl-inc=*) + QC_WITH_OPENSSL_INC=$optarg shift ;; - --with-zlib-lib=*) - QC_WITH_ZLIB_LIB="${1#--with-zlib-lib=}" + --with-openssl-lib=*) + QC_WITH_OPENSSL_LIB=$optarg + shift + ;; + + --with-xercesc-inc=*) + QC_WITH_XERCESC_INC=$optarg + shift + ;; + + --with-xercesc-lib=*) + QC_WITH_XERCESC_LIB=$optarg shift ;; @@ -168,7 +181,7 @@ ;; --with-growl=*) - QC_WITH_GROWL="${1#--with-growl=}" + QC_WITH_GROWL=$optarg shift ;; @@ -187,7 +200,7 @@ shift ;; - --debug) + --verbose) QC_DEBUG="Y" shift ;; @@ -200,7 +213,7 @@ BINDIR=${BINDIR:-$PREFIX/bin} DATADIR=${DATADIR:-$PREFIX/share} -echo "Configuring Psi ..." +echo "Configuring Barracuda IM Client ..." if [ "$QC_DEBUG" = "Y" ]; then echo @@ -208,10 +221,12 @@ echo BINDIR=$BINDIR echo DATADIR=$DATADIR echo EX_QTDIR=$EX_QTDIR -echo QC_WITH_QCA_INC=$QC_WITH_QCA_INC -echo QC_WITH_QCA_LIB=$QC_WITH_QCA_LIB echo QC_WITH_ZLIB_INC=$QC_WITH_ZLIB_INC echo QC_WITH_ZLIB_LIB=$QC_WITH_ZLIB_LIB +echo QC_WITH_OPENSSL_INC=$QC_WITH_OPENSSL_INC +echo QC_WITH_OPENSSL_LIB=$QC_WITH_OPENSSL_LIB +echo QC_WITH_XERCESC_INC=$QC_WITH_XERCESC_INC +echo QC_WITH_XERCESC_LIB=$QC_WITH_XERCESC_LIB echo QC_DISABLE_growl=$QC_DISABLE_growl echo QC_WITH_GROWL=$QC_WITH_GROWL echo QC_DISABLE_xss=$QC_DISABLE_xss @@ -323,49 +338,49 @@ return false; } }; -#line 1 "qca.qcm" +#line 1 "zlib.qcm" /* -----BEGIN QCMOD----- -name: QCA 1.0 -arg: with-qca-inc=[path],Path to QCA include files -arg: with-qca-lib=[path],Path to QCA library files +name: zlib +arg: with-zlib-inc=[path],Path to zlib include files +arg: with-zlib-lib=[path],Path to zlib library files -----END QCMOD----- */ //---------------------------------------------------------------------------- -// qc_qca +// qc_zlib //---------------------------------------------------------------------------- -class qc_qca : public ConfObj +class qc_zlib : public ConfObj { public: - qc_qca(Conf *c) : ConfObj(c) {} - QString name() const { return "QCA 1.0"; } - QString shortname() const { return "qca"; } + qc_zlib(Conf *c) : ConfObj(c) {} + QString name() const { return "zlib"; } + QString shortname() const { return "zlib"; } bool exec() { QString inc, lib; QString s; - s = conf->getenv("QC_WITH_QCA_INC"); + s = conf->getenv("QC_WITH_ZLIB_INC"); if(!s.isEmpty()) { - if(!conf->checkHeader(s, "qca.h")) + if(!conf->checkHeader(s, "zlib.h")) return false; inc = s; } else { - if(!conf->findHeader("qca.h", QStringList(), &s)) + if(!conf->findHeader("zlib.h", QStringList(), &s)) return false; inc = s; } - s = conf->getenv("QC_WITH_QCA_LIB"); + s = conf->getenv("QC_WITH_ZLIB_LIB"); if(!s.isEmpty()) { - if(!conf->checkLibrary(s, "qca")) + if(!conf->checkLibrary(s, "z")) return false; lib = s; } else { - if(!conf->findLibrary("qca", &s)) + if(!conf->findLibrary("z", &s)) return false; lib = s; } @@ -374,54 +389,155 @@ conf->addIncludePath(inc); if(!lib.isEmpty()) conf->addLib(QString("-L") + s); - conf->addLib("-lqca"); + conf->addLib("-lz"); return true; } }; -#line 1 "zlib.qcm" +#line 1 "openssl.qcm" /* -----BEGIN QCMOD----- -name: zlib -arg: with-zlib-inc=[path],Path to zlib include files -arg: with-zlib-lib=[path],Path to zlib library files +name: OpenSSL +arg: with-openssl-inc=[path],Path to OpenSSL include files +arg: with-openssl-lib=[path],Path to OpenSSL library files +-----END QCMOD----- +*/ +class qc_openssl : public ConfObj +{ +public: + qc_openssl(Conf *c) : ConfObj(c) {} + QString name() const { return "OpenSSL"; } + QString shortname() const { return "openssl"; } + bool exec() + { + QString inc, lib; + QString s; + bool kb = false; + QString kbdir = "/usr/kerberos/include"; + + // Redhat 9? + if(QFileInfo(kbdir).exists()) + kb = true; + + s = conf->getenv("QC_WITH_OPENSSL_INC"); + if(!s.isEmpty()) { + if(!conf->checkHeader(s, "openssl/ssl.h")) + return false; + inc = s; + } + else { + if(!conf->findHeader("openssl/ssl.h", QStringList(), &s)) + return false; + inc = s; + } + + s = conf->getenv("QC_WITH_OPENSSL_LIB"); + if(!s.isEmpty()) { + if(!conf->checkLibrary(s, "ssl")) + return false; + lib = s; + } + else { + if(!conf->findLibrary("ssl", &s)) + return false; + lib = s; + } + + // is it at least openssl 0.9.7? + QString str = + "#include\n" + "int main()\n" + "{\n" + " unsigned long x = OPENSSL_VERSION_NUMBER;\n" + " if(x >= 0x00907000) return 0; else return 1;\n" + "}\n"; + QString ext; + if(!inc.isEmpty()) + ext += QString("-I") + inc + ' '; + if(kb) + ext += QString("-I") + kbdir + ' '; + if(!lib.isEmpty()) + ext += QString("-L") + lib + " -lssl -lcrypto "; + int ret; + if(!conf->doCompileAndLink(str, ext, &ret)) + return false; + if(ret == 0) + conf->addDefine("OSSL_097"); + + // is it at least openssl 0.9.8? + str = + "#include\n" + "int main()\n" + "{\n" + " unsigned long x = OPENSSL_VERSION_NUMBER;\n" + " if(x >= 0x00908000) return 0; else return 1;\n" + "}\n"; + ext = QString(); + if(!inc.isEmpty()) + ext += QString("-I") + inc + ' '; + if(kb) + ext += QString("-I") + kbdir + ' '; + if(!lib.isEmpty()) + ext += QString("-L") + lib + " -lssl -lcrypto "; + if(!conf->doCompileAndLink(str, ext, &ret)) + return false; + if(ret == 0) + conf->addDefine("OSSL_098"); + + if(!inc.isEmpty()) + conf->addIncludePath(inc); + if(kb) + conf->addIncludePath(kbdir); + if(!lib.isEmpty()) + conf->addLib(QString("-L") + s); + conf->addLib("-lssl -lcrypto"); + + return true; + } +}; +#line 1 "xercesc.qcm" +/* +-----BEGIN QCMOD----- +name: Xerces-C++ +arg: with-xercesc-inc=[path],Path to Xerces-C++ include files +arg: with-xercesc-lib=[path],Path to Xerces-C++ library files -----END QCMOD----- */ //---------------------------------------------------------------------------- -// qc_zlib +// qc_xercesc //---------------------------------------------------------------------------- -class qc_zlib : public ConfObj +class qc_xercesc : public ConfObj { public: - qc_zlib(Conf *c) : ConfObj(c) {} - QString name() const { return "zlib"; } - QString shortname() const { return "zlib"; } + qc_xercesc(Conf *c) : ConfObj(c) {} + QString name() const { return "Xerces-C++"; } + QString shortname() const { return "xercesc"; } bool exec() { QString inc, lib; QString s; - s = conf->getenv("QC_WITH_ZLIB_INC"); + s = conf->getenv("QC_WITH_XERCESC_INC"); if(!s.isEmpty()) { - if(!conf->checkHeader(s, "zlib.h")) + if(!conf->checkHeader(s, "xercesc/util/XercesVersion.hpp")) return false; inc = s; } else { - if(!conf->findHeader("zlib.h", QStringList(), &s)) + if(!conf->findHeader("xercesc/util/XercesVersion.hpp", QStringList(), &s)) return false; inc = s; } - s = conf->getenv("QC_WITH_ZLIB_LIB"); + s = conf->getenv("QC_WITH_XERCESC_LIB"); if(!s.isEmpty()) { - if(!conf->checkLibrary(s, "z")) + if(!conf->checkLibrary(s, "xerces-c")) return false; lib = s; } else { - if(!conf->findLibrary("z", &s)) + if(!conf->findLibrary("xerces-c", &s)) return false; lib = s; } @@ -430,7 +546,7 @@ conf->addIncludePath(inc); if(!lib.isEmpty()) conf->addLib(QString("-L") + s); - conf->addLib("-lz"); + conf->addLib("-lxerces-c"); return true; } @@ -756,7 +872,7 @@ #line 1 "conf.qcm" /* -----BEGIN QCMOD----- -name: Psi Configuration +name: Barracuda Configuration -----END QCMOD----- */ @@ -767,18 +883,18 @@ { public: qc_conf(Conf *c) : ConfObj(c) {} - QString name() const { return "Psi Configuration"; } + QString name() const { return "Barracuda Configuration"; } QString shortname() const { return "conf"; } QString checkString() const { return "Writing configuration ..."; } bool exec() { conf->addExtra(QString("PREFIX=%1").arg(conf->getenv("PREFIX"))); - conf->addExtra(QString("DATADIR=%1/psi").arg(conf->getenv("DATADIR"))); + conf->addExtra(QString("DATADIR=%1/barracuda").arg(conf->getenv("DATADIR"))); QFile file("src/config.h"); if ( file.open( IO_WriteOnly ) ) { QTextStream stream( &file ); - stream << "#define PSI_DATADIR \"" << conf->getenv("DATADIR") << "/psi\"" << endl; + stream << "#define PSI_DATADIR \"" << conf->getenv("DATADIR") << "/barracuda\"" << endl; } conf->addDefine("HAVE_CONFIG"); @@ -792,10 +908,13 @@ o = new qc_qt31(conf); o->required = true; o->disabled = false; - o = new qc_qca(conf); + o = new qc_zlib(conf); + o->required = true; + o->disabled = false; + o = new qc_openssl(conf); o->required = true; o->disabled = false; - o = new qc_zlib(conf); + o = new qc_xercesc(conf); o->required = true; o->disabled = false; o = new qc_growl(conf); @@ -1222,10 +1341,12 @@ export BINDIR export DATADIR export EX_QTDIR -export QC_WITH_QCA_INC -export QC_WITH_QCA_LIB export QC_WITH_ZLIB_INC export QC_WITH_ZLIB_LIB +export QC_WITH_OPENSSL_INC +export QC_WITH_OPENSSL_LIB +export QC_WITH_XERCESC_INC +export QC_WITH_XERCESC_LIB export QC_DISABLE_growl export QC_WITH_GROWL export QC_DISABLE_xss Index: LICENSE =================================================================== --- LICENSE (.../vendor/psi/psi-0.10) (revision 0) +++ LICENSE (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,299 @@ + The Barracuda IM Client is based on the GNU General Public License + Version 2 with a few special linking exceptions given by authors of + libraries. + + All of Barracuda's changes and enhancements to the original PSI XMPP + program are available in source code form via the download page included + with the Barracuda IM Firewall + + ------------------------------------------------------------------------ + + As a special exception, Justin Karneges gives permission to link + this program with the Qt Library (commercial or non-commercial edition), + and distribute the resulting executable, without including the source + code for the Qt library in the source distribution. + + As a special exception, Justin Karneges gives permission to link + this program with the OpenSSL Library. + + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS Index: libpsi/psiwidgets/iconwidget.h =================================================================== --- libpsi/psiwidgets/iconwidget.h (.../vendor/psi/psi-0.10) (revision 39233) +++ libpsi/psiwidgets/iconwidget.h (.../trunk/im/psi-0.10) (revision 39233) @@ -138,6 +138,9 @@ void setIcon(const QString &); const QString &iconName() const; + // ###cuda + void setUseBigPixmap(bool uses_big); + public: class Private; private: Index: libpsi/psiwidgets/iconaction.cpp =================================================================== --- libpsi/psiwidgets/iconaction.cpp (.../vendor/psi/psi-0.10) (revision 39233) +++ libpsi/psiwidgets/iconaction.cpp (.../trunk/im/psi-0.10) (revision 39233) @@ -43,6 +43,9 @@ IconAction *action; QPopupMenu *popup; + // ###cuda + bool uses_big; + Private(IconAction *act) { icon = 0; action = act; @@ -88,18 +91,24 @@ d = new Private(this); } -IconAction::IconAction(const QString &text, const QString &icon, const QString &menuText, QKeySequence accel, QObject *parent, const char *name, bool toggle) +IconAction::IconAction(const QString &text, const QString &icon, const QString &menuText, QKeySequence accel, QObject *parent, const char *name, bool toggle, bool uses_big) : QAction(text, menuText, accel, parent, name, toggle) { d = new Private(this); - setIcon(icon); + // ###cuda + d->uses_big = uses_big; + //setIcon(icon); + setIcon(icon, uses_big); } -IconAction::IconAction(const QString &text, const QString &menuText, QKeySequence accel, QObject *parent, const char *name, bool toggle) +IconAction::IconAction(const QString &text, const QString &menuText, QKeySequence accel, QObject *parent, const char *name, bool toggle, bool uses_big) : QAction(text, menuText, accel, parent, name, toggle) { d = new Private(this); + + // ###cuda + d->uses_big = uses_big; } IconAction::~IconAction() @@ -116,7 +125,7 @@ return d->icon; } -void IconAction::setIcon(const Icon *i) +void IconAction::setIcon(const Icon *i, bool uses_big) { if ( d->icon ) { disconnect(d->icon, 0, this, 0 ); @@ -139,6 +148,9 @@ for ( QPtrListIterator it(d->buttons); it.current(); ++it ) { IconToolButton *btn = it.current(); btn->setIcon ( d->icon ); + + // ###cuda + btn->setUseBigPixmap(uses_big); } #ifndef Q_WS_MAC @@ -151,9 +163,11 @@ } } -void IconAction::setIcon(const QString &name) +void IconAction::setIcon(const QString &name, bool uses_big) { - setIcon( IconsetFactory::iconPtr(name) ); + // ###cuda + //setIcon( IconsetFactory::iconPtr(name) ); + setIcon( IconsetFactory::iconPtr(name), uses_big ); } const QString &IconAction::iconName() const @@ -176,6 +190,9 @@ btn->setIcon ( d->icon, false ); btn->setEnabled ( isEnabled() ); + // ###cuda + btn->setUseBigPixmap(d->uses_big); + if ( d->popup ) btn->setPopup( d->popup ); btn->setPopupDelay (1); // the popup will be displayed immediately @@ -278,6 +295,15 @@ for ( QPtrListIterator it(d->buttons); it.current(); ++it ) { IconToolButton *btn = it.current(); btn->setTextLabel(t); + + // ###cuda +#ifdef Q_WS_MAC + QFont f("Sans", 9, QFont::Normal); +#else + QFont f("Sans", 7, QFont::Normal); +#endif + btn->setUsesTextLabel(true); + btn->setFont(f); } #ifndef Q_WS_MAC Index: libpsi/psiwidgets/iconaction.h =================================================================== --- libpsi/psiwidgets/iconaction.h (.../vendor/psi/psi-0.10) (revision 39233) +++ libpsi/psiwidgets/iconaction.h (.../trunk/im/psi-0.10) (revision 39233) @@ -35,15 +35,25 @@ Q_OBJECT public: IconAction(QObject *parent, const char *name = 0); - IconAction(const QString &text, const QString &icon, const QString &menuText, QKeySequence accel, QObject *parent, const char *name = 0, bool toggle = FALSE); - IconAction(const QString &text, const QString &menuText, QKeySequence accel, QObject *parent, const char *name = 0, bool toggle = FALSE); + + // ###cuda + //IconAction(const QString &text, const QString &icon, const QString &menuText, QKeySequence accel, QObject *parent, const char *name = 0, bool toggle = FALSE); + //IconAction(const QString &text, const QString &menuText, QKeySequence accel, QObject *parent, const char *name = 0, bool toggle = FALSE); + IconAction(const QString &text, const QString &icon, const QString &menuText, QKeySequence accel, QObject *parent, const char *name = 0, bool toggle = FALSE, bool uses_big = false); + IconAction(const QString &text, const QString &menuText, QKeySequence accel, QObject *parent, const char *name = 0, bool toggle = FALSE, bool uses_big = false); + ~IconAction(); virtual bool addTo(QWidget *); const Icon *icon() const; - void setIcon(const Icon *); - void setIcon(const QString &); + + // ###cuda + //void setIcon(const Icon *); + //void setIcon(const QString &); + void setIcon(const Icon *, bool uses_big = false); + void setIcon(const QString &, bool uses_big = false); + const QString &iconName() const; QPopupMenu *popup() const; Index: libpsi/psiwidgets/iconwidget.cpp =================================================================== --- libpsi/psiwidgets/iconwidget.cpp (.../vendor/psi/psi-0.10) (revision 39233) +++ libpsi/psiwidgets/iconwidget.cpp (.../trunk/im/psi-0.10) (revision 39233) @@ -759,6 +759,7 @@ { setWFlags(getWFlags() | WRepaintNoErase); d = new Private(this); + setUsesBigPixmap(false); // ###cuda } IconToolButton::~IconToolButton() @@ -786,6 +787,12 @@ #endif } +// ###cuda +void IconToolButton::setUseBigPixmap(bool uses_big) +{ + setUsesBigPixmap(uses_big); +} + const QString &IconToolButton::iconName() const { #ifndef WIDGET_PLUGIN Index: onion/onion/HandlerConn.h =================================================================== --- onion/onion/HandlerConn.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/HandlerConn.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,38 @@ +/* + Http header handler for "Connection" + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: HandlerConn.h,v 1.1.1.1 2004/07/15 06:58:44 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_HANDLERCONN_H +#define ONION_HEADER_HANDLERCONN_H 1 + +#include +#include + +class CHandlerConn : public CResponseHeaderHandler +{ + public: + CHandlerConn(); + ~CHandlerConn(); + virtual bool Execute(CDavRequest* pReq, const char *pszValue); + virtual const char* GetHeaderName(); +}; + +#endif /*ONION_HEADER_HANDLERCONN_H*/ Index: onion/onion/DavSSLCertificateList.h =================================================================== --- onion/onion/DavSSLCertificateList.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/DavSSLCertificateList.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,49 @@ +/* + List of SSL certificates + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: DavSSLCertificateList.h,v 1.1.1.1 2004/07/15 06:58:44 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_DAVSSLCERTIFICATELIST_H +#define ONION_HEADER_DAVSSLCERTIFICATELIST_H 1 + +#include +#include +#include + +class CDavSSLCertificate; + +class CDavSSLCertificateList +{ + private: + typedef std::vector SSLCERTLIST, *PSSLCERTLIST; + typedef SSLCERTLIST::iterator SSLCERTITERATOR; + public: + CDavSSLCertificateList(); + ~CDavSSLCertificateList(); + unsigned int GetCount(); + void Clear(); + void AddCertificate(CDavSSLCertificate* pCert); + CDavSSLCertificate* GetCertificate(unsigned int unIndex); + CDavSSLCertificate* operator[](unsigned int unIndex); + private: + SSLCERTLIST m_vecCertificateList; +}; + +#endif /*ONION_HEADER_DAVSSLCERTIFICATELIST_H*/ Index: onion/onion/DavXmlInputSource.h =================================================================== --- onion/onion/DavXmlInputSource.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/DavXmlInputSource.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,43 @@ +/* + Input source needed by XML parser + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: DavXmlInputSource.h,v 1.1.1.1 2004/07/15 06:58:46 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_DAVXMLINPUTSOURCE_H +#define ONION_HEADER_DAVXMLINPUTSOURCE_H 1 + +#include +#include + +//forward declaration +class CDavResponseBody; + +class CDavXmlInputSource : public XNS(InputSource) +{ + public: + CDavXmlInputSource(CDavResponseBody* pBody); + ~CDavXmlInputSource(); + + virtual XNS(BinInputStream)* makeStream() const; + private: + CDavResponseBody* m_pBody; +}; + +#endif /*ONION_HEADER_DAVXMLINPUTSOURCE_H*/ Index: onion/onion/PBCSMMemBuffer.h =================================================================== --- onion/onion/PBCSMMemBuffer.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/PBCSMMemBuffer.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,42 @@ +/* + Response body consumer that writes to memory buffer + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: PBCSMMemBuffer.h,v 1.1.1.1 2004/07/15 06:58:43 jiang_lei Exp $ +*/ + + +#ifndef ONION_HEADER_PBCSMMEMBUFFER_H +#define ONION_HEADER_PBCSMMEMBUFFER_H 1 + +#include +#include + +class CPBCSMMemBuffer : public CResponseBodyConsumer +{ + public: + CPBCSMMemBuffer(CDavRequest* pReq); + virtual ~CPBCSMMemBuffer(); + + virtual void Close(); + virtual OI_RESULT Open(); + virtual OI_PBC_TYPE GetType(); + virtual OI_RESULT PullResponseBody(CDavResponseBody* pBody); +}; + +#endif /*ONION_HEADER_PBCSMMEMBUFFER_H*/ Index: onion/onion/HandlerAuth.h =================================================================== --- onion/onion/HandlerAuth.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/HandlerAuth.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,45 @@ +/* + Http header handler for "Auth" + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: HandlerAuth.h,v 1.1.1.1 2004/07/15 06:58:45 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_HANDLERAUTH_H +#define ONION_HEADER_HANDLERAUTH_H 1 + +#include +#include + +//forward declarations +class CDavAuthSession; +class CResponseBodyConsumer; + +class CHandlerAuth : public CResponseHeaderHandler +{ + public: + CHandlerAuth(CDavRequest* pReq, CDavAuthSession* pAuthSession); + ~CHandlerAuth(); + virtual bool Execute(CDavRequest* pReq, const char *pszValue); + virtual const char* GetHeaderName(); + private: + CDavAuthSession* m_pAuthSession; + CResponseBodyConsumer* m_pPBConsumer; +}; + +#endif /*ONION_HEADER_HANDLERAUTH_H*/ Index: onion/onion/DavSSLCertificate.h =================================================================== --- onion/onion/DavSSLCertificate.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/DavSSLCertificate.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,56 @@ +/* + SSL certificate + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: DavSSLCertificate.h,v 1.1.1.1 2004/07/15 06:58:45 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_DAVSSLCERTIFICATE_H +#define ONION_HEADER_DAVSSLCERTIFICATE_H 1 + +#include +#include + +class CDavSSLCertificate +{ + friend class CDavWorkSession; + public: + CDavSSLCertificate(); + ~CDavSSLCertificate(); + void Attach(X509* pX509); + X509* Detach(); + void ParseDNames(); + void ParseTime(); + CDavSSLCertificate& operator=(const CDavSSLCertificate& master); + bool operator ==(const CDavSSLCertificate& other); + bool operator ==(const X509* pOther); + protected: + CDavSSLCertificate(X509* pX509, unsigned long ulFailures = 0); + private: + void asn1TimeToString(ASN1_TIME* pTime, OI_STRING_A& strOut); + public: + CDavSSLDName m_dnSubject; + CDavSSLDName m_dnIssuer; + unsigned long m_ulFailures; + time_t m_tmNotBefore; + time_t m_tmNotAfter; + private: + X509* m_pX509; +}; + +#endif /*ONION_HEADER_DAVSSLCERTIFICATE_H*/ Index: onion/onion/RBPVDXmlPropfind.h =================================================================== --- onion/onion/RBPVDXmlPropfind.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/RBPVDXmlPropfind.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,37 @@ +/* + Request body provider that provides XML for PROPFIND method + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: RBPVDXmlPropfind.h,v 1.1.1.1 2004/07/15 06:58:45 jiang_lei Exp $ +*/ + + +#ifndef ONION_HEADER_RBPVDXMLPROPFIND_H +#define ONION_HEADER_RBPVDXMLPROPFIND_H 1 + +#include +#include + +class CRBPVDXmlPropfind : public CRBPVDXml +{ + public: + CRBPVDXmlPropfind(); + ~CRBPVDXmlPropfind(); +}; + +#endif /*ONION_HEADER_RBPVDXMLPROPFIND_H*/ Index: onion/onion/DavSSLDName.h =================================================================== --- onion/onion/DavSSLDName.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/DavSSLDName.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,60 @@ +/* + Distinguish name of SSL certificates + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: DavSSLDName.h,v 1.1.1.1 2004/07/15 06:58:46 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_DAVSSLDNAME_H +#define ONION_HEADER_DAVSSLDNAME_H 1 + +#include +#include +#include +#include + +//forward declaration +class CDavSSLDNameField; + +class CDavSSLDName +{ + friend class CDavSSLCertificate; + private: + typedef std::map DNAMEFIELDS, *PDNAMEFIELDS; + typedef DNAMEFIELDS::iterator DNAMEFIELDITERATOR; + public: + unsigned int GetFieldCount(); + const CDavSSLDNameField* GetField(const char* pszName); + const CDavSSLDNameField* GetFirstField(OI_STRING_A& strName); + const CDavSSLDNameField* GetNextField(OI_STRING_A& strName); + const CDavSSLDNameField* operator[](const char* pszName); + CDavSSLDName& operator =(const CDavSSLDName& master); + bool operator ==(const CDavSSLDName& other); + bool operator ==(const X509_NAME* pOther); + void Clear(); + protected: + CDavSSLDName(); + ~CDavSSLDName(); + bool parseDName(X509_NAME* pName); + private: + X509_NAME* m_pX509Name; + DNAMEFIELDS m_mapFields; + DNAMEFIELDITERATOR m_itrCurrent; +}; + +#endif /*ONION_HEADER_DAVSSLDNAME_H*/ Index: onion/onion/OnionDef.h =================================================================== --- onion/onion/OnionDef.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/OnionDef.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,221 @@ +/* + Definitions of onion library + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: OnionDef.h,v 1.2 2004/07/15 07:22:09 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_ONIONDEF_H +#define ONION_HEADER_ONIONDEF_H 1 + +#ifndef NULL +#define NULL 0 +#endif /* NULL */ + +#define OI_GENBUFSIZE 1024 +#define OI_LINEBUFSIZE 512 + +//debug +// MIKE +//#define _DEBUG +#ifdef _DEBUG +# define OI_ASSERT(x) assert(x) +# define OI_VERIFY(x) OI_ASSERT(x) +# ifdef WIN32 +# define OI_DEBUG ATLTRACE +# else +# define OI_DEBUG OnionDebugOutput +# endif /*WIN32*/ +#else +# define OI_ASSERT(x) ((void)0) +# define OI_VERIFY(x) (x) +# define OI_DEBUG if(0)OnionDebugOutput +#endif /*_DEBUG*/ + + +#define OI_DEBUG_SILENT 0x00000001 +#define OI_DEBUG_FLUSH 0x00000002 + + +//the Xerces namespace stuff +#if defined(XERCES_HAS_CPP_NAMESPACE) +# define XNS(name) XERCES_CPP_NAMESPACE::name +#else +# define XNS(name) name +#endif /*XERCES_HAS_CPP_NAMESPACE*/ + +//http +#define OI_MAX_HDR_LEN 8192 +#define OI_MAX_HDR_FLD 100 + +#define OI_METHOD_CONNECT "CONNECT" +#define OI_METHOD_COPY "COPY" +#define OI_METHOD_DELETE "DELETE" +#define OI_METHOD_GET "GET" +#define OI_METHOD_LOCK "LOCK" +#define OI_METHOD_MKCOL "MKCOL" +#define OI_METHOD_MOVE "MOVE" +#define OI_METHOD_OPTIONS "OPTIONS" +#define OI_METHOD_POST "POST" +#define OI_METHOD_PROPFIND "PROPFIND" +#define OI_METHOD_PROPPATCH "PROPPATCH" +#define OI_METHOD_PUT "PUT" +#define OI_METHOD_UNLOCK "UNLOCK" +#define OI_METHOD_SEARCH "SEARCH" +#define OI_METHOD_HEAD "HEAD" + +//request header names +#define OI_REQHDR_AUTH "Authorization" +#define OI_REQHDR_CONTENTTYPE "Content-Type" +#define OI_REQHDR_DEPTH "Depth" +#define OI_REQHDR_DESTINATION "Destination" +#define OI_REQHDR_IF "If" +#define OI_REQHDR_LOCKTOKEN "Lock-Token" +#define OI_REQHDR_OVERWRITE "Overwrite" +#define OI_REQHDR_PROXYAUTH "Proxy-Authorization" +#define OI_REQHDR_TIMEOUT "Timeout" + +//response header names +#define OI_RSPHDR_ALLOW "Allow" +#define OI_RSPHDR_AUTH "WWW-Authenticate" +#define OI_RSPHDR_AUTHINFO "Authentication-Info" +#define OI_RSPHDR_CLENGTH "Content-Length" +#define OI_RSPHDR_CONN "Connection" +#define OI_RSPHDR_CTYPE "Content-Type" +#define OI_RSPHDR_DASL "DASL" +#define OI_RSPHDR_DAV "DAV" +#define OI_RSPHDR_KEEPALIVE "Keep-Alive" +#define OI_RSPHDR_MSV "MS-Author-Via" +#define OI_RSPHDR_PROXYAUTH "Proxy-Authenticate" +#define OI_RSPHDR_PROXYAUTHINFO "Proxy-Authentication-Info" +#define OI_RSPHDR_PROXYCONN "Proxy-Connection" +#define OI_RSPHDR_SERVER "Server" +#define OI_RSPHDR_TE "Transfer-Encoding" + +//socket +#define OI_SOCKBUFSIZE 4096 +#define OI_SOCKTIMEOUTSEC 120 +#define OI_SOCK_VER_MINOR 2 +#define OI_SOCK_VER_MAJOR 2 +#define OI_SOCK_TIMEOUTSEC 10 +#define OI_SOCK_MAXTIMEOUTSEC 120 +#define OI_SOCK_MAXRETRY 3 + + +//xml +#define OI_MAX_ELEM_LEN 256 +#define OI_XMLCACHE_DOCNAME "Onion_Xml_Cache" +#define OI_XMLPOLICY_DOCNAME "Onion_Default_Policy" +#define OI_XML_NSURI "http://www.w3.org/2000/xmlns/" +#define OI_XML_DAVNAMESPACE "DAV:" +#define OI_XML_CUTELEMENT "response" +#define OI_XML_CUTELEMENT_LOCK "activelock" +#define OI_XML_COPYDOCNAME "D:propertybehavior" +#define OI_XML_LOCKDOCNAME "D:lockinfo" +#define OI_XML_MOVEDOCNAME "D:propertybehavior" +#define OI_XML_PROPFINDDOCNAME "D:propfind" +#define OI_XML_PROPPATCHDOCNAME "D:propertyupdate" +#define OI_XML_SEARCHDOCNAME "D:searchrequest" +#define OI_XML_DEFAULTLOCKOWNER "foo@bar.com" + +//dav resource node parse +#define OI_RNP_RESOURCETYPE 0x00000001 +#define OI_RNP_DISPLAYNAME 0x00000002 +#define OI_RNP_CONTENTLENGTH 0x00000004 +#define OI_RNP_LASTMODIFIED 0x00000008 +#define OI_RNP_CREATIONDATE 0x00000010 +#define OI_RNP_ETAG 0x00000020 +#define OI_RNP_CONTENTTYPE 0x00000040 +#define OI_RNP_CONTENTLANGUAGE 0x00000080 +#define OI_RNP_CLASS1 0x000000ff + + +#define OI_RNP_EXTRAPROPERTIES 0x00100000 + +#define OI_RNP_EXCLUSIVELOCK 0x02000000 +#define OI_RNP_SHAREDLOCK 0x04000000 +#define OI_RNP_LOCK 0x06000000 +#define OI_RNP_ELOCKSUPPORTED 0x00010000 +#define OI_RNP_SLOCKSUPPORTED 0x00020000 +#define OI_RNP_LOCKSUPPORTED 0x00030000 + +#define OI_RNP_QUOTA 0x00000200 +#define OI_RNP_QUOTAUSED 0x00000400 + +#define OI_RNP_EVERYTHING 0x060306ff +#define OI_RNP_CONVENTIONAL 0x0603003f + + +//Lock Infomation Valid Flags +#define OI_LIVF_TYPE 0x00000001 +#define OI_LIVF_SCOPE 0x00000002 +#define OI_LIVF_DEPTH 0x00000004 +#define OI_LIVF_TOKEN 0x00000008 +#define OI_LIVF_TIMEOUT 0x00000010 +#define OI_LIVF_OWNER 0x00000020 +#define OI_LIVF_ALL 0x0000003f + + +//ssl certificate problems +#define OI_SSL_ERR_UNABLE_TO_GET_ISSUER_CERT 0x00000001 +#define OI_SSL_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 0x00000002 +#define OI_SSL_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 0x00000004 +#define OI_SSL_ERR_CERT_SIGNATURE_FAILURE 0x00000008 +#define OI_SSL_ERR_CERT_NOT_YET_VALID 0x00000010 +#define OI_SSL_ERR_CERT_HAS_EXPIRED 0x00000020 +#define OI_SSL_ERR_OUT_OF_MEM 0x00000040 +#define OI_SSL_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 0x00000080 +#define OI_SSL_ERR_SELF_SIGNED_CERT_IN_CHAIN 0x00000100 +#define OI_SSL_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 0x00000200 +#define OI_SSL_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 0x00000400 +#define OI_SSL_ERR_CERT_CHAIN_TOO_LONG 0x00000800 +#define OI_SSL_ERR_CERT_REVOKED 0x00001000 +#define OI_SSL_ERR_INVALID_CA 0x00002000 +#define OI_SSL_ERR_PATH_LENGTH_EXCEEDED 0x00004000 +#define OI_SSL_ERR_INVALID_PURPOSE 0x00008000 +#define OI_SSL_ERR_CERT_UNTRUSTED 0x00010000 +#define OI_SSL_ERR_CERT_REJECTED 0x00020000 +#define OI_SSL_ERR_SUBJECT_ISSUER_MISMATCH 0x00040000 +#define OI_SSL_ERR_AKID_SKID_MISMATCH 0x00080000 +#define OI_SSL_ERR_AKID_ISSUER_SERIAL_MISMATCH 0x00100000 +#define OI_SSL_ERR_KEYUSAGE_NO_CERTSIGN 0x00200000 + +//various formats + +/* ISO8601: 2001-01-01T12:30:00Z */ +/* RFC1123: Sun, 06 Nov 1994 08:49:37 GMT */ +/* RFC850: Sunday, 06-Nov-94 08:49:37 GMT */ +/* asctime: Wed Jun 30 21:49:08 1993 */ +/* RFC2459: Sep 9 23:59:59 2004 GMT */ +#define OI_TIMEFORMAT_ISO8601_Z "%04d-%02d-%02dT%02d:%02d:%lfZ" +#define OI_TIMEFORMAT_ISO8601_M "%04d-%02d-%02dT%02d:%02d:%lf-%02d:%02d" +#define OI_TIMEFORMAT_ISO8601_P "%04d-%02d-%02dT%02d:%02d:%lf+%02d:%02d" + +#define OI_TIMEFORMAT_RFC1123 "%3s, %02d %3s %4d %02d:%02d:%02d GMT" +#define OI_TIMEFORMAT_RFC1036 "%s %2d-%3s-%2d %2d:%2d:%2d GMT" +#define OI_TIMEFORMAT_ASC "%3s %3s %2d %2d:%2d:%2d %4d" +#define OI_TIMEFORMAT_RFC2459 "%3s %d %02d:%02d:%02d %4d GMT" + + +//memory buffer +#define OI_MEMBUF_INITSIZE 4096 +#define OI_MEMBUF_INCRSIZE 4096 +#define OI_MEMBUF_SIZELIMIT 4*1024*1024 + + +#endif /*ONION_HEADER_ONIONDEF_H*/ Index: onion/onion/HandlerServer.h =================================================================== --- onion/onion/HandlerServer.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/HandlerServer.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,43 @@ +/* + Http header handler for "Server" + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: HandlerServer.h,v 1.1.1.1 2004/07/15 06:58:46 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_HANDLERSERVER_H +#define ONION_HEADER_HANDLERSERVER_H 1 + +#include +#include + +//forward declaration +class CDavWorkSession; + +class CHandlerServer : public CResponseHeaderHandler +{ + public: + CHandlerServer(CDavWorkSession* pSession); + ~CHandlerServer(); + virtual bool Execute(CDavRequest* pReq, const char *pszValue); + virtual const char* GetHeaderName(); + private: + CDavWorkSession* m_pSession; +}; + +#endif /*ONION_HEADER_HANDLERSERVER_H*/ Index: onion/onion/DavSSLDNameField.h =================================================================== --- onion/onion/DavSSLDNameField.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/DavSSLDNameField.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,47 @@ +/* + Field of distinguish name + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: DavSSLDNameField.h,v 1.1.1.1 2004/07/15 06:58:46 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_DAVSSLDNAMEFIELD_H +#define ONION_HEADER_DAVSSLDNAMEFIELD_H 1 + +#include +#include + +class CDavSSLDNameField +{ + private: + typedef std::vector VALUELIST, *PVALUELIST; + typedef VALUELIST::iterator VALUEITERATOR; + public: + CDavSSLDNameField(); + ~CDavSSLDNameField(); + void AddValue(const char* pszValue); + void Clear(); + unsigned int GetCount(); + const char* GetValue(unsigned int unIndex); + const char* operator[](unsigned int unIndex); + CDavSSLDNameField& operator=(const CDavSSLDNameField& master); + private: + VALUELIST m_vecValues; +}; + +#endif /*ONION_HEADER_DAVSSLDNAMEFIELD_H*/ Index: onion/onion/ResponseHeaderHandler.h =================================================================== --- onion/onion/ResponseHeaderHandler.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/ResponseHeaderHandler.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,43 @@ +/* + Prototype of http response header handler + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: ResponseHeaderHandler.h,v 1.1.1.1 2004/07/15 06:58:45 jiang_lei Exp $ +*/ + + +#ifndef ONION_HEADER_RESPONSEHEADERHANDLER_H +#define ONION_HEADER_RESPONSEHEADERHANDLER_H 1 + +#include + +//forward declarations +class CDavRequest; + +class CResponseHeaderHandler +{ + public: + CResponseHeaderHandler(void); + virtual ~CResponseHeaderHandler(void); + virtual bool Execute(CDavRequest* pReq, const char *pszValue); + virtual const char* GetHeaderName() = 0; + public: + OI_STRING_A m_strValue; +}; + +#endif /*ONION_HEADER_RESPONSEHEADERHANDLER_H*/ Index: onion/onion/DavResponseBody.h =================================================================== --- onion/onion/DavResponseBody.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/DavResponseBody.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,58 @@ +/* + Http response body infomation container + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: DavResponseBody.h,v 1.1.1.1 2004/07/15 06:58:44 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_DAVRESPONSEBODY_H +#define ONION_HEADER_DAVRESPONSEBODY_H 1 + +#include + +//forward declarations +class CDavRequest; +class CDavSocket; + +/** Internal interface used by CRDavRequest + * + */ +class CDavResponseBody +{ + public: + CDavResponseBody(CDavRequest* pReq, CDavSocket* pSocket); + virtual ~CDavResponseBody(); + OI_RESULT Read(char* pszBuf, size_t unBufLen, size_t* punReadLen); + size_t Read(unsigned char* toFill, size_t maxToRead); + public: + OI_RSP_MODE m_enuMode; + OI_STRING_A m_strContentType; + OI_RESULT m_enuLastErr; + unsigned int m_unChunkNo; + size_t m_unReadLen; + size_t m_unChunkLeft; + size_t m_unChunkLen; + size_t m_unBodyLeft; + size_t m_unBodyLen; + private: + char* m_pszLocalBuf; //local buffer for readline + CDavRequest* m_pReq; + CDavSocket* m_pSocket; +}; + +#endif /*ONION_HEADER_DAVRESPONSEBODY_H*/ Index: onion/onion/RBPVDXmlLock.h =================================================================== --- onion/onion/RBPVDXmlLock.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/RBPVDXmlLock.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,40 @@ +/* + Request body provider that provides XML for LOCK method + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: RBPVDXmlLock.h,v 1.1.1.1 2004/07/15 06:58:44 jiang_lei Exp $ +*/ + + +#ifndef ONION_HEADER_RBPVDXMLLOCK_H +#define ONION_HEADER_RBPVDXMLLOCK_H 1 + +#include +#include + +//forward declarations +class CDavLock; + +class CRBPVDXmlLock : public CRBPVDXml +{ + public: + CRBPVDXmlLock(CDavLock* pLock); + ~CRBPVDXmlLock(); +}; + +#endif /*ONION_HEADER_RBPVDXMLLOCK_H*/ Index: onion/onion/DavXmlParser.h =================================================================== --- onion/onion/DavXmlParser.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/DavXmlParser.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,59 @@ +/* + SAX-DOM hybrid mode XML parser + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: DavXmlParser.h,v 1.1.1.1 2004/07/15 06:58:47 jiang_lei Exp $ +*/ + +#ifndef ONION_HEADER_DAVXMLPARSER_H +#define ONION_HEADER_DAVXMLPARSER_H 1 + +#include +#include + +//forward declarations +class CPBCSMXml; + +class CDavXmlParser : public XNS(XercesDOMParser) +{ + public: + CDavXmlParser(CPBCSMXml* pConsumer, const char* pszCutElement = NULL); + ~CDavXmlParser(); + + void error (const unsigned int errCode, + const XMLCh *const errDomain, + const ErrTypes type, + const XMLCh *const errorText, + const XMLCh *const systemId, + const XMLCh *const publicId, + const XMLSSize_t lineNum, + const XMLSSize_t colNum); + virtual void docCharacters (const XMLCh *const chars, + const unsigned int length, + const bool cdataSection); + virtual void endElement(const XNS(XMLElementDecl)& elemDecl, + const unsigned int urlId, + const bool isRoot, + const XMLCh* const elemPrefix); + + private: + OI_STRING_A m_strCutElement; + CPBCSMXml* m_pConsumer; +}; + +#endif /*ONION_HEADER_DAVXMLPARSER_H*/ Index: onion/onion/DavHost.h =================================================================== --- onion/onion/DavHost.h (.../vendor/psi/psi-0.10) (revision 0) +++ onion/onion/DavHost.h (.../trunk/im/psi-0.10) (revision 39233) @@ -0,0 +1,49 @@ +/* + Host infomation wrapper + Copyright (C) 2003-2004, Lei Jiang + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA + + $Id: DavHost.h